Alıştırma - ARM şablonlarınızı dağıtma
Not
Bir korumalı alanı ilk kez etkinleştirip koşulları kabul ettiğinizde Microsoft hesabı, Microsoft Learn Sandbox adlı yeni bir Azure diziniyle ilişkilendirilir. Concierge Aboneliği adlı özel bir aboneliğe eklenmiş olursunuz.
Burada bilgisayarınızdan ve URI belirterek GitHub deposundan bir Azure Resource Manager (ARM) şablonu dağıtacaksınız.
Önemli
Bu alıştırmada Visual Studio Code için Azure Resource Manager Araçları kullanılmaktadır. Visual Studio Code’da bu uzantıyı yüklediğinizden emin olun.
Microsoft Learn Sandbox aboneliğiyle ortamınızı ayarlama
Bu ünitedeki dağıtımları gerçekleştirmek için Visual Studio Code terminalinden Azure hesabınızda oturum açmanız gerekir.
Korumalı alanın etkinleştirildiği hesapta oturum açtığınızdan emin olun.
Azure'da oturum açma
Visual Studio Code’daki terminalden, Azure’da oturum açmak için şu komutu çalıştırın. Bu komutun çalıştırılması, hesabınızda oturum açmanıza olanak tanıyan bir tarayıcı açar.
Connect-AzAccount
Oturum açtıktan sonra, terminalde bu hesapla ilişkilendirilmiş aboneliklerin listesini görürsünüz. Korumalı alanı etkinleştirdiyseniz bu listede Concierge Aboneliği’ni görmeniz gerekir.
Abonelik adını doğrulayın. Aşağıdaki komut aboneliklerinizi, adlarınızı ve kimliklerinizi kolay okunan bir tablo biçiminde listeler. öğesini arayın
Concierge Subscription
.Get-AzSubscription
Etkin aboneliğinizi, Concierge Aboneliği olarak değiştirin.
$context = Get-AzSubscription -SubscriptionName "Concierge Subscription" | Set-AzContext
Varsayılan kaynak grubunu ayarlama
Şimdi korumalı alanda sizin için oluşturulan kaynak grubunu varsayılan kaynak grubu olarak ayarlamanız gerekiyor. Bu işlemi gerçekleştirmek için önce aşağıdaki komutu çalıştırarak kaynak grubu adını almanız gerekir.
Get-AzResourceGroup | where-object ResourceGroupName -match "learn" | Set-AzDefault
Bu komutta, önceki komuttan aldığınız kaynak adını kullanın. (Şuna benzer: learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Bu komut, bu alıştırmadaki Azure PowerShell komutlarının geri kalanından bu parametreyi atlamanızı sağlar.
Not
Normalde, şablon dağıtmak için bir PowerShell veya Azure CLI komutu çalıştırdığınızda hedef kaynak grubu adını belirtmeniz gerekir. Önceki komutu çalıştırarak dağıtımımızın bağlamını ayarladık. Set-AzDefault PowerShell komutunu çalıştırarak korumalı alan kaynak grubu adımızı belirttik:
Set-AzDefault -ResourceGroupName {Resource Group Name}
Yerel şablonu dağıtma
Aşağıdaki alıştırmada, yerel makinenizden bir şablon dağıtacaksınız. Önceki bölümde varsayılan kaynak grubunu tanımladığımızdan, burada normalde kendi ortamınızda dağıtım yaparken kullandığınız kaynak grubu adına gerek yoktur.
Başlamak için aşağıdaki şablon kodunun içeriğini kopyalayıp yerel dizinde bulunan bir dosyaya yapıştırın. Örneğin
C:\JSON\maintemplate.json
kullanın.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "VnetName": { "type": "string", "defaultValue": "VNet-001", "metadata": { "description": "Virtual Network Name" } }, "CostCenterIO": { "type": "string", "defaultValue": "12345", "metadata": { "description": "Cost Center IO number for cross billing" } }, "OwnerName": { "type": "string", "defaultValue": "John Smith", "metadata": { "description": "Name of the stakeholder responsible for this resource" } } }, "variables": {}, "resources": [ { "apiVersion": "2018-10-01", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('VnetName')]", "location": "[resourceGroup().location]", "tags": { "CostCenter": "[parameters('CostCenterIO')]", "Owner": "[parameters('OwnerName')]" }, "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "enableVmProtection": false, "enableDdosProtection": false, "subnets": [ { "name": "subnet001", "properties": { "addressPrefix": "10.0.0.0/24" } }, { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ] } } ] }
Dosyayı yerel olarak kaydettikten sonra PowerShell komutunu kullanarak son ünitede bahsettiğimiz kaynak grubu düzeyinde dağıtabilirsiniz. Yani New-AzResourceGroupDeployment komutunu kullanın.
$templateFile="C:\JSON\maintemplate.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile
Tamamlandıktan sonra, bu örneğe benzer sonuçlara sahip olmanız gerekir.
DeploymentName : DeployLocalTemplate-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:50:04 p.m. Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vnetName String VNet-001 costCenterIO String 12345 ownerName String John Smith Outputs : DeploymentDebugLogLevel :
Aynı yerel şablonu parametre değerleriyle dağıtma
Son alıştırmada şablonunuzu parametrelerin varsayılan değerini kullanarak dağıttınız. Yerel ARM şablonu dağıtırken, parametre değerlerini geçirmeniz gerekebilir. Satır içi parametreleri veya bir parametre dosyası kullanabilirsiniz.
Dağıtımınıza satır içi parametre geçirmek için New-AzResourceGroupDeployment
cmdlet'ini kullanarak parametre adlarını sağlamanız gerekir. Bir sonraki alıştırmada parametreleri, satır içi parametreler ve parametre dosyası olarak geçireceksiniz.
Son alıştırmayla aynı şablonu kullanarak, gerekli şablon parametrelerinin değerlerini içeren bir karma tablo oluşturur.
$parameters = @{vnetName = "VNet-001"; costCenterIO = "12345"; ownerName = "John Smith"} $templateFile="C:\JSON\maintemplate.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-2-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile ` -TemplateParameterObject $parameters
Tamamlandıktan sonra aşağıdakine benzer sonuçlar görmeniz gerekir:
DeploymentName : DeployLocalTemplate-2-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:51:55 p.m. Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vnetName String VNet-001 costCenterIO String 12345 ownerName String John Smith Outputs : DeploymentDebugLogLevel :
Parametreleri betiğinize satır içi değerler olarak geçirmek yerine parametre değerlerini içeren bir JSON dosyası kullanmak daha kolayınıza gelebilir. Parametre dosyası, yerel dosya veya erişilebilir URI değerine sahip dış/uzak dosya olabilir. Parametre dosyası hakkında daha fazla bilgi için bkz. Resource Manager parametre dosyası oluşturma.
Yerel parametre dosyası geçirmek için aynı komutla birlikte
TemplateParameterFile
parametresini kullanırız. Ancak bunu yapabilmek için bir parametre dosyası oluşturup kaydetmeniz şarttır.Visual Studio Code'u Azure Resource Manager Araçları uzantısıyla kullandığımız için yerel olarak kaydettiğiniz ARM şablonunu açabilir ve Parametre dosyasını seç/oluştur... bağlantısını seçebilirsiniz.
Menüden Yeni'yi ve ardından Yalnızca gerekli parametreler'i seçin. Uzantı, açık olan şablonu temel alan bir parametre dosyası oluşturur.
parametresiyle
TemplateParameterFile
aşağıdaki PowerShell komutunu kullanın.$parameters = @{vnetName = "VNet-001"; costCenterIO = "12345"; ownerName = "John Smith"} $templateFile="C:\JSON\maintemplate.json" $TemplateParameterFile= "C:\JSON\maintemplate.parameters.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-3-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile ` -TemplateParameterFile $TemplateParameterFile
Dağıtımdan sonra sonuçlarınız aşağıdaki örneğe benzer olmalıdır.
DeploymentName : DeployLocalTemplate-3-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:54:40 p.m. Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vnetName String VNet-001 costCenterIO String 12345 ownerName String John Smith Outputs : DeploymentDebugLogLevel :
Dış veya uzak şablonu dağıtma
Bazı durumlarda yerel makineniz yerine dış veya uzak konumda bulunan bir şablonu dağıtmanız gerekir. Şablonları bir kaynak denetimi deposunda (GitHub gibi) saklayabilirsiniz. İsterseniz kuruluşunuzda paylaşılan erişim sağlamak için bir Azure depolama hesabı kullanabilirsiniz.
Dış şablon kullanmak için
TemplateUri
parametresini kullanın.Bir sonraki alıştırmada GitHub deposunda bulunan bir ARM şablonunu dağıtacaksınız. Depo genel erişime açık olduğundan paylaşılan erişim imzası (SAS) belirteci gerektiren bir şablonu dağıtma konusunda endişelenmenize gerek yoktur. Özel veya güvenli bir uzak konum kullanma hakkındaki ayrıntılar için bkz. SAS belirteciyle özel şablon dağıtma.
Bu alıştırmada kullanılan şablonun URI'si: https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Korumalı alan ortamınıza temel bir depolama hesabı dağıtan kısa bir şablon.
PowerShell komutu, yerel şablona yönelik komutla tamamen aynıdır. Tek fark,
-TemplateUri
parametresi yerine-TemplateFile
parametresi olmasıdır.Belirtilen korumalı alanda dağıtım gerçekleştirmek için aşağıdaki kodu kullanın:
$parameters = @{vnetName = "VNet-001"; costCenterIO = "12345"; ownerName = "John Smith"} $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-4-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Sonuçlar aşağıdaki ekran görüntüsüne benzer. Şablonun konumuna dair bilgiler görüntülenecektir.
DeploymentName : DeployLocalTemplate-4-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:56:55 p.m. Mode : Incremental TemplateLink : Uri : https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json ContentVersion : 1.0.0.0 Parameters : Name Type Value ==================== ========================= ========== storageAccountType String Standard_LRS location String westus Outputs : Name Type Value ==================== ========================= ========== storageAccountName String storepgxosadmbq77e DeploymentDebugLogLevel :
Not
Bu bölüm, Windows 10 üzerinde Windows Linux Subsystem (WSL2) içinde Azure CLI komutları kullanılarak yazılmıştır. Komutlar PowerShell, CMD veya Bash kabuğundaki Azure CLI ortamında da aynı olacaktır. Ancak değişkenlerin ele alınma yöntemi farklı olabilir.
Azure'da oturum açma
Visual Studio Code’daki terminalden, Azure’da oturum açmak için şu komutu çalıştırın. Bu komutun çalıştırılması, hesabınızda oturum açmanıza olanak tanıyan bir tarayıcı açar.
az login
Oturum açtıktan sonra, terminalde bu hesapla ilişkilendirilmiş aboneliklerin JSON listesini görürsünüz. Korumalı alanı etkinleştirdiyseniz bu listede Concierge Aboneliği’ni görmeniz gerekir.
Abonelik kimliğini alın. Aşağıdaki komut, aboneliklerinizi ve bunların kimliklerini listeler. Abonelik kimliği, üçüncü sütundur.
Concierge Subscription
öğesini bulun ve üçüncü sütunu kopyalayın. gibiaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
görünmelidir.az account list -o table
Etkin aboneliğinizi, Concierge Aboneliği olarak değiştirin.
{Your subscription ID}
yerine bir önceki komutla elde ettiğiniz Concierge Aboneliği kimliğini yazmayı unutmayın.az account set -s {Your subscription ID}
Varsayılan kaynak grubunu ayarlama
Şimdi korumalı alanda sizin için oluşturulan kaynak grubunu varsayılan kaynak grubu olarak ayarlamanız gerekiyor. Bu işlemi gerçekleştirmek için öncelikle aşağıdaki komutu kullanarak kaynak grubu adını almanız gerekir:
az group list -o table
Bu komutta, önceki komuttan aldığınız kaynak adını kullanın. (Şuna benzer: learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Bu komut, bu alıştırmadaki Azure CLI komutlarının geri kalanından bu parametreyi atlamanızı sağlar.
Not
Normalde Azure CLI komutu kullanarak şablon dağıttığınızda hedef kaynak grubu adını belirtmeniz gerekir. Bu modüldeki alıştırmada, dağıtımımızın bağlamını ayarlayarak bu gereksinimi atlıyoruz. az configure Azure CLI komutunu kullanarak sonraki adımda korumalı alan kaynak grubu adımızı belirteceğiz.
az configure --defaults group={Resource Group Name}
Yerel şablonu dağıtma
Aşağıdaki alıştırmada, yerel makinenizden bir şablon dağıtacaksınız. Önceki bölümde varsayılan kaynak grubunu tanımladığımızdan, burada normalde kendi ortamınızda dağıtım yaparken kullandığınız kaynak grubu adına gerek yoktur.
Başlamak için aşağıdaki şablon kodunun içeriğini kopyalayıp yerel dizinde bulunan bir dosyaya yapıştırın. Örneğin
C:\JSON\maintemplate.json
veya/mnt/c/Users/you/json/maintemplate.json
kullanın.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "VnetName": { "type": "string", "defaultValue": "VNet-001", "metadata": { "description": "Virtual Network Name" } }, "CostCenterIO": { "type": "string", "defaultValue": "12345", "metadata": { "description": "Cost Center IO number for cross billing" } }, "OwnerName": { "type": "string", "defaultValue": "John Smith", "metadata": { "description": "Name of the stakeholder responsible for this resource" } } }, "variables": {}, "resources": [ { "apiVersion": "2018-10-01", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('VnetName')]", "location": "[resourceGroup().location]", "tags": { "CostCenter": "[parameters('CostCenterIO')]", "Owner": "[parameters('OwnerName')]" }, "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "enableVmProtection": false, "enableDdosProtection": false, "subnets": [ { "name": "subnet001", "properties": { "addressPrefix": "10.0.0.0/24" } }, { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ] } } ] }
Dosyayı yerel olarak kaydettikten sonra Azure CLI komutunu kullanarak son ünitede bahsettiğimiz kaynak grubu düzeyinde dağıtabilirsiniz. Kullanmanız gereken komut: az deployment group create.
Not
Aşağıdaki örnekte şablon dosyası, Windows Linux Subsystem (WSL2) içindeki ana sürücünün json klasöründedir. Komutunuzu, tercih ettiğiniz kabuğa göre ayarlayın.
templateFile=/mnt/c/Users/<UserName>/json/maintemplate.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile
Tamamlandıktan sonra, sonuçta elde edilen çıkış aşağıdaki örneğe benzer olmalıdır. Dağıtımın başarılı olduğundan emin olmak için
"provisioningState": "Succeeded"
satırını arayın.{ "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Resources/deployments/DeployLocalTemplate-2020-08-19", "location": null, "name": "DeployLocalTemplate-2020-08-19", "properties": { "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd", "debugSetting": null, "dependencies": [], "duration": "PT8.9060761S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/ learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a" } ], "outputs": null, "parameters": { "costCenterIO": { "type": "String", "value": "12345" }, "ownerName": { "type": "String", "value": "John Smith" }, "vnetName": { "type": "String", "value": "VNet-001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "virtualNetworks" } ] } ], "provisioningState": "Succeeded", "templateHash": "11553431046699679955", "templateLink": null, "timestamp": "2020-08-19T14:47:06.403362+00:00", "validatedResources": null }, "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a", "tags": null, "type": "Microsoft.Resources/deployments" }
Aynı yerel şablonu parametre değerleriyle dağıtma
Son alıştırmada şablonunuzu parametrelerin varsayılan değerini kullanarak dağıttınız. Yerel ARM şablonu dağıtırken, parametre değerlerini geçirmeniz gerekebilir. Satır içi parametreleri veya bir parametre dosyası kullanabilirsiniz.
Sonraki alıştırmada dağıtımınıza satır içi parametreler geçireceksiniz. Satır içi parametreler veya parametre dosyası kullanıyor olun, komutunu kullanarak parametrelerin az deployment group create
adlarını sağlamanız gerekir.
Son alıştırmayla aynı şablonu kullanarak, gerekli şablon parametreleri için JSON dize biçiminde parametreleri içeren bir değişken oluşturun.
Not
Aşağıdaki örnekte şablon dosyası, Windows Linux Subsystem (WSL2) içindeki json klasöründedir. Komutunuzu, tercih ettiğiniz kabuğa ve işletim sistemine göre ayarlayın.
parameters="{\"vnetName\":{\"value\":\"VNet-001\"},\"costCenterIO\":{\"value\":\"12345\"},\"ownerName\":{\"value\":\"John Smith\"}}" templateFile=/mnt/c/Users/<UserName>/json/maintemplate.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-2-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile \ --parameters "$parameters"
Tamamlandıktan sonra, aşağıdaki örneğe benzer sonuçlarınız olması gerekir. Komutun başarılı olduğundan emin olmak için bölümüne ve
"provisioningState"
değerine bakın"parameters"
.{- Finished .. "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Resources/deployments/DeployLocalTemplate-2-2020-08-19", "location": null, "name": "DeployLocalTemplate-2-2020-08-19", "properties": { "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee", "debugSetting": null, "dependencies": [], "duration": "PT4.6990388S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a" } ], "outputs": null, "parameters": { "costCenterIO": { "type": "String", "value": "12345" }, "ownerName": { "type": "String", "value": "John Smith" }, "vnetName": { "type": "String", "value": "VNet-001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "virtualNetworks" } ] } ], "provisioningState": "Succeeded", "templateHash": "11553431046699679955", "templateLink": null, "timestamp": "2020-08-19T16:40:20.249786+00:00", "validatedResources": null }, "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a", "tags": null, "type": "Microsoft.Resources/deployments" }
Parametreleri betiğinize satır içi değerler olarak geçirmek yerine parametre değerlerini içeren bir JSON dosyası kullanmak daha kolayınıza gelebilir. Parametre dosyası, yerel dosya veya erişilebilir URI değerine sahip dış/uzak dosya olabilir. Parametre dosyası hakkında daha fazla bilgi için bkz. Resource Manager parametre dosyası oluşturma.
Yerel parametre dosyası geçirmek için aynı komutla birlikte
--parameters
parametresini kullanırız. Ancak bunu yapabilmek için bir parametre dosyası oluşturup kaydetmeniz şarttır.Visual Studio Code'u Azure Resource Manager Araçları uzantısıyla birlikte kullandığımız için, yerel olarak kaydettiğiniz ARM şablonunu açabilir ve Tam doğrulamayı etkinleştirmek için Parametre dosyası seçin veya oluşturun bağlantısını seçebilirsiniz.
Menüden Yeni’yi seçin. Uzantı, açık olan şablonu temel alan bir parametre dosyası oluşturur.
Aşağıdaki Azure CLI komutunu
--parameters
parametresiyle kullanın.Not
Aşağıdaki örnekte şablon dosyası, Windows Linux Subsystem (WSL2) içindeki json klasöründedir. Komutu, tercih ettiğiniz kabuğa ve işletim sistemine göre ayarlayın.
templateFile=/mnt/c/Users/<UserName>/json/maintemplate.json templateparameterfile=/mnt/c/Users/<UserName>/json/maintemplate.parameters.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-3-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile \ --parameters $templateparameterfile
Dağıtımdan sonra, sonuç houdl'unuz aşağıdaki örneğe benzer şekilde görünür.
{- Finished .. "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Resources/deployments/DeployLocalTemplate-3-2020-08-19", "location": null, "name": "DeployLocalTemplate-3-2020-08-19", "properties": { "correlationId": "cccc2222-dd33-4444-55ee-666666ffffff", "debugSetting": null, "dependencies": [], "duration": "PT4.2058912S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b" } ], "outputs": null, "parameters": { "costCenterIO": { "type": "String", "value": "12345" }, "ownerName": { "type": "String", "value": "John Smith" }, "vnetName": { "type": "String", "value": "VNet-001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "virtualNetworks" } ] } ], "provisioningState": "Succeeded", "templateHash": "11553431046699679955", "templateLink": null, "timestamp": "2020-08-19T20:42:44.069215+00:00", "validatedResources": null }, "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b", "tags": null, "type": "Microsoft.Resources/deployments" }
Dış veya uzak şablonu dağıtma
Bazı durumlarda yerel makineniz yerine dış veya uzak konumda bulunan bir şablonu dağıtmanız gerekir. Şablonları bir kaynak denetimi deposunda (GitHub gibi) saklayabilirsiniz. İsterseniz kuruluşunuzda paylaşılan erişim sağlamak için bir Azure depolama hesabı kullanabilirsiniz.
- Dış şablon kullanmak için
--template-uri
parametresini kullanın.
Bu alıştırmada, GitHub deposundan bir ARM şablonu dağıtacaksınız. Depo genel erişime açık olduğundan paylaşılan erişim imzası (SAS) belirteci gerektiren bir şablonu dağıtma konusunda endişelenmenize gerek yoktur. Özel veya güvenli bir uzak konum kullanma hakkındaki ayrıntılar için bkz. SAS belirteciyle özel şablon dağıtma.
Bu alıştırmada kullanılan şablonun URI'si: https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Korumalı alan ortamınıza temel bir depolama hesabı dağıtan kısa bir şablon.
Azure CLI komutu, yerel şablona yönelik komutla tamamen aynıdır. Tek fark,
--template-uri
parametresi yerine--template-file
parametresi olmasıdır.Belirtilen korumalı alanda dağıtım gerçekleştirmek için aşağıdaki kodu kullanın:
parameters="{\"vnetName\":{\"value\":\"VNet-001\"},\"costCenterIO\":{\"value\":\"12345\"},\"ownerName\":{\"value\":\"John Smith\"}}" today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-4-"$today az deployment group create \ --name $deploymentname \ --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Sonuçlar aşağıdaki kod bloğuna benzer.
"templateLink"
bölümündeki şablonun konumuna dair bilgiler görüntülenecektir. Ayrıca bölümünde dağıtımın başarılı"provisioningState"
olup olmadığını da gösterirler.{- Finished .. "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Resources/deployments/DeployLocalTemplate-4-2020-08-19", "location": null, "name": "DeployLocalTemplate-4-2020-08-19", "properties": { "correlationId": "dddd3333-ee44-5555-66ff-777777aaaaaa", "debugSetting": null, "dependencies": [], "duration": "PT24.3286124S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Storage/storageAccounts/store7zk7eyqew54l4", "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b" } ], "outputs": { "storageAccountName": { "type": "String", "value": "store7zk7eyqew54l4" } }, "parameters": { "location": { "type": "String", "value": "westus" }, "storageAccountType": { "type": "String", "value": "Standard_LRS" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Storage", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "storageAccounts" } ] } ], "provisioningState": "Succeeded", "templateHash": "12600309984865991765", "templateLink": { "contentVersion": "1.0.0.0", "id": null, "relativePath": null, "uri": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json" }, "timestamp": "2020-08-19T20:53:36.759312+00:00", "validatedResources": null }, "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b", "tags": null, "type": "Microsoft.Resources/deployments" }