Een sjabloonspecificatie implementeren

Voltooid

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
Huurder New-AzTenantDeployment

Elk van deze cmdlets accepteert de parameter -TemplateSpecId om een implementatie van een sjabloonspecificatie te starten binnen een van deze scopes.

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
Huurder az deployment tenant create

Elk van deze opdrachten accepteert het argument --template-spec om een implementatie van een sjabloonspecificatie te starten op een van deze niveaus.

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 eigenschap parameters:

{
  "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:

diagram met de onderdelen van het sjabloonspecificatiepad.

Er zijn drie onderdelen van het modulepad, gescheiden door het dubbele-punt (:) teken:

  • schema: Bicep ondersteunt verschillende typen modules, die schema'sworden genoemd. Wanneer u een sjabloonspecificatie als een module gebruikt, gebruikt u ts als het schema.
  • abonnements-id, resourcegroepnaam en sjabloonspecificatienaam: Deze waarden moeten de locatie opgeven van de sjabloonspecificatieresource die u eerder hebt gepubliceerd. U gebruikt schuine strepen (/) om de abonnements-id, de naam van de resourcegroep en de naam van de sjabloonspecificatie 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 versie van de sjabloonspecificatie 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 eigenschap params:

module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
  name: 'storageAccountTemplateSpec'
  params: {
    storageAccountName: storageAccountName
  }
}

Het sjabloonspecificatiebestand wordt gedownload en gekopieerd () naar uw JSON ARM-sjabloon wanneer het Bicep-bestand is gemaakt. Normaal gesproken gebeurt deze bewerking wanneer u uw Bicep-bestand implementeert, maar u kunt ook de Bicep-hulpprogramma's gebruiken om expliciet te transpileren door de opdracht bicep build uit te voeren.