Hızlı Başlangıç: Şablon özellikleri oluşturma ve dağıtma
Makale
11/24/2021
Okumak için 8 dakika
Bu sayfayı yararlı buluyor musunuz?
Bu makalede
Bu hızlı başlangıçta, bir şablon Azure Resource Manager (ARM şablonu) şablon özelliklerine nasıl paketleyebilirsiniz? Ardından, bu şablon özellimlerini dağıtırsınız. Şablon özellikleriniz, depolama hesabı dağıtan bir ARM şablonu içerir.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturun.
Şablon oluşturma
Yerel bir şablondan şablon özellikleri oluşturursanız. Aşağıdaki şablonu kopyalayın ve yerel olarak azuredeploy.json adlı bir dosyaya kaydedin. Bu hızlı başlangıçta, bir c:\Templates\azuredeploy.json yoluna kaydedilmiş olduğu varsayıldı ancak herhangi bir yolu kullanabilirsiniz.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.4.1008.15138",
"templateHash": "104821603399126558"
}
},
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Premium_LRS",
"Premium_ZRS",
"Standard_GRS",
"Standard_GZRS",
"Standard_LRS",
"Standard_RAGRS",
"Standard_RAGZRS",
"Standard_ZRS"
],
"metadata": {
"description": "Storage Account type"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"storageAccountName": {
"type": "string",
"defaultValue": "[format('store{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "The name of the Storage Account"
}
}
},
"functions": [],
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[parameters('storageAccountName')]"
},
"storageAccountId": {
"type": "string",
"value": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
}
}
}
Şablon özellikleri oluşturma
Şablon özellikleri adlı bir kaynak t t t Microsoft.Resources/templateSpecs verisidir. Şablon özellikleri oluşturmak için PowerShell, Azure CLI, portal veya ARM şablonu kullanın.
Şablon özellikleri içeren yeni bir kaynak grubu oluşturun.
New-AzResourceGroup `
-Name templateSpecRG `
-Location westus2
Bu kaynak grubunda şablon özellikleri oluşturun. Yeni şablona storageSpec adını girin.
New-AzTemplateSpec `
-Name storageSpec `
-Version "1.0" `
-ResourceGroupName templateSpecRG `
-Location westus2 `
-TemplateFile "c:\Templates\azuredeploy.json"
Şablon özellikleri içeren yeni bir kaynak grubu oluşturun.
az group create \
--name templateSpecRG \
--location westus2
Bu kaynak grubunda şablon özellikleri oluşturun. Yeni şablona storageSpec adını girin.
az ts create \
--name storageSpec \
--version "1.0" \
--resource-group templateSpecRG \
--location "westus2" \
--template-file "c:\Templates\azuredeploy.json"
Azure Portal oturum açın.
Şablon özellikleri için arama. Kullanılabilir seçeneklerden Şablon özellikleri'ne tıklayın.
Şablonu içeri aktar'ı seçin.
Klasör simgesini seçin.
Kaydedilen yerel şablona gidin ve seçin. Aç ’ı seçin.
İçeri aktar 'ı seçin.
Aşağıdaki değerleri sağlayın:
Ad: Şablon özellikleri için bir ad girin. Örneğin, storageSpec
Abonelik: Şablon özellikleri oluşturmak için kullanılan bir Azure aboneliği seçin.
Kaynak Grubu: Yeni oluştur'ı seçin ve ardından yeni bir kaynak grubu adı girin. Örneğin, templateSpecRG .
Konum: Kaynak grubu için bir konum seçin. Örneğin, Batı ABD 2.
Sürüm: Şablon özellikleri için bir sürüm girin. 1.0 kullanın.
Gözden geçir + Oluştur ’u seçin.
Oluştur ’u seçin.
Not
ARM şablonu kullanmak yerine PowerShell veya CLI kullanarak şablon özelliklerinizi oluşturmanızı öneririz. Bu araçlar bağlı şablonları otomatik olarak ana şablonunuzla bağlantılı yapıtlara dönüştürür. Şablon özeliklerini oluşturmak için ARM şablonu kullanıyorsanız, bu bağlantılı şablonları yapıt olarak el ile eklemeniz gerekir ve bu karmaşık olabilir.
Şablon özellikleri oluşturmak için ARM şablonu kullanırsanız, şablon kaynak tanımına katıştırılır. Yerel şablonunuz üzerinde bazı değişiklikler yapmak gerekir. Aşağıdaki şablonu kopyalayın ve yerel olarak azuredeploy.json olarak kaydedin.
Not
Ekli şablonda, tüm şablon ifadelerine ikinci bir sol köşeli ayraç ile birlikte kaçabilirsiniz. yerine "[[ "[ kullanın. JSON dizileri hala tek bir sol köşeli ayraç kullanır.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"functions": [],
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/templateSpecs",
"apiVersion": "2021-05-01",
"name": "storageSpec",
"location": "westus2",
"properties": {
"displayName": "Storage template spec"
},
"tags": {},
"resources": [
{
"type": "versions",
"apiVersion": "2021-05-01",
"name": "1.0",
"location": "westus2",
"dependsOn": [ "storageSpec" ],
"properties": {
"mainTemplate": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
],
"metadata": {
"description": "Storage Account type"
}
},
"location": {
"type": "string",
"defaultValue": "[[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {
"storageAccountName": "[[concat('store', uniquestring(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[[variables('storageAccountName')]",
"location": "[[parameters('location')]",
"sku": {
"name": "[[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[[variables('storageAccountName')]"
}
}
}
},
"tags": {}
}
]
}
],
"outputs": {}
}
Yeni bir kaynak grubu oluşturmak için Azure CLI veya PowerShell kullanın.
New-AzResourceGroup `
-Name templateSpecRG `
-Location westus2
az group create \
--name templateSpecRG \
--location westus2
Şablonlarınızı Azure CLI veya PowerShell ile dağıtın.
New-AzResourceGroupDeployment `
-ResourceGroupName templateSpecRG `
-TemplateFile "c:\Templates\azuredeploy.json"
az deployment group create \
--name templateSpecRG \
--template-file "c:\Templates\azuredeploy.json"
Şablon özellikleri dağıtma
Şablon özellikleri dağıtmak için, şablon dağıtmak için kullanabileceğiniz dağıtım komutlarını kullanın. Dağıt dağıtmak için şablon spec'in kaynak kimliğini girin.
Yeni depolama hesabını içeren bir kaynak grubu oluşturun.
New-AzResourceGroup `
-Name storageRG `
-Location westus2
Şablon teknik özelliklerine göre kaynak kimliğini elde etme.
$id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
Şablon özellikleri dağıtın.
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName storageRG
Parametreleri ARM şablonunda olduğu gibi sağlarsınız. Şablon belirteçlerini depolama hesabı türü için bir parametreyle yeniden oluşturun.
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName storageRG `
-storageAccountType Standard_GRS
Yeni depolama hesabını içeren bir kaynak grubu oluşturun.
az group create \
--name storageRG \
--location westus2
Şablon teknik özelliklerine göre kaynak kimliğini elde etme.
id=$(az ts show --name storageSpec --resource-group templateSpecRG --version "1.0" --query "id")
Not
Şablon spec kimliğini alma ve bunu bir değişkene atama ile ilgili bilinen bir sorun Windows PowerShell.
Şablon özellikleri dağıtın.
az deployment group create \
--resource-group storageRG \
--template-spec $id
Parametreleri ARM şablonunda olduğu gibi sağlarsınız. Şablon belirteçlerini depolama hesabı türü için bir parametreyle yeniden oluşturun.
az deployment group create \
--resource-group storageRG \
--template-spec $id \
--parameters storageAccountType='Standard_GRS'
Oluşturduğunuz şablon özelliklerine göre seçim.
Dağıt 'ı seçin.
Aşağıdaki değerleri sağlayın:
Abonelik: Kaynağı oluşturmak için bir Azure aboneliği seçin.
Kaynak grubu: Yeni oluştur'ı seçin ve storageRG girin.
Depolama Türü: seçeneğini Standard_GRS.
Gözden geçir ve oluştur ’u seçin.
Oluştur ’u seçin.
Aşağıdaki şablonu kopyalayın ve storage.json adlı bir dosyaya yerel olarak kaydedin.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"functions": [],
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "demo",
"properties": {
"templateLink": {
"id": "[resourceId('templateSpecRG', 'Microsoft.Resources/templateSpecs/versions', 'storageSpec', '1.0')]"
},
"parameters": {
},
"mode": "Incremental"
}
}
],
"outputs": {}
}
Depolama hesabı için yeni bir kaynak grubu oluşturmak üzere Azure CLI veya PowerShell kullanın.
New-AzResourceGroup `
-Name storageRG `
-Location westus2
az group create \
--name storageRG \
--location westus2
Şablonlarınızı Azure CLI veya PowerShell ile dağıtın.
New-AzResourceGroupDeployment `
-ResourceGroupName storageRG `
-TemplateFile "c:\Templates\storage.json"
az deployment group create \
--name storageRG \
--template-file "c:\Templates\storage.json"
Erişim verme
Kuruluşta diğer kullanıcıların şablon özelliklerinizi dağıtmasına izin vermek için onlara okuma erişimi vermeniz gerekir. Okuyucu rolünü, paylaşmak istediğiniz şablon özellikleri içeren kaynak grubu için bir Azure AD grubuna atabilirsiniz. Daha fazla bilgi için bkz. Öğretici: Azure PowerShell kullanarak Azure kaynaklarına Azure PowerShell.
Şablonu güncelleştirme
Şablon özelliklerinde şablonda yapmak istediğiniz bir değişiklik olduğunu varsayalım. Aşağıdaki şablon, depolama hesabı adı için bir ön ek ekleme dışında önceki şablonunuzla benzerdir. Aşağıdaki şablonu kopyalayın ve azuredeploy.json dosyanızı güncelleştirin.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
],
"metadata": {
"description": "Storage Account type"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"namePrefix": {
"type": "string",
"maxLength": 11,
"defaultValue": "store",
"metadata": {
"description": "Prefix for storage account name"
}
}
},
"variables": {
"storageAccountName": "[concat(parameters('namePrefix'), uniquestring(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[variables('storageAccountName')]"
}
}
}
Şablon özellikleri sürümünü güncelleştirme
Düzeltilen şablon için yeni bir şablon özellikleri oluşturmak yerine, mevcut şablon özelliklerine adlı yeni bir sürüm ekleyin. Kullanıcılar dağıtmak için 2.0 iki sürümden birini seçebilir.
Şablon belirtimi için yeni bir sürüm oluşturun.
New-AzTemplateSpec `
-Name storageSpec `
-Version "2.0" `
-ResourceGroupName templateSpecRG `
-Location westus2 `
-TemplateFile "c:\Templates\azuredeploy.json"
Yeni sürümü dağıtmak için sürümün kaynak KIMLIĞINI alın 2.0 .
$id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
Bu sürümü dağıtın. Depolama hesabı adı için bir ön ek belirtin.
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName storageRG `
-namePrefix "demoaccount"
Şablon belirtimi için yeni bir sürüm oluşturun.
az ts create \
--name storageSpec \
--version "2.0" \
--resource-group templateSpecRG \
--location "westus2" \
--template-file "c:\Templates\azuredeploy.json"
Yeni sürümü dağıtmak için sürümün kaynak KIMLIĞINI alın 2.0 .
id=$(az ts show --name storageSpec --resource-group templateSpecRG --version "2.0" --query "id")
Bu sürümü dağıtın. Depolama hesabı adı için bir ön ek belirtin.
az deployment group create \
--resource-group storageRG \
--template-spec $id \
--parameters namePrefix='demoaccount'
Şablon belirtimde Yeni sürüm oluştur ' u seçin.
Yeni sürümü adlandırın 2.0 ve isteğe bağlı olarak not ekleyin. Şablonu Düzenle ' yi seçin.
Şablonun içeriğini güncelleştirilmiş şablonilerle değiştirin. Gözden geçir + kaydet ' i seçin.
Değişiklikleri kaydet 'i seçin.
Yeni sürümü dağıtmak için sürümler ' i seçin.
Dağıtmak istediğiniz sürüm için üç noktayı seçin ve dağıtın .
Önceki sürümü dağıtmada yaptığınız gibi alanları girin.
Gözden geçir ve oluştur ’u seçin.
Oluştur ’u seçin.
Ayrıca, şablon özelliklerine sahip olmak için yerel şablonunuzda bazı değişiklikler yapmanız gerekir. Aşağıdaki şablonu kopyalayın ve yerel olarak azuredeploy. JSON olarak kaydedin.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"functions": [],
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/templateSpecs",
"apiVersion": "2021-05-01",
"name": "storageSpec",
"location": "westus2",
"properties": {
"displayName": "Storage template spec"
},
"tags": {},
"resources": [
{
"type": "versions",
"apiVersion": "2021-05-01",
"name": "2.0",
"location": "westus2",
"dependsOn": [ "storageSpec" ],
"properties": {
"mainTemplate": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
],
"metadata": {
"description": "Storage Account type"
}
},
"location": {
"type": "string",
"defaultValue": "[[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"namePrefix": {
"type": "string",
"maxLength": 11,
"defaultValue": "store",
"metadata": {
"description": "Prefix for storage account name"
}
}
},
"variables": {
"storageAccountName": "[[concat(parameters('namePrefix'), uniquestring(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[[variables('storageAccountName')]",
"location": "[[parameters('location')]",
"sku": {
"name": "[[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[[variables('storageAccountName')]"
}
}
}
},
"tags": {}
}
]
}
],
"outputs": {}
}
Şablon belirtime yeni sürümü eklemek için şablonunuzu Azure CLı veya PowerShell ile dağıtın.
New-AzResourceGroupDeployment `
-ResourceGroupName templateSpecRG `
-TemplateFile "c:\Templates\azuredeploy.json"
az deployment group create \
--name templateSpecRG \
--template-file "c:\Templates\azuredeploy.json"
Aşağıdaki şablonu kopyalayın ve yerel olarak Storage. JSON adlı bir dosyaya kaydedin.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"functions": [],
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "demo",
"properties": {
"templateLink": {
"id": "[resourceId('templateSpecRG', 'Microsoft.Resources/templateSpecs/versions', 'storageSpec', '2.0')]"
},
"parameters": {
},
"mode": "Incremental"
}
}
],
"outputs": {}
}
Azure CLı veya PowerShell ile şablonunuzu dağıtın.
New-AzResourceGroupDeployment `
-ResourceGroupName storageRG `
-TemplateFile "c:\Templates\storage.json"
az deployment group create \
--name storageRG \
--template-file "c:\Templates\storage.json"
Kaynakları temizleme
Bu hızlı başlangıçta dağıttığınız kaynağı temizlemek için, oluşturduğunuz her iki kaynak grubunu silin.
Azure portalında sol menüden Kaynak grubu’nu seçin.
Ada göre filtrele alanına kaynak grubu adını (templateSpecRG ve storageRG) girin.
Kaynak grubu adını seçin.
Üstteki menüden Kaynak grubunu sil’i seçin.
Sonraki adımlar
Bağlantılı şablonlar içeren bir şablon belirtimi oluşturma hakkında bilgi edinmek için bkz. bağlantılı şablonun şablon belirtimini oluşturma .