Bereitstellen einer Vorlagenspezifikation
Nachdem Sie ihre Vorlagenspezifikation erstellt und veröffentlicht haben, können Sie sie bereitstellen. In dieser Lektion erfahren Sie mehr über die Verfahren zum Bereitstellen einer Vorlagenspezifikation.
Erstellen einer Bereitstellung mithilfe einer Vorlagenspezifikation
Zum Bereitstellen einer Vorlagenspezifikation in einer Ressourcengruppe verwenden Sie das gleiche, Ihnen bekannte New-AzResourceGroupDeployment
-Cmdlet. Anstatt eine Vorlagendatei anzugeben, geben Sie die Ressourcen-ID einer Vorlagenspezifikation an, wie in diesem Beispiel gezeigt:
New-AzResourceGroupDeployment `
-TemplateSpecId '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS'
Zwar müssen Vorlagenspezifikationen innerhalb einer Ressourcengruppe erstellt werden, Sie können sie aber mithilfe dieser Cmdlets für Abonnements, Verwaltungsgruppen oder sogar Mandanten bereitstellen:
So stellen Sie in diesem Bereich bereit: | Verwenden Sie dieses PowerShell-Cmdlet: |
---|---|
Resource group | New-AzResourceGroupDeployment |
Subscription | New-AzSubscriptionDeployment |
Verwaltungsgruppe | New-AzManagementGroupDeployment |
Tenant | New-AzTenantDeployment |
Jedes dieser Cmdlets akzeptiert den -TemplateSpecId
-Parameter, um eine Vorlagenspezifikationsbereitstellung in einem dieser Bereiche zu einzuleiten.
Zum Bereitstellen einer Vorlagenspezifikation in einer Ressourcengruppe verwenden Sie den gleichen, Ihnen bekannten az deployment group create
-Befehl. Anstatt eine Vorlagendatei anzugeben, geben Sie die Ressourcen-ID einer Vorlagenspezifikation an, wie in diesem Beispiel gezeigt:
az deployment group create \
--template-spec "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS"
Zwar müssen Vorlagenspezifikationen innerhalb einer Ressourcengruppe erstellt werden, Sie können sie aber mithilfe dieser Befehle für Abonnements, Verwaltungsgruppen oder sogar Mandanten bereitstellen:
So stellen Sie in diesem Bereich bereit: | Führen Sie dann den folgenden Azure CLI-Befehl aus: |
---|---|
Resource group | az deployment group create |
Subscription | az deployment sub create |
Verwaltungsgruppe | az deployment mg create |
Tenant | az deployment tenant create |
Jeder dieser Befehle akzeptiert das --template-spec
-Argument, um eine Vorlagenspezifikationsbereitstellung in einem dieser Bereiche zu einzuleiten.
Verwenden einer Vorlagenspezifikation als verknüpfte Bereitstellung
Um eine Vorlagenspezifikation aus einer anderen Azure Resource Manager-Vorlage (ARM-Vorlage) zu verwenden, erstellen Sie eine Bereitstellung, die diese Vorlagenspezifikation verwendet. Dieser Bereitstellungstyp wird als verknüpfte Bereitstellung bezeichnet, da Sie eine Verknüpfung mit einer extern angegebenen Bereitstellungsvorlage herstellen.
In Azure ist eine Bereitstellung eine Ressource mit dem Ressourcentyp Microsoft.Resources/deployments
. Wenn Sie eine ARM-Vorlage bereitstellen, erstellen Sie eine Bereitstellungsressource. Das gleiche Konzept gilt, wenn Sie eine Vorlagenspezifikation wie diese bereitstellen:
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "createStorage",
"properties": {
"mode": "Incremental",
"templateLink": {
"id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
}
}
}
Wenn für die Bereitstellung der Vorlagenspezifikation Parameter angegeben werden müssen, verwenden Sie die parameters
-Eigenschaft:
{
"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')]"
}
}
}
}
Verwenden einer Vorlagenspezifikation als Bicep-Modul
Sie können eine Vorlagenspezifikation als Modul in einer Bicep-Datei verwenden:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
}
Beachten Sie, dass der Modulpfad ein spezielles Format verwendet:
Der Modulpfad setzt sich aus drei Komponenten zusammen, die jeweils durch einen Doppelpunkt (:
) getrennt sind:
- Schema: Bicep unterstützt mehrere Modultypen. Diese werden als Schemas bezeichnet. Wenn Sie eine Vorlagenspezifikation als Modul verwenden möchten, verwenden Sie
ts
als Schema. - Abonnement-ID, Ressourcengruppenname und Vorlagenspezifikationsname: Diese Werte sollten den Speicherort der zuvor veröffentlichten Vorlagenspezifikationsressource angeben. Abonnement-ID, Ressourcengruppenname und Vorlagenspezifikationsname werden jeweils durch einen Schrägstrich (
/
) getrennt. Dieser Abschnitt des Modulpfads ist nicht die vollständige Ressourcen-ID der Vorlagenspezifikation – es sind nur einige der Komponenten der Ressourcen-ID. - Version: Die Version der Vorlagenspezifikation muss eingeschlossen werden.
Hinweis
Sie können keine Variablen, Parameter oder Zeichenfolgeninterpolation verwenden, wenn Sie den Pfad zu einem Modul angeben. Der vollständige Vorlagenspezifikationspfad muss in Ihrer Bicep-Datei gespeichert werden.
Wenn Sie für die Vorlagenspezifikation Parameter angeben müssen, verwenden Sie die Eigenschaft params
:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
params: {
storageAccountName: storageAccountName
}
}
Die Vorlagenspezifikationsdatei wird heruntergeladen und in Ihre JSON-ARM-Vorlage kopiert (transpiliert), wenn die Bicep-Datei erstellt wird. Normalerweise geschieht dieser Vorgang, wenn Sie Ihre Bicep-Datei bereitstellen, aber Sie können auch die Bicep-Tools verwenden, um explizit zu transpilieren, indem Sie den Befehl bicep build
ausführen.