Alıştırma - Bağlantılı ve iç içe yerleştirilmiş ARM şablonlarını 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, sağlanan korumalı alan ortamında iki bağlantılı şablon içeren bir şablon dağıtacaksınız.
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.
Verilen Azure korumalı alan aboneliğiyle test 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 kimliğini alın. Aşağıdaki komut, aboneliklerinizi ve bunların kimliklerini kolay okunan bir tablo biçiminde listeler. Abonelik kimliği, ikinci sütundur.
Concierge Subscription
öğesini bulun ve ikinci sütunu kopyalayın. şunaaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
benzer.Get-AzSubscription
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.$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
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:
Get-AzResourceGroup
Bu komutta, önceki komuttan aldığınız kaynak adını kullanın. şuna learn-a73131a1-b618-48b8-af70-21af7ca420c4
benzer. Bu komut, bu alıştırmadaki Azure PowerShell komutlarının geri kalanında bu parametreyi atlamanıza olanak verir.
Not
Normalde PowerShell veya 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. Set-AzDefault PowerShell komutunu kullanarak sonraki adımda korumalı alan kaynak grubu adımızı belirteceğiz.
Set-AzDefault -ResourceGroupName {Resource Group Name}
Bağlantılı şablonu dağıtma
Bu alıştırmada, iki bağlantılı şablon içeren bir şablonu gözden geçirip dağıtacağız.
ARM şablonunuza bağlı bir şablon eklemek için bir
Microsoft.Resources/deployments
kaynak ve şablonuntemplateLink
konumuyla yapılandırılan özelliği ekleyin.Aşağıdaki örnek şablonda, iki değişkenin GitHub deposunda bulunan uzak veya dış şablonları tanımladığına dikkat edin.
Şablonu gözden geçirin ve bağlı şablonların
"type": "Microsoft.Resources/deployments"
nerede ve nasıl dağıtılacağını tanımlayan bölümleri not edin.İlk bağlantılı şablon bir depolama hesabı dağıtır. Ana parametreleri kullanır ve depolama şablonunu dağıtır.
İkinci bağlantılı şablon, depolama dağıtımına bağımlı olacak şekilde yapılandırılmıştır ve bir sanal ağ şablonu dağıtır.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "name": { "type": "string", "defaultValue": "linkeddemo001" } }, "variables": { "linked-template": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json", "linked-template-2": "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/what-if/what-if-before.json" }, "resources": [ { "name": "storage", "type": "Microsoft.Resources/deployments", "apiVersion": "2019-10-01", "properties": { "mode": "Incremental", "templateLink": { "uri": "[variables('linked-template')]", "contentVersion": "1.0.0.0" }, "parameters": { "location": { "value": "[resourceGroup().location]" } } } }, { "name": "identity", "type": "Microsoft.Resources/deployments", "apiVersion": "2019-10-01", "dependsOn": [ "[resourceId('Microsoft.Resources/deployments','storage')]" ], "properties": { "mode": "Incremental", "templateLink": { "uri": "[variables('linked-template-2')]", "contentVersion": "1.0.0.0" } } } ], "outputs": {} }
Önceki şablonun içeriğini yerel dizindeki bir dosyaya kopyalayıp yapıştırın. Örneğin
C:\JSON\linkedtemplate.json
kullanın.Dosyayı yerel olarak kaydettikten sonra, son ünitede bahsettiğimiz kaynak grubu düzeyinde dağıtmak için aşağıdaki PowerShell komutunu kullanın. New-AzResourceGroupDeployment komutunu kullanın.
$templateFile="C:\JSON\linkedtemplate.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLinkedTemplate-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile
Tamamlandıktan sonra aşağıdaki exmaple gibi sonuçlara sahip olmanız gerekir.
Sonuçları doğrulayın.
Azure portala gidin ve korumalı alan aboneliğinizde olduğunuzdan emin olun. Bunu yapmak için, sayfanın sağ üst köşesinde avatarınızı seçin. Dizini değiştir’i seçin. Listede Microsoft Learn Korumalı Alan dizinini seçin.
Soldaki panelde Kaynak grupları’nı seçin.
[sandbox resource group name] öğesini seçin.Genel Bakış alanında dağıtımın başarılı olduğunu görürsünüz. Dağıtımın ayrıntılarını görmek için 3 Başarılı seçeneğini belirleyin. (Önceki ünitede yer alan alıştırmaları tamamlayıp tamamlamadığınıza bağlı olarak daha fazla dağıtım olabilir.)
Tek bir şablon dağıtmanıza rağmen portalın dağıtım bölmesinde üç şablonun listelendiğine dikkat edin. Bu üç dağıtım, ana şablonu ve iki bağlantılı şablonu ifade eder.
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. şunaaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
benzer.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 grubunun adını kullanın. (Şuna benzer: learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Bu varsayılan ayarın ayarlanması, bu alıştırmadaki Azure CLI komutlarının geri kalanından bu parametreyi atlamanıza olanak tanır.
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}
Bağlantılı şablonu dağıtma
Bu alıştırmada, iki bağlantılı şablon içeren bir şablonu gözden geçirip dağıtacağız.
ARM şablonunuza bağlı bir şablon eklemek için bir
Microsoft.Resources/deployments
kaynak ve şablonuntemplateLink
konumuyla yapılandırılan özelliği ekleyin.Aşağıdaki örnek şablonda, iki değişkenin GitHub deposunda bulunan uzak veya dış şablonları tanımladığına dikkat edin.
Şablonu gözden geçirin ve bağlı şablonların
"type": "Microsoft.Resources/deployments"
nerede ve nasıl dağıtılacağını tanımlayan bölümleri not edin.İlk bağlantılı şablon bir depolama hesabı dağıtır. Ana parametreleri kullanır ve depolama şablonunu dağıtır.
İkinci bağlantılı şablon, depolama dağıtımına bağımlı olacak şekilde yapılandırılmıştır ve bir sanal ağ şablonu dağıtır.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "name": { "type": "string", "defaultValue": "linkeddemo001" } }, "variables": { "linked-template": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json", "linked-template-2": "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/what-if/what-if-before.json" }, "resources": [ { "name": "storage", "type": "Microsoft.Resources/deployments", "apiVersion": "2019-10-01", "properties": { "mode": "Incremental", "templateLink": { "uri": "[variables('linked-template')]", "contentVersion": "1.0.0.0" }, "parameters": { "location": { "value": "[resourceGroup().location]" } } } }, { "name": "identity", "type": "Microsoft.Resources/deployments", "apiVersion": "2019-10-01", "dependsOn": [ "[resourceId('Microsoft.Resources/deployments','storage')]" ], "properties": { "mode": "Incremental", "templateLink": { "uri": "[variables('linked-template-2')]", "contentVersion": "1.0.0.0" } } } ], "outputs": {} }
Önceki şablonun içeriğini yerel dizindeki bir dosyaya kopyalayıp yapıştırın. Örneğin
C:\JSON\linkedtemplate.json or /mnt/c/Users/you/json/linkedtemplate.json
kullanın.Bu dosyayı yerel olarak kaydettikten sonra, aşağıdaki Azure CLI komutunu kullanarak kaynak grubu düzeyinde dağıtın. Kullanmanız gereken komut: az deployment group create.
templateFile=/mnt/c/Users/<UserName>/json/linkedtemplate.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-3-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile
Tamamlandıktan sonra, aşağıdaki örneğe benzer sonuçlarınız olması gerekir. Dağıtımın başarılı olduğundan emin olmak için
"provisioningState"
değerini denetleyin.{- Finished .. "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.Resources/deployments/DeployLocalTemplate-3-2020-08-19", "location": null, "name": "DeployLocalTemplate-3-2020-08-19", "properties": { "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd", "debugSetting": null, "dependencies": [ { "dependsOn": [ { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.Resources/deployments/storage", "resourceGroup": "learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f", "resourceName": "storage", "resourceType": "Microsoft.Resources/deployments" } ], "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.Resources/deployments/identity", "resourceGroup": "learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f", "resourceName": "identity", "resourceType": "Microsoft.Resources/deployments" } ], "duration": "PT16.4639167S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.Network/virtualNetworks/vnet-001", "resourceGroup": "learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f" }, { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.Storage/storageAccounts/store7zk7eyqew54l4", "resourceGroup": "learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f" } ], "outputs": {}, "parameters": { "name": { "type": "String", "value": "linkeddemo001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Resources", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ null ], "properties": null, "resourceType": "deployments" } ] } ], "provisioningState": "Succeeded", "templateHash": "12700491000282730217", "templateLink": null, "timestamp": "2020-08-19T21:07:18.729310+00:00", "validatedResources": null }, "resourceGroup": "learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f", "tags": null, "type": "Microsoft.Resources/deployments" }
Sonuçları doğrulayın.
Azure portala gidin ve korumalı alan aboneliğinizde olduğunuzdan emin olun. Bunu yapmak için, sayfanın sağ üst köşesinde avatarınızı seçin. Dizini değiştir’i seçin. Listede Microsoft Learn Korumalı Alan dizinini seçin.
Soldaki panelde Kaynak grupları’nı seçin.
[sandbox resource group name] öğesini seçin.Genel Bakış alanında dağıtımın başarılı olduğunu görürsünüz. Dağıtımın ayrıntılarını görmek için 3 Başarılı seçeneğini belirleyin. (Önceki ünitede yer alan alıştırmaları tamamlayıp tamamlamadığınıza bağlı olarak daha fazla dağıtım olabilir.)
Tek bir şablon dağıtmanıza rağmen portalın dağıtım bölmesinde üç şablonun listelendiğine dikkat edin. Bu üç dağıtım, ana şablonu ve iki bağlantılı şablonu ifade eder.