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 Möglichkeiten zum Bereitstellen einer Vorlagenspezifikation.
Erstellen einer Bereitstellung mithilfe einer Vorlagenspezifikation
Um eine Vorlagenspezifikation für eine Ressourcengruppe bereitzustellen, verwenden Sie dasselbe New-AzResourceGroupDeployment
Cmdlet, mit dem Sie vertraut sind. 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'
Obwohl Vorlagenspezifikationen innerhalb einer Ressourcengruppe erstellt werden müssen, können Sie sie mithilfe dieser Cmdlets in Abonnements, Verwaltungsgruppen oder sogar Mandanten bereitstellen:
So stellen Sie in diesem Bereich bereit: | Verwenden Sie dieses PowerShell-Cmdlet: |
---|---|
Ressourcengruppe | New-AzResourceGroupDeployment |
Abonnement | New-AzSubscriptionDeployment |
Verwaltungsgruppe | New-AzManagementGroupDeployment |
Mieter | New-AzTenantDeployment |
Jedes dieser Cmdlets akzeptiert den -TemplateSpecId
Parameter, um eine Vorlagenspezifikationsbereitstellung in einem dieser Bereiche zu initiieren.
Um eine Vorlagenspezifikation für eine Ressourcengruppe bereitzustellen, verwenden Sie denselben az deployment group create
Befehl, mit dem Sie vertraut sind. 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"
Obwohl Vorlagenspezifikationen innerhalb einer Ressourcengruppe erstellt werden müssen, können Sie sie mithilfe dieser Befehle in Abonnements, Verwaltungsgruppen oder sogar Mandanten bereitstellen:
So stellen Sie in diesem Bereich bereit: | Führen Sie diesen Azure CLI-Befehl aus: |
---|---|
Ressourcengruppe | az deployment group create |
Abonnement | az deployment sub create |
Verwaltungsgruppe | az deployment mg create |
Mieter | az deployment tenant create |
Jeder dieser Befehle akzeptiert das --template-spec
Argument, um eine Vorlagenspezifikationsbereitstellung in einem dieser Bereiche zu initiieren.
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, die den Ressourcentyp Microsoft.Resources/deployments
aufweist. Wenn Sie eine ARM-Vorlage bereitstellen, erstellen Sie eine Bereitstellungsressource. Das gleiche Konzept gilt, wenn Sie eine Vorlagenspezifikation wie folgt 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 Sie Parameter für die Bereitstellung der Vorlagenspezifikation angeben 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 verschiedene Modultypen, die als Schemas bezeichnet werden. Wenn Sie eine Vorlagenspezifikation als Modul verwenden, nutzen Sie
ts
als Schema. - Abonnement-ID, Ressourcengruppenname und Vorlagenspezifikationsname: Diese Werte sollten den Speicherort der zuvor veröffentlichten Vorlagenspezifikationsressource angeben. Sie verwenden Schrägstriche (
/
) zum Trennen der Abonnement-ID, des Ressourcengruppennamens und des Vorlagenspezifikationsnamens. Dieser Abschnitt des Modulpfads ist nicht die vollständige Ressourcen-ID der Vorlagenspezifikation – es sind nur einige der Komponenten der Ressourcen-ID. - Version: Die Vorlagenspezifikationsversion muss einbezogen werden.
Hinweis
Variablen, Parameter oder Zeichenfolgeninterpolation können nicht verwendet werden, wenn Sie den Pfad zu einem Modul angeben. Der vollständige Vorlagenspezifikationspfad muss in Ihrer Bicep-Datei gespeichert werden.
Wenn Sie Parameter für die Vorlagenspezifikation angeben müssen, verwenden Sie die params
Eigenschaft:
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 erfolgt dieser Vorgang, wenn Sie Ihre Bicep-Datei bereitstellen, aber Sie können auch die Bicep-Tools verwenden, um explizit zu transpilieren, indem Sie den bicep build
Befehl ausführen.