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

Diagram showing the components of the template spec path.

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.