Een sjabloonspecificatie implementeren
Nadat u de sjabloonspecificatie hebt gemaakt en gepubliceerd, kunt u deze implementeren. In deze les krijgt u informatie over de manieren waarop u een sjabloonspecificatie kunt implementeren.
Een implementatie maken met behulp van een sjabloonspecificatie
Als u een sjabloonspecificatie wilt implementeren in een resourcegroep, gebruikt u dezelfde New-AzResourceGroupDeployment
cmdlet waarmee u bekend bent. In plaats van een sjabloonbestand op te geven, geeft u de resource-id van een sjabloonspecificatie op, zoals wordt weergegeven in dit voorbeeld:
New-AzResourceGroupDeployment `
-TemplateSpecId '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS'
Hoewel sjabloonspecificaties moeten worden gemaakt binnen een resourcegroep, kunt u deze implementeren in abonnementen, beheergroepen of zelfs tenants met behulp van deze cmdlets:
Ga als volgt te werk om te implementeren op dit bereik: | Gebruik deze PowerShell-cmdlet: |
---|---|
Resourcegroep | New-AzResourceGroupDeployment |
Abonnement | New-AzSubscriptionDeployment |
Beheergroep | New-AzManagementGroupDeployment |
Tenant | New-AzTenantDeployment |
Elk van deze cmdlets accepteert de parameter voor het -TemplateSpecId
initiƫren van een sjabloonspecificatieimplementatie op een van deze bereiken.
Als u een sjabloonspecificatie wilt implementeren in een resourcegroep, gebruikt u dezelfde az deployment group create
opdracht waarmee u bekend bent. In plaats van een sjabloonbestand op te geven, geeft u de resource-id van een sjabloonspecificatie op, zoals wordt weergegeven in dit voorbeeld:
az deployment group create \
--template-spec "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS"
Hoewel sjabloonspecificaties moeten worden gemaakt binnen een resourcegroep, kunt u deze implementeren in abonnementen, beheergroepen of zelfs tenants met behulp van deze opdrachten:
Ga als volgt te werk om te implementeren op dit bereik: | Voer deze Azure CLI-opdracht uit: |
---|---|
Resourcegroep | az deployment group create |
Abonnement | az deployment sub create |
Beheergroep | az deployment mg create |
Tenant | az deployment tenant create |
Elk van deze opdrachten accepteert het argument voor het --template-spec
initiƫren van een sjabloonspecificatieimplementatie op een van deze bereiken.
Een sjabloonspecificatie gebruiken als een gekoppelde implementatie
Als u een sjabloonspecificatie wilt gebruiken vanuit een andere Azure Resource Manager-sjabloon (ARM-sjabloon), maakt u een implementatie die gebruikmaakt van die sjabloonspecificatie. Dit type implementatie wordt een gekoppelde implementatie genoemd omdat u een koppeling maakt naar een implementatiesjabloon die extern is opgegeven.
In Azure is een implementatie een resource met het resourcetype Microsoft.Resources/deployments
. Wanneer u een ARM-sjabloon implementeert, maakt u een implementatieresource. Hetzelfde concept is van toepassing wanneer u een sjabloonspecificatie implementeert, zoals deze:
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "createStorage",
"properties": {
"mode": "Incremental",
"templateLink": {
"id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
}
}
}
Wanneer u parameters voor de implementatie van de sjabloonspecificatie hebt, gebruikt u de parameters
eigenschap:
{
"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')]"
}
}
}
}
Een sjabloonspecificatie gebruiken als bicep-module
U kunt een sjabloonspecificatie gebruiken als een module in een Bicep-bestand:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
}
U ziet dat het modulepad een speciale indeling gebruikt:
Er zijn drie onderdelen voor het modulepad, gescheiden door het dubbele punt (:
) teken:
- Schema: Bicep ondersteunt verschillende typen modules, die schema's worden genoemd. Wanneer u een sjabloonspecificatie als een module gebruikt, gebruikt
ts
u dit als schema. - Abonnements-id, resourcegroepnaam en sjabloonspecificatienaam: Deze waarden moeten de locatie opgeven van de sjabloonspecificatieresource die u eerder hebt gepubliceerd. U gebruikt slashes (
/
) om de abonnements-id, resourcegroepnaam en sjabloonspecificatienaam te scheiden. Deze sectie van het modulepad is niet de volledige resource-id van de sjabloonspecificatie. Dit zijn slechts enkele onderdelen van de resource-id. - Versie: De sjabloonspecificatieversie moet worden opgenomen.
Notitie
U kunt geen variabelen, parameters of tekenreeksinterpolatie gebruiken wanneer u het pad naar een module opgeeft. Het volledige pad naar de sjabloonspecificatie moet worden opgeslagen in uw Bicep-bestand.
Wanneer u parameters voor de sjabloonspecificatie hebt, gebruikt u de params
eigenschap:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
params: {
storageAccountName: storageAccountName
}
}
Het sjabloonspecificatiebestand wordt gedownload en gekopieerd (getranspileerd) naar uw JSON ARM-sjabloon wanneer het Bicep-bestand wordt gebouwd. Normaal gesproken gebeurt deze bewerking wanneer u uw Bicep-bestand implementeert, maar u kunt ook de Bicep-tooling gebruiken om expliciet te transpileren door de bicep build
opdracht uit te voeren.