Distribuera en mallspecifikation
När du har skapat och publicerat mallspecifikationen kan du distribuera den. I den här lektionen får du lära dig mer om hur du distribuerar en mallspecifikation.
Skapa en distribution med hjälp av en mallspecifikation
Om du vill distribuera en mallspecifikation till en resursgrupp använder du samma New-AzResourceGroupDeployment
cmdlet som du är bekant med. I stället för att ange en mallfil anger du en mallspecifikations resurs-ID, som du ser i det här exemplet:
New-AzResourceGroupDeployment `
-TemplateSpecId '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS'
Även om mallspecifikationer måste skapas i en resursgrupp kan du distribuera dem till prenumerationer, hanteringsgrupper eller till och med klientorganisationer med hjälp av dessa cmdletar:
Så här distribuerar du i det här omfånget: | Använd den här PowerShell-cmdleten: |
---|---|
Resursgrupp | New-AzResourceGroupDeployment |
Prenumeration | New-AzSubscriptionDeployment |
Hanteringsgrupp | New-AzManagementGroupDeployment |
Klientorganisation | New-AzTenantDeployment |
Var och en av dessa cmdletar accepterar parametern -TemplateSpecId
för att initiera en mallspecifikationsdistribution i något av dessa omfång.
Om du vill distribuera en mallspecifikation till en resursgrupp använder du samma az deployment group create
kommando som du är bekant med. I stället för att ange en mallfil anger du en mallspecifikations resurs-ID, som du ser i det här exemplet:
az deployment group create \
--template-spec "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS"
Även om mallspecifikationer måste skapas i en resursgrupp kan du distribuera dem till prenumerationer, hanteringsgrupper eller till och med klientorganisationer med hjälp av följande kommandon:
Så här distribuerar du i det här omfånget: | Kör det här Azure CLI-kommandot: |
---|---|
Resursgrupp | az deployment group create |
Prenumeration | az deployment sub create |
Hanteringsgrupp | az deployment mg create |
Klientorganisation | az deployment tenant create |
Vart och ett av dessa kommandon accepterar --template-spec
argumentet för att initiera en mallspecifikationsdistribution i något av dessa omfång.
Använda en mallspecifikation som en länkad distribution
Om du vill använda en mallspecifikation inifrån en annan Azure Resource Manager-mall (ARM-mall) skapar du en distribution som använder mallspecifikationen. Den här typen av distribution kallas för en länkad distribution eftersom du länkar till en distributionsmall som anges externt.
I Azure är en distribution en resurs som har resurstypen Microsoft.Resources/deployments
. När du distribuerar en ARM-mall skapar du en distributionsresurs. Samma begrepp gäller när du distribuerar en mallspecifikation, så här:
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "createStorage",
"properties": {
"mode": "Incremental",
"templateLink": {
"id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
}
}
}
När du har parametrar att ange för distributionen av mallspecifikationen parameters
använder du egenskapen:
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "createStorage",
"properties": {
"mode": "Incremental",
"templateLink": {
"id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
},
"parameters": {
"storageAccountName": {
"value": "[parameters('storageAccountName')]"
}
}
}
}
Använda en mallspecifikation som en Bicep-modul
Du kan använda en mallspecifikation som en modul i en Bicep-fil:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
}
Observera att modulsökvägen använder ett särskilt format:
Det finns tre komponenter i modulsökvägen, avgränsade med kolontecknet (:
):
- Schema: Bicep stöder flera typer av moduler, som kallas scheman. När du använder en mallspecifikation som en modul använder
ts
du som schema. - Prenumerations-ID, resursgruppsnamn och mallspecifikationsnamn: Dessa värden bör ange platsen för mallspecifikationsresursen som du tidigare publicerade. Du använder snedstreck (
/
) för att separera prenumerations-ID, resursgruppsnamn och mallspecifikationsnamn. Det här avsnittet av modulsökvägen är inte det fullständiga resurs-ID:t för mallspecifikationen – det är bara några av komponenterna i resurs-ID:t. - Version: Mallspecifikationsversionen måste inkluderas.
Kommentar
Du kan inte använda variabler, parametrar eller stränginterpolation när du anger sökvägen till en modul. Den fullständiga mallspecifikationssökvägen måste sparas i Bicep-filen.
När du har parametrar som ska anges i mallspecifikationen params
använder du egenskapen:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
params: {
storageAccountName: storageAccountName
}
}
Mallspecifikationsfilen laddas ned och kopieras (överförs) till din JSON ARM-mall när Bicep-filen skapas. Normalt sker den här åtgärden när du distribuerar Bicep-filen, men du kan också använda Bicep-verktyget för att transpilera explicit genom att köra bicep build
kommandot .