Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tutorial ini memandu Anda melalui pembuatan runbook Python 3.8 di Azure Automation. Runbook Python dikompilasi di bawah Python 2.7 dan 3.8 Anda dapat langsung mengedit kode runbook menggunakan editor teks di portal Microsoft Azure.
- Membuat runbook Python sederhana
- Menguji dan menerbitkan runbook
- Menjalankan dan memantau status tugas runbook
- Perbarui runbook untuk memulai mesin virtual Azure dengan parameter runbook
Prasyarat
Untuk menyelesaikan tutorial ini, Anda memerlukan:
Sebuah langganan Azure. Jika Anda belum memilikinya, Anda dapat mengaktifkan manfaat pelanggan MSDN Anda atau mendaftar untuk akun gratis.
Akun Automation yang digunakan untuk menyimpan runbook dan mengotentikasi ke sumber daya Azure menggunakan Identitas Terkelola. Identitas terkelola secara otomatis dibuat untuk Anda saat Anda membuat akun Automation.
Komputer virtual Azure. Selama tutorial ini, Anda akan memulai dan menghentikan mesin ini, jadi seharusnya bukan VM produksi.
Membuat runbook baru
Anda mulai dengan membuat runbook sederhana yang menghasilkan teks Hello World.
Di portal Microsoft Azure, buka akun Automation Anda.
Halaman akun Automation memberi Anda tampilan cepat sumber daya di akun ini. Anda harus sudah memiliki beberapa aset. Sebagian besar aset tersebut adalah modul yang secara otomatis disertakan dalam akun Automation baru.
Anda juga harus mengaktifkan identitas terkelola yang disebutkan dalam prasyarat. Anda dapat memverifikasinya dengan melihat sumber daya Identitas di bawah Pengaturan Akun.
Pilih Runbooks pada Otomatisasi Proses untuk membuka daftar runbook.
Pilih Buat runbook untuk membuat runbook baru.
Beri nama runbook MyFirstRunbook-Python.
Pilih Python untuk jenis Runbook.
Pilih Python 3.8 untuk versi Runtime.
Pilih Buat untuk membuat runbook dan membuka editor tekstual.
Tambahkan kode ke runbook
Sekarang Anda menambahkan perintah sederhana untuk mencetak teks Hello World.
print("Hello World!")
Pilih Simpan untuk menyimpan runbook.
Menguji runbook
Sebelum Anda mempublikasikan runbook untuk membuatnya tersedia dalam lingkungan produksi, Anda ingin menguji runbook tersebut untuk memastikan bahwa runbook berfungsi dengan baik. Saat menguji runbook, Anda menjalankan versi draf dari runbook tersebut dan melihat outputnya secara interaktif.
Pilih panel Uji untuk membuka panel Uji .
Pilih Mulai untuk memulai pengujian. Opsi ini harus menjadi satu-satunya opsi yang diaktifkan.
Job runbook dibuat dan statusnya ditampilkan. Status pekerjaan dimulai sebagai Antrean, menunjukkan bahwa ia menunggu pekerja runbook di cloud tersedia. Ini berubah menjadi Mulai ketika pekerja mengambil tugas, lalu Menjalankan ketika runbook benar-benar mulai dijalankan.
Ketika pekerjaan runbook selesai, outputnya ditampilkan. Dalam hal ini, Anda akan melihat
Hello World.Tutup panel Uji untuk kembali ke kanvas.
Menerbitkan dan menjalankan runbook
Runbook yang Anda buat masih dalam mode draf. Anda perlu menerbitkannya sebelum dapat menjalankannya dalam produksi. Saat menerbitkan runbook, Anda menimpa versi diterbitkan yang sudah ada dengan versi draf. Dalam hal ini, Anda belum memiliki versi yang diterbitkan karena Anda baru saja menyusun runbook.
Pilih Terbitkan untuk menerbitkan runbook lalu Ya saat diminta.
Jika Anda menutup panel MyFirstRunbook_python , Anda akan kembali ke halaman Runbook tempat Anda akan melihat Status PenulisanDiterbitkan.
Pilih nama MyFirstRunbook-Python dalam daftar, Anda akan kembali ke panel MyFirstRunbook-Python .
Opsi di bagian atas memungkinkan Anda untuk memulai buku panduan operasional, melihat buku panduan operasional, mengedit buku panduan operasional, dan menjadwalkannya untuk dimulai pada waktu tertentu di masa depan, serta tindakan lainnya.
Pilih Mulai lalu pilih OK saat panel Mulai Runbook terbuka.
Panel Tugas dibuka untuk tugas runbook yang Anda buat. Anda dapat menutup panel ini, tetapi biarkan tetap terbuka, sehingga Anda dapat melihat kemajuan pekerjaan.
Status pekerjaan ditampilkan di bidang Status di bawah Esensial. Nilai di sini sesuai dengan nilai status ketika Anda menguji runbook.
Setelah status runbook menunjukkan Selesai, pilih tab Output . Di tab Output , Anda dapat melihat
Hello World.Tutup tab Output.
Pilih tab Semua Log untuk melihat aliran untuk pekerjaan runbook. Anda hanya akan melihat
Hello Worlddi aliran output. Namun, tab ini dapat menampilkan aliran lain untuk tugas runbook, seperti Verbose dan Error, jika runbook menulis ke aliran tersebut.Tutup panel Pekerjaan untuk kembali ke panel MyFirstRunbook-Python .
Pilih Sumber daya Pekerjaan untuk membuka halaman sumber daya Pekerjaan untuk runbook ini. Halaman ini mencantumkan semua pekerjaan yang dibuat oleh runbook ini. Anda seharusnya hanya melihat satu tugas tercantum karena Anda hanya menjalankan tugas tersebut sekali.
Anda dapat memilih pekerjaan ini untuk membuka panel Pekerjaan yang sama dengan yang Anda lihat saat memulai runbook. Panel ini memungkinkan Anda untuk kembali ke masa lalu dan melihat detail pekerjaan apa pun yang dibuat untuk runbook tertentu.
Menambahkan autentikasi untuk mengelola sumber daya Azure
Anda telah menguji dan menerbitkan runbook Anda, tetapi sejauh ini tidak melakukan apa pun yang berguna. Anda ingin membuatnya mengelola sumber daya Azure. Untuk mengelola sumber daya, skrip harus mengautentikasi.
Cara yang disarankan untuk mengautentikasi adalah dengan identitas terkelola. Saat Anda membuat Akun Azure Automation, identitas terkelola secara otomatis dibuat untuk Anda.
Untuk menggunakan sampel ini, tambahkan paket berikut di sumber daya Paket Python dari Akun Automation. Anda dapat menambahkan file WHL untuk paket ini dengan tautan ini.
Saat Anda menambahkan paket ini, pilih versi runtime yang cocok dengan runbook Anda.
Nota
Kode berikut diuji dengan runtime versi 3.8.
Identitas yang dikelola
Untuk menggunakan identitas terkelola, pastikan identitas tersebut diaktifkan:
- Untuk memverifikasi apakah Identitas Terkelola diaktifkan untuk Akun Automation, buka Akun Automation>Pengaturan Akun>Identitas dan atur Status ke Aktif.
- Identitas terkelola memiliki peran yang ditetapkan untuk mengelola sumber daya. Dalam contoh pengelolaan sumber daya komputer virtual ini, tambahkan peran "Kontributor Komputer Virtual" pada grup sumber daya yang berisi Komputer Virtual. Untuk informasi selengkapnya, lihat Menetapkan peran Azure menggunakan portal Microsoft Azure
Dengan peran pengelolaan identitas yang dikonfigurasi, Anda dapat mulai menambahkan kode.
Buka editor tekstual dengan memilih Edit di panel MyFirstRunbook-Python .
Tambahkan kode berikut untuk mengautentikasi ke Azure:
#!/usr/bin/env python3
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient
SUBSCRIPTION_ID="YOUR_SUBSCRIPTION_ID"
azure_credential = DefaultAzureCredential()
import os
import requests
# printing environment variables
endpoint = os.getenv('IDENTITY_ENDPOINT')+"?resource=https://management.azure.com/"
identityHeader = os.getenv('IDENTITY_HEADER')
payload={}
headers = {
'X-IDENTITY-HEADER' : identityHeader,
'Metadata' : True
}
response = requests.get(endpoint, headers)
print(response.text)
Menambahkan kode untuk membuat klien Python Compute dan memulai VM
Untuk bekerja dengan Azure VM, buat instans klien Azure Compute untuk Python.
# Initialize client with the credential and subscription.
compute_client = ComputeManagementClient(
azure_credential,
SUBSCRIPTION_ID
)
print('\nStart VM')
async_vm_start = compute_client.virtual_machines.begin_start(
"MyResourceGroup", "TestVM")
async_vm_start.wait()
print('\nFinished start.')
Di mana MyResourceGroup adalah nama grup sumber daya yang berisi VM, dan TestVM merupakan nama VM yang ingin Anda mulai.
Uji dan jalankan runbook sekali lagi untuk memastikan bahwa runbook tersebut memulai VM.
Menggunakan parameter input
Runbook saat ini menggunakan nilai yang dikodekan secara permanen untuk nama grup sumber daya dan VM. Sekarang mari kita tambahkan kode yang mendapatkan nilai-nilai ini dari parameter input.
Anda menggunakan sys.argv variabel untuk mendapatkan nilai parameter. Tambahkan kode berikut ke runbook segera setelah pernyataan "import" yang lainnya.
import sys
resource_group_name = str(sys.argv[1])
vm_name = str(sys.argv[2])
Kode ini mengimpor sys modul, dan membuat dua variabel untuk menyimpan grup sumber daya dan nama VM. Perhatikan bahwa elemen daftar argumen, sys.argv[0], adalah nama skrip, dan tidak dimasukkan oleh pengguna.
Sekarang Anda dapat memodifikasi dua baris terakhir runbook untuk menggunakan nilai parameter input alih-alih menggunakan nilai yang dikodekan secara permanen:
async_vm_start = compute_client.virtual_machines.begin_start(
resource_group_name, vm_name)
async_vm_start.wait()
Saat Anda memulai runbook Python, baik dari panel Uji atau sebagai runbook yang diterbitkan, Anda dapat memasukkan nilai untuk parameter di halaman Mulai Runbook di bawah Parameter.
Setelah Anda mulai memasukkan nilai di kotak pertama, yang kedua muncul, dan seterusnya, sehingga Anda dapat memasukkan nilai parameter sebanyak yang diperlukan.
Nilai tersedia untuk skrip dalam sys.argv array seperti dalam kode yang baru saja Anda tambahkan.
Masukkan nama grup resource Anda sebagai nilai untuk parameter pertama, dan nama VM yang ingin Anda mulai sebagai nilai parameter kedua.
Pilih OK untuk memulai runbook. Runbook dijalankan dan memulai VM yang telah Anda tentukan.
Penanganan kesalahan di Python
Anda juga dapat menggunakan konvensi berikut untuk mengambil berbagai aliran dari runbook Python Anda, termasuk aliran PERINGATAN, KESALAHAN, dan DEBUG.
print("Hello World output")
print("ERROR: - Hello world error")
print("WARNING: - Hello world warning")
print("DEBUG: - Hello world debug")
print("VERBOSE: - Hello world verbose")
Contoh berikut menunjukkan konvensi ini yang digunakan dalam try...except blok.
try:
raise Exception('one', 'two')
except Exception as detail:
print ('ERROR: Handling run-time error:', detail)
Langkah selanjutnya
Untuk informasi lebih lanjut tentang jenis runbook, kelebihan, dan kelemahannya, lihat Jenis runbook Azure Automation.
Untuk mempelajari tentang pengembangan untuk Azure dengan Python, lihat Azure untuk pengembang Python.
Untuk melihat contoh runbook Python 3, lihat repositori GitHub Azure Automation .