Mengelola variabel di Azure Automation

Aset variabel adalah nilai yang tersedia untuk semua runbook dan konfigurasi DSC di akun Automation Anda. Anda dapat mengelolanya dari portal Microsoft Azure, dari PowerShell, dalam runbook, atau dalam konfigurasi DSC.

Variabel Automation berguna untuk skenario berikut:

  • Berbagi nilai di antara beberapa runbook atau konfigurasi DSC.

  • Berbagi nilai di antara beberapa pekerjaan dari runbook atau konfigurasi DSC yang sama.

  • Mengelola nilai yang digunakan oleh runbook atau konfigurasi DSC dari portal atau dari baris perintah PowerShell. Contohnya adalah set item konfigurasi umum, seperti daftar nama komputer virtual tertentu, grup sumber daya tertentu, nama domain AD, dan lainnya.

Azure Automation tetap memiliki variabel dan membuatnya tersedia meskipun runbook atau konfigurasi DSC gagal. Perilaku ini memungkinkan satu runbook atau konfigurasi DSC untuk menetapkan nilai yang kemudian digunakan oleh runbook lain, atau oleh runbook atau konfigurasi DSC yang sama saat dijalankan berikutnya.

Azure Automation menyimpan setiap variabel terenkripsi dengan aman. Saat membuat variabel, Anda dapat menentukan enkripsi dan penyimpanannya dengan Azure Automation sebagai aset aman. Setelah Anda membuat variabel, Anda tidak dapat mengubah status enkripsinya tanpa membuat ulang variabel. Jika Anda memiliki variabel akun Automation yang menyimpan data sensitif yang belum dienkripsi, Anda perlu menghapusnya dan membuatnya kembali sebagai variabel terenkripsi. Rekomendasi Pertahanan Microsoft untuk Cloud adalah mengenkripsi semua variabel Azure Automation seperti yang diuraikan dalam Variabel akun Azure Automation sebaiknya dienkripsi. Jika Anda memiliki variabel tidak terenkripsi yang ingin Anda kecualikan dari rekomendasi keamanan ini, lihat Mengecualikan sumber daya dari rekomendasi dan skor aman untuk membuat aturan pengecualian.

Catatan

Aset aman di Azure Automation mencakup informasi masuk, sertifikat, koneksi, dan variabel terenkripsi. Aset ini dienkripsi dan disimpan di Azure Automation menggunakan key unik yang dihasilkan untuk setiap akun Automation. Azure Automation menyimpan key di Key Vault yang dikelola sistem. Sebelum menyimpan aset aman, Automation memuat kunci dari Key Vault lalu menggunakannya untuk mengenkripsi aset.

Jenis variabel

Saat Anda membuat variabel dengan portal Microsoft Azure, Anda harus menentukan jenis data dari daftar dropdown sehingga portal dapat menampilkan kontrol yang sesuai untuk memasukkan nilai variabel. Berikut ini adalah jenis variabel yang tersedia di Azure Automation:

  • String
  • Bilangan bulat
  • WaktuTanggal
  • Boolean
  • Null

Variabel tidak dibatasi untuk jenis data yang ditentukan. Anda harus mengatur variabel menggunakan Windows PowerShell jika Anda ingin menentukan nilai dari jenis yang berbeda. Jika Anda menunjukkan Not defined, nilai variabel diatur ke Null. Anda harus mengatur nilai dengan cmdlet Set-AzAutomationVariable atau cmdlet Set-AutomationVariable internal. Anda menggunakan Set-AutomationVariable di runbook yang dimaksudkan untuk dijalankan di lingkungan sandbox Azure, atau di Windows Hybrid Runbook Worker.

Anda tidak bisa menggunakan portal Microsoft Azure untuk membuat atau mengubah nilai untuk jenis variabel yang kompleks. Namun, Anda dapat memberikan nilai jenis apa pun menggunakan Windows PowerShell. Tipe Complex diambil sebagai Newtonsoft.Json.Linq.JProperty untuk jenis objek Complex bukan jenis PSObject PSCustomObject.

Anda dapat menyimpan beberapa nilai ke satu variabel dengan membuat array atau hashtable dan menyimpannya ke variabel.

Catatan

Variabel nama komputer virtual maksimal 80 karakter. Variabel grup sumber daya maksimal 90 karakter. Lihat Aturan penamaan dan batasan untuk sumber daya Azure.

Cmdlet PowerShell untuk mengakses variabel

Cmdlet dalam tabel berikut membuat dan mengelola variabel Automation dengan PowerShell. cmdlet ini melakukan pengiriman sebagai bagian dari modul Az.

Cmdlet Deskripsi
Get-AzAutomationVariable Mengambil nilai variabel yang ada. Jika nilainya adalah jenis sederhana, jenis yang sama akan diambil. Jika jenisnya kompleks, jenis PSCustomObject akan diambil. 1
New-AzAutomationVariable Membuat variabel baru dan menetapkan nilainya.
Remove-AzAutomationVariable Menghapus variabel yang ada.
Set-AzAutomationVariable Mengatur nilai untuk variabel yang sudah ada.

1 Anda tidak dapat menggunakan cmdlet ini untuk mengambil nilai variabel terenkripsi. Satu-satunya cara untuk melakukannya adalah dengan menggunakan cmdlet Get-AutomationVariable internal dalam runbook atau konfigurasi DSC. Misalnya, untuk melihat nilai variabel terenkripsi, Anda dapat membuat runbook untuk mendapatkan variabel tersebut, lalu menuliskannya ke aliran output:

$encryptvar = Get-AutomationVariable -Name TestVariable
Write-output "The encrypted value of the variable is: $encryptvar"

Cmdlet internal untuk mengakses variabel

Cmdlet internal dalam tabel berikut digunakan untuk mengakses variabel dalam runbook dan konfigurasi DSC Anda. Cmdlet ini hadir dengan modul global Orchestrator.AssetManagement.Cmdlets. Untuk mengetahui informasi selengkapnya, lihat cmdlet internal.

Cmdlet Internal Deskripsi
Get-AutomationVariable Mengambil nilai variabel yang ada.
Set-AutomationVariable Mengatur nilai untuk variabel yang sudah ada.

Catatan

Hindari menggunakan variabel dalam parameter Name cmdlet Get-AutomationVariable di runbook atau konfigurasi DSC. Penggunaan variabel dapat mempersulit penemuan dependensi antara runbook dan variabel Automation pada waktu desain.

Fungsi Python untuk mengakses variabel

Fungsi dalam tabel berikut digunakan untuk mengakses variabel dalam runbook Python 2 dan 3. Runbook Python 3 saat ini dalam pratinjau.

Fungsi Python Deskripsi
automationassets.get_automation_variable Mengambil nilai variabel yang ada.
automationassets.set_automation_variable Mengatur nilai untuk variabel yang sudah ada.

Catatan

Anda harus mengimpor modul automationassets di bagian atas runbook Python Anda untuk mengakses fungsi aset.

Membuat dan mendapatkan variabel

Catatan

Jika Anda ingin menghapus enkripsi untuk variabel, Anda harus menghapus variabel dan membuatnya kembali sebagai tidak terenkripsi.

Membuat dan mendapatkan variabel menggunakan portal Microsoft Azure

  1. Dari akun Automation Anda, di panel sebelah kiri pilih Variabel di bawah Sumber Daya Bersama.
  2. Pada halaman Variabel, pilih Tambahkan variabel.
  3. Selesaikan opsi pada halaman Variabel Baru lalu pilih Buat untuk menyimpan variabel baru.

Catatan

Setelah Anda menyimpan variabel terenkripsi, variabel tersebut tidak dapat dilihat di portal. Variabel hanya dapat diperbarui.

Membuat dan mendapatkan variabel di Windows PowerShell

Runbook atau konfigurasi DSC Anda menggunakan cmdlet New-AzAutomationVariable untuk membuat variabel baru dan mengatur nilai awalnya. Jika variabel dienkripsi, panggilan harus menggunakan parameter Encrypted. Skrip Anda dapat mengambil nilai variabel menggunakan Get-AzAutomationVariable.

Catatan

Skrip PowerShell tidak dapat mengambil nilai terenkripsi. Satu-satunya cara untuk melakukan ini adalah dengan menggunakan cmdlet Get-AutomationVariable internal.

Contoh berikut menunjukkan cara membuat variabel string lalu mengembalikan nilainya.

$rgName = "ResourceGroup01"
$accountName = "MyAutomationAccount"
$variableValue = "My String"

New-AzAutomationVariable -ResourceGroupName "ResourceGroup01" 
-AutomationAccountName "MyAutomationAccount" -Name 'MyStringVariable' `
-Encrypted $false -Value 'My String'
$string = (Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name 'MyStringVariable').Value

Contoh berikut menunjukkan cara membuat variabel dengan jenis kompleks lalu mengambil propertinya. Dalam kasus ini, objek komputer virtual dari Get-AzVM digunakan untuk menentukan subset propertinya.

$rgName = "ResourceGroup01"
$accountName = "MyAutomationAccount"

$vm = Get-AzVM -ResourceGroupName "ResourceGroup01" -Name "VM01" | Select Name, Location, Extensions
New-AzAutomationVariable -ResourceGroupName "ResourceGroup01" -AutomationAccountName "MyAutomationAccount" -Name "MyComplexVariable" -Encrypted $false -Value $vm

$vmValue = Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name "MyComplexVariable"

$vmName = $vmValue.Value.Name
$vmTags = $vmValue.Value.Tags

Contoh runbook tekstual

Contoh berikut menunjukkan cara mengatur dan mengambil variabel dalam runbook tekstual. Contoh ini mengasumsikan pembuatan variabel integer bernama numberOfIterations dan numberOfRunnings dan variabel string bernama sampleMessage.

$rgName = "ResourceGroup01"
$accountName = "MyAutomationAccount"

$numberOfIterations = Get-AutomationVariable -Name "numberOfIterations"
$numberOfRunnings = Get-AutomationVariable -Name "numberOfRunnings"
$sampleMessage = Get-AutomationVariable -Name "sampleMessage"

Write-Output "Runbook has been run $numberOfRunnings times."

for ($i = 1; $i -le $numberOfIterations; $i++) {
    Write-Output "$i`: $sampleMessage"
}
Set-AutomationVariable -Name numberOfRunnings -Value ($numberOfRunnings += 1)

Contoh runbook grafis

Dalam runbook grafis, Anda dapat menambahkan aktivitas untuk cmdlet internal Get-AutomationVariable atau Set-AutomationVariable. Cukup klik kanan setiap variabel di panel Pustaka editor grafis dan pilih aktivitas yang Anda inginkan.

Add variable to canvas

Gambar berikut menunjukkan aktivitas contoh untuk memperbarui variabel dengan nilai sederhana dalam runbook grafis. Dalam contoh ini, aktivitas untuk Get-AzVM mengambil satu komputer virtual Azure dan menyimpan nama komputer ke variabel string Automation yang ada. Tidak masalah apakah tautan adalah alur atau urutan karena kode hanya mengharapkan satu objek dalam output.

Set simple variable

Langkah berikutnya