Latihan - Menyebarkan templat ARM Anda
Catatan
Saat Anda pertama kali mengaktifkan kotak pasir dan menerima persyaratan, akun Microsoft Anda dikaitkan dengan direktori Azure baru bernama Microsoft Learn Sandbox. Anda ditambahkan ke langganan khusus bernama Langganan Concierge.
Di sini, Anda menggunakan templat Azure Resource Manager (ARM) dari komputer Anda dan dari repositori GitHub dengan menentukan URI.
Penting
Latihan ini menggunakan Azure Resource Manager Tools untuk Visual Studio Code. Pastikan untuk menginstal ekstensi ini di Visual Studio Code.
Menyiapkan lingkungan Anda dengan langganan Microsoft Learn Sandbox
Untuk melakukan setiap penyebaran di pelajaran ini, Anda harus masuk ke akun Azure Anda dari terminal Visual Studio Code.
Pastikan Anda masuk ke akun yang sama yang mengaktifkan kotak pasir.
Masuk ke Azure
Dari terminal di Visual Studio Code, jalankan perintah berikut untuk masuk ke Azure. Menjalankan perintah ini membuka browser yang memungkinkan Anda masuk ke akun Anda.
Connect-AzAccount
Setelah masuk, Anda akan melihat daftar langganan yang terkait dengan akun ini di terminal. Jika Anda mengaktifkan kotak pasir, Langganan Concierge harus ada dalam daftar ini.
Verifikasi nama langganan. Perintah berikut mencantumkan langganan, nama, dan ID mereka dalam format tabel yang mudah dibaca. Cari
Concierge Subscription
.Get-AzSubscription
Ubah langganan aktif Anda menjadi Langganan Concierge.
$context = Get-AzSubscription -SubscriptionName "Concierge Subscription" | Set-AzContext
Menetapkan grup sumber daya default
Anda sekarang perlu mengatur grup sumber daya yang dibuat untuk Anda di kotak pasir sebagai grup sumber daya default. Untuk melakukan operasi tersebut, Anda harus terlebih dahulu mendapatkan nama grup sumber daya dengan menjalankan perintah berikut.
Get-AzResourceGroup | where-object ResourceGroupName -match "learn" | Set-AzDefault
Dalam perintah ini, gunakan nama sumber daya yang Anda dapatkan dari perintah sebelumnya. (Ini terlihat seperti learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Perintah ini memungkinkan Anda untuk menghilangkan parameter tersebut dari perintah Azure PowerShell lainnya dalam latihan ini.
Catatan
Biasanya, saat Anda menjalankan perintah PowerShell atau Azure CLI untuk menyebarkan templat, Anda harus menentukan nama grup sumber daya target. Menjalankan perintah sebelumnya, kita telah mengatur konteks penyebaran kita. Kita telah menentukan nama grup sumber daya kotak pasir kita dengan menjalankan perintah PowerShell Set-AzDefault:
Set-AzDefault -ResourceGroupName {Resource Group Name}
Menyebarkan templat lokal
Dalam latihan berikut, Anda menyebarkan templat dari komputer lokal Anda. Nama grup sumber daya yang biasanya Anda gunakan saat menyebarkan di lingkungan Anda sendiri tidak diperlukan di sini, karena kami sudah menentukan grup sumber daya default di bagian sebelumnya.
Untuk memulai, salin dan tempel konten kode templat berikut ini ke dalam file di direktori lokal. Gunakan
C:\JSON\maintemplate.json
, misalnya.{ "$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" } } ] } } ] }
Setelah menyimpan file secara lokal, Anda dapat menggunakan perintah PowerShell untuk menyebarkannya di tingkat grup sumber daya yang kita bicarakan di unit terakhir. Yaitu, gunakan perintah New-AzResourceGroupDeployment .
$templateFile="C:\JSON\maintemplate.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile
Setelah selesai, Anda harus memiliki hasil seperti contoh ini.
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 :
Menyebarkan templat lokal yang sama dengan nilai parameter
Pada latihan terakhir, Anda menyebarkan templat dengan menggunakan nilai default parameter. Saat Anda menggunakan templat ARM lokal, Anda mungkin perlu meneruskan nilai parameter. Anda dapat menggunakan parameter sebaris atau file parameter.
Untuk meneruskan parameter sebaris ke penyebaran Anda, Anda perlu memberikan nama parameter dengan New-AzResourceGroupDeployment
cmdlet. Pada latihan berikutnya, Anda akan meneruskan parameter sebagai parameter sebaris dan sebagai file parameter.
Dengan menggunakan templat yang sama dengan latihan terakhir, buat tabel hash yang berisi nilai untuk parameter templat yang diperlukan.
$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
Setelah selesai, Anda pasti memiliki hasil seperti ini:
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 :
Daripada meneruskan parameter sebagai nilai sebaris dalam skrip Anda, akan lebih mudah bila Anda menggunakan file JSON yang berisi nilai parameter. File parameter dapat menjadi file lokal atau file eksternal/jarak jauh dengan URI yang dapat diakses. Untuk informasi selengkapnya tentang file parameter, lihat Membuat file parameter Resource Manager.
Untuk meneruskan file parameter lokal, kami menggunakan
TemplateParameterFile
parameter dalam perintah yang sama dengan yang telah kami gunakan. Tetapi pertama-tama, Anda perlu membuat dan menyimpan file parameter Anda.Karena kami menggunakan Visual Studio Code dengan ekstensi Alat Azure Resource Manager, Anda dapat membuka templat ARM yang Anda simpan secara lokal dan memilih tautan Pilih/buat file parameter... .
Pilih Baru pada menu, lalu pilih Hanya parameter yang diperlukan. Ekstensi membuat file parameter berdasarkan templat yang saat ini dibuka.
Gunakan perintah PowerShell berikut dengan
TemplateParameterFile
parameter .$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
Setelah penyebaran, hasil Anda akan terlihat seperti contoh berikut.
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 :
Menyebarkan templat eksternal atau jarak jauh
Dalam beberapa kasus, Anda perlu menyebarkan dari lokasi eksternal atau jarak jauh alih-alih dari templat di komputer lokal Anda. Anda dapat menyimpan templat di repositori kontrol sumber (seperti GitHub). Atau, Anda dapat menyimpannya di akun penyimpanan Azure untuk akses bersama di organisasi Anda.
Untuk menyebarkan templat eksternal, gunakan
TemplateUri
parameter.Dalam latihan ini, Anda akan menyebarkan template ARM dari repositori GitHub. Repositori bersifat publik, jadi Anda tidak perlu khawatir tentang menyebarkan templat yang memerlukan token tanda tangan akses bersama (SAS). Untuk detail tentang menggunakan lokasi jarak jauh pribadi atau aman, lihat Menyebarkan templat pribadi dengan token SAS.
Templat URI untuk latihan adalah https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Ini adalah templat singkat yang menyebarkan akun penyimpanan dasar di lingkungan kotak pasir Anda.
Perintah PowerShell sama persis dengan templat lokal. Satu-satunya perbedaan adalah bahwa
-TemplateUri
parameter menggantikan-TemplateFile
parameter.Gunakan kode berikut untuk menyebarkan di kotak pasir yang disediakan:
$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
Hasilnya seperti tangkapan layar berikut. Mereka menguraikan detail lokasi templat.
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 :
Catatan
Bagian ini ditulis menggunakan perintah Azure CLI di Subsistem Linux Windows (WSL2) pada Windows 10. Perintahnya sama baik Anda menggunakan Azure CLI dalam PowerShell, CMD, atau Bash shell. Tetapi cara penanganan variabel dapat berbeda.
Masuk ke Azure
Dari terminal di Visual Studio Code, jalankan perintah berikut untuk masuk ke Azure. Menjalankan perintah ini membuka browser yang memungkinkan Anda masuk ke akun Anda.
az login
Setelah masuk, Anda akan melihat daftar JSON langganan yang terkait dengan akun ini di terminal. Jika Anda mengaktifkan kotak pasir, Langganan Concierge harus ada dalam daftar ini.
Dapatkan ID langganan. Perintah berikut mencantumkan langganan Anda dan ID mereka. ID langganan adalah kolom kedua. Cari
Concierge Subscription
dan salin kolom kedua. Ini akan terlihat seperticf49fbbc-217c-4eb6-9eb5-a6a6c68295a0
.az account list -o table
Ubah langganan aktif Anda menjadi Langganan Concierge. Pastikan untuk mengganti
{Your subscription ID}
dengan ID Langganan Concierge yang Anda dapatkan di perintah terakhir.az account set -s {Your subscription ID}
Menetapkan grup sumber daya default
Anda sekarang perlu mengatur grup sumber daya yang dibuat untuk Anda di kotak pasir sebagai grup sumber daya default. Untuk melakukan operasi tersebut, Pertama-tama Anda harus mendapatkan nama grup sumber daya dengan menggunakan perintah berikut:
az group list -o table
Dalam perintah ini, gunakan nama sumber daya yang Anda dapatkan dari perintah sebelumnya. (Ini terlihat seperti learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Perintah ini memungkinkan Anda untuk menghilangkan parameter tersebut dari perintah Azure Cli lainnya dalam latihan ini.
Catatan
Biasanya, saat Anda menggunakan perintah Azure CLI untuk menyebarkan template, Anda perlu menentukan nama grup sumber daya target. Dalam latihan dalam modul ini, kami melewati persyaratan ini dengan menetapkan konteks penyebaran kami. Kami menentukan nama grup sumber daya kotak pasir kami di langkah berikutnya dengan menggunakan perintah az configure Azure CLI.
az configure --defaults group={Resource Group Name}
Menyebarkan templat lokal
Dalam latihan berikut, Anda menyebarkan templat dari komputer lokal Anda. Nama grup sumber daya yang biasanya Anda gunakan saat menyebarkan di lingkungan Anda sendiri tidak diperlukan di sini, karena kami sudah menentukan grup sumber daya default di bagian sebelumnya.
Untuk memulai, salin dan tempel konten kode templat berikut ini ke dalam file di direktori lokal. Gunakan
C:\JSON\maintemplate.json
atau/mnt/c/Users/you/json/maintemplate.json
, misalnya.{ "$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" } } ] } } ] }
Setelah menyimpan file secara lokal, Anda dapat menggunakan perintah Azure CLI untuk menyebarkannya di tingkat grup sumber daya yang kita bicarakan di unit terakhir. Yakni, gunakan buat grup penyebaran az.
Catatan
Dalam contoh berikut, file template berada dalam folder json di home drive di Windows Linux Subsystem (WSL2). Sesuaikan perintah Anda berdasarkan shell pilihan Anda.
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
Setelah selesai, output yang dihasilkan akan terlihat seperti contoh berikut. Untuk memastikan bahwa penyebaran Anda berhasil, cari garis
"provisioningState": "Succeeded"
.{ "id": "/subscriptions/082d0d73-f197-45c5-9884-581c8f0ce102/resourceGroups/learn-e692001a-b605-48d4-97bd-7c05669db9dd/providers/Microsoft.Resources/deployments/DeployLocalTemplate-2020-08-19", "location": null, "name": "DeployLocalTemplate-2020-08-19", "properties": { "correlationId": "6ad759d5-cda5-4a71-a772-05a03d983c6f", "debugSetting": null, "dependencies": [], "duration": "PT8.9060761S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/082d0d73-f197-45c5-9884-581c8f0ce102/resourceGroups/ learn-e692001a-b605-48d4-97bd-7c05669db9dd/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-e692001a-b605-48d4-97bd-7c05669db9dd" } ], "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-e692001a-b605-48d4-97bd-7c05669db9dd", "tags": null, "type": "Microsoft.Resources/deployments" }
Menyebarkan templat lokal yang sama dengan nilai parameter
Pada latihan terakhir, Anda menyebarkan templat dengan menggunakan nilai default parameter. Saat Anda menggunakan templat ARM lokal, Anda mungkin perlu meneruskan nilai parameter. Anda dapat menggunakan parameter sebaris atau file parameter.
Pada latihan berikutnya, Anda meneruskan parameter sebaris ke penyebaran Anda. Anda perlu memberikan nama parameter apakah Anda menggunakan parameter sebaris atau file parameter, dengan menggunakan az deployment group create
perintah .
Dengan menggunakan templat yang sama dengan latihan terakhir, buat variabel yang berisi parameter dalam format string JSON untuk parameter templat yang diperlukan.
Catatan
Dalam contoh berikut, file templat berada dalam folder json di Windows Linux Subsystem (WSL2). Sesuaikan perintah Anda berdasarkan shell pilihan Anda.
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"
Setelah selesai, Anda harus memiliki hasil seperti contoh berikut. Untuk memastikan bahwa perintah berhasil, lihat bagian
"parameters"
dan nilainya"provisioningState"
.{- Finished .. "id": "/subscriptions/082d0d73-f197-45c5-9884-581c8f0ce102/resourceGroups/learn-e692001a-b605-48d4-97bd-7c05669db9dd/providers/Microsoft.Resources/deployments/DeployLocalTemplate-2-2020-08-19", "location": null, "name": "DeployLocalTemplate-2-2020-08-19", "properties": { "correlationId": "edb2992e-08be-4ec2-940e-df23b1c09453", "debugSetting": null, "dependencies": [], "duration": "PT4.6990388S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/082d0d73-f197-45c5-9884-581c8f0ce102/resourceGroups/learn-e692001a-b605-48d4-97bd-7c05669db9dd/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-e692001a-b605-48d4-97bd-7c05669db9dd" } ], "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-e692001a-b605-48d4-97bd-7c05669db9dd", "tags": null, "type": "Microsoft.Resources/deployments" }
Daripada meneruskan parameter sebagai nilai sebaris dalam skrip Anda, akan lebih mudah bila Anda menggunakan file JSON yang berisi nilai parameter. File parameter dapat menjadi file lokal atau file eksternal/jarak jauh dengan URI yang dapat diakses. Untuk informasi selengkapnya tentang file parameter, lihat Membuat file parameter Resource Manager.
Untuk meneruskan file parameter lokal, kami menggunakan
--parameters
parameter dalam perintah yang sama dengan yang telah kami gunakan. Tetapi pertama-tama, Anda perlu membuat dan menyimpan file parameter Anda.Karena kami menggunakan Visual Studio Code dengan ekstensi Alat Azure Resource Manager, Anda dapat membuka templat ARM yang Anda simpan secara lokal dan memilih pilih atau buat file parameter untuk mengaktifkan tautan validasi penuh.
Pilih Baru pada menu. Ekstensi membuat file parameter berdasarkan templat yang saat ini dibuka.
Gunakan perintah Azure CLI berikut dengan
--parameters
parameter.Catatan
Dalam contoh berikut, file templat berada dalam folder json di Windows Linux Subsystem (WSL2). Sesuaikan perintah Anda berdasarkan shell dan OS pilihan Anda.
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
Setelah penyebaran, hasil Anda akan terlihat seperti contoh berikut.
{- Finished .. "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/learn-159e2742-d3a1-4e71-84a3-16e19830242b/providers/Microsoft.Resources/deployments/DeployLocalTemplate-3-2020-08-19", "location": null, "name": "DeployLocalTemplate-3-2020-08-19", "properties": { "correlationId": "2a668f55-d8d0-48ac-862f-7170b48c02b6", "debugSetting": null, "dependencies": [], "duration": "PT4.2058912S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/learn-159e2742-d3a1-4e71-84a3-16e19830242b/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-159e2742-d3a1-4e71-84a3-16e19830242b" } ], "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-159e2742-d3a1-4e71-84a3-16e19830242b", "tags": null, "type": "Microsoft.Resources/deployments" }
Menyebarkan templat eksternal atau jarak jauh
Dalam beberapa kasus, Anda perlu menyebarkan dari lokasi eksternal atau jarak jauh alih-alih dari templat di komputer lokal Anda. Anda dapat menyimpan templat di repositori kontrol sumber (seperti GitHub). Atau, Anda dapat menyimpannya di akun penyimpanan Azure untuk akses bersama di organisasi Anda.
- Untuk menyebarkan templat eksternal, gunakan
--template-uri
parameter.
Dalam latihan ini, Anda menyebarkan templat ARM dari repositori GitHub. Repositori bersifat publik, jadi Anda tidak perlu khawatir tentang menyebarkan templat yang memerlukan token tanda tangan akses bersama (SAS). Untuk detail tentang menggunakan lokasi jarak jauh pribadi atau aman, lihat Menyebarkan templat pribadi dengan token SAS.
Templat URI untuk latihan adalah https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Ini adalah templat singkat yang menyebarkan akun penyimpanan dasar di lingkungan kotak pasir Anda.
Perintah Cli Azure sama persis dengan templat lokal. Satu-satunya perbedaan adalah bahwa
--template-uri
parameter menggantikan--template-file
parameter.Gunakan kode berikut untuk menyebarkan di kotak pasir yang disediakan:
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
Hasilnya seperti blok kode berikut. Mereka menguraikan detail lokasi templat di
"templateLink"
bagian tersebut. Mereka juga menunjukkan apakah penyebaran berhasil di bagian ."provisioningState"
{- Finished .. "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/learn-159e2742-d3a1-4e71-84a3-16e19830242b/providers/Microsoft.Resources/deployments/DeployLocalTemplate-4-2020-08-19", "location": null, "name": "DeployLocalTemplate-4-2020-08-19", "properties": { "correlationId": "2ccc49de-9d46-4375-a25d-19ec10daf88b", "debugSetting": null, "dependencies": [], "duration": "PT24.3286124S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/learn-159e2742-d3a1-4e71-84a3-16e19830242b/providers/Microsoft.Storage/storageAccounts/store7zk7eyqew54l4", "resourceGroup": "learn-159e2742-d3a1-4e71-84a3-16e19830242b" } ], "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-159e2742-d3a1-4e71-84a3-16e19830242b", "tags": null, "type": "Microsoft.Resources/deployments" }