部署範本規格
建立並發佈範本規格之後,您可以加以部署。 在此單元中,您將了解部署範本規格的方式。
使用範本規格建立部署
若要將範本規格部署至資源群組,可以使用您熟悉的相同 New-AzResourceGroupDeployment
Cmdlet。 您可以指定範本規格的資源識別碼,而不是指定範本檔案,如下列範例所示:
New-AzResourceGroupDeployment `
-TemplateSpecId '/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS'
儘管您必須在資源群組內建立範本規格,但您可以使用下列 Cmdlet 將其部署到訂用帳戶、管理群組或甚至租用戶:
若要在此範圍進行部署: | 使用此 PowerShell Cmdlet: |
---|---|
資源群組 | New-AzResourceGroupDeployment |
訂用帳戶 | New-AzSubscriptionDeployment |
管理群組 | New-AzManagementGroupDeployment |
租用戶 | New-AzTenantDeployment |
上述每個 Cmdlet 都接受 -TemplateSpecId
參數,可在這其中一個範圍內起始範本規格部署。
若要將範本規格部署至資源群組,可以使用您熟悉的相同 az deployment group create
命令。 您可以指定範本規格的資源識別碼,而不是指定範本檔案,如下列範例所示:
az deployment group create \
--template-spec "/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS"
儘管您必須在資源群組內建立範本規格,但您可以使用下列命令將其部署到訂用帳戶、管理群組或甚至租用戶:
若要在此範圍進行部署: | 執行此 Azure CLI 命令: |
---|---|
資源群組 | az deployment group create |
訂用帳戶 | az deployment sub create |
管理群組 | az deployment mg create |
租用戶 | az deployment tenant create |
上述每個命令都接受 --template-spec
引數,可在這其中一個範圍內起始範本規格部署。
使用範本規格作為連結的部署
若要從另一個 Azure Resource Manager 範本 (ARM 範本) 內使用範本規格,您可以建立使用該範本規格的部署。這種類型的部署稱為連結部署,因為您會連結至外部指定的部署範本。
在 Azure 中,部署是具有資源類型 Microsoft.Resources/deployments
的資源。 當您部署 ARM 範本時,您是在建立部署資源。 當您部署範本規格時,也適用相同的概念,如下所示:
{
"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
屬性:
{
"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')]"
}
}
}
}
使用範本規格作為 Bicep 模組
您可以使用範本規格作為 Bicep 檔案內的模組:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
}
請注意,模組路徑會使用特殊格式:
模組路徑有三個元件,並以冒號 (:
) 字元分隔:
- 配置:Bicep 支援數種稱為配置的模組類型。 當您使用範本規格作為模組時,您會使用
ts
作為配置。 - 訂用帳戶識別碼、資源群組名稱和範本規格名稱:這些值應該指定您先前所發佈範本規格資源的位置。 您可以使用正斜線 (
/
) 來分隔訂用帳戶識別碼、資源群組名稱和範本規格名稱。 此模組路徑的區段不是範本規格的完整資源識別碼 - 這只是資源識別碼的一些元件。 - 版本:必須包含範本規格版本。
注意
當您指定模組的路徑時,無法使用變數、參數或字串插補。 完整範本規格路徑必須儲存到 Bicep 檔案中。
當您有要提供給範本規格部署的參數時,您會使用 params
屬性:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
params: {
storageAccountName: storageAccountName
}
}
範本規格檔案會在建置 Bicep 檔案時下載並複製 (轉譯) 到 JSON ARM 範本中。 部署 Bicep 檔案時通常會發生這種操作,但您也可以使用 Bicep 工具,藉由執行 bicep build
命令明確地轉譯這項操作。