Menjalankan tugas dalam kontainer dengan kebijakan hidupkan ulang

Kemudahan dan kecepatan penyebaran kontainer di Azure Container Instances menyediakan platform yang menarik untuk menjalankan tugas jalan sekali seperti build, pengujian, dan penyajian gambar dalam instans kontainer.

Dengan kebijakan hidupkan ulang yang dapat dikonfigurasi, Anda bisa menentukan bahwa kontainer dihentikan ketika proses kontainer telah selesai. Karena instans kontainer ditagih per detik, Anda hanya dikenakan biaya untuk sumber daya komputasi yang digunakan saat kontainer yang menjalankan tugas sedang berjalan.

Contoh yang disajikan dalam artikel ini menggunakan Azure CLI. Anda harus menginstal Azure CLI versi 2.0.21 atau lebih tinggi secara lokal, atau menggunakan CLI di Azure Cloud Shell.

Kebijakan hidupkan ulang kontainer

Saat membuat grup kontainer di Azure Container Instances, Anda bisa menentukan salah satu dari tiga pengaturan kebijakan hidupkan ulang.

Kebijakan hidupkan ulang Deskripsi
Always Kontainer dalam grup kontainer selalu dihidupkan ulang. Ini adalah pengaturan default yang diterapkan ketika tidak ada kebijakan hidupkan ulang yang ditentukan pada pembuatan kontainer.
Never Kontainer dalam grup kontainer tidak pernah dihidupkan ulang. Kontainer berjalan paling banyak sekali.
OnFailure Kontainer dalam grup kontainer dihidupkan ulang hanya jika proses yang dijalankan di kontainer gagal (saat diakhiri dengan kode keluar bukan nol). Kontainer berjalan setidaknya sekali.

Catatan

Jika grup kontainer Anda dikonfigurasi dengan alamat IP, alamat IP tersebut dapat berubah saat grup kontainer dihidupkan ulang.

Menentukan kebijakan hidupkan ulang

Cara menentukan kebijakan hidupkan ulang bergantung pada cara Anda membuat instans kontainer, seperti dengan Azure CLI, cmdlet Azure PowerShell, atau di portal Microsoft Azure. Di Azure CLI, tentukan parameter --restart-policy saat Anda memanggil az container create.

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mycontainerimage \
    --restart-policy OnFailure

Contoh berjalan hingga selesai

Untuk melihat kebijakan hidupkan ulang diterapkan, buat instans kontainer dari gambar aci-wordcount Microsoft, dan tentukan kebijakan hidupkan ulang OnFailure. Contoh kontainer ini menjalankan skrip Python yang, secara default, menganalisis teks Hamlet karya Shakespeare, menulis 10 kata yang paling umum ke STDOUT, kemudian keluar.

Jalankan kontainer contoh dengan perintah az container create berikut:

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
    --restart-policy OnFailure

Azure Container Instances memulai kontainer, lalu menghentikannya saat aplikasi (atau skripnya, dalam hal ini) keluar. Saat Azure Container Instances menghentikan kontainer yang kebijakan hidupkan ulangnya adalah Never atau OnFailure, status kontainer akan diatur menjadi Dihentikan. Anda bisa memeriksa status kontainer dengan perintah az container show:

az container show \
    --resource-group myResourceGroup \
    --name mycontainer \
    --query containers[0].instanceView.currentState.state

Output contoh:

"Terminated"

Setelah status kontainer contoh memperlihatkan Dihentikan, Anda bisa melihat output tugasnya dengan menampilkan log kontainer. Jalankan perintah az container logs untuk menampilkan output skrip:

az container logs --resource-group myResourceGroup --name mycontainer

Output:

[('the', 990),
 ('and', 702),
 ('of', 628),
 ('to', 610),
 ('I', 544),
 ('you', 495),
 ('a', 453),
 ('my', 441),
 ('in', 399),
 ('HAMLET', 386)]

Contoh ini memperlihatkan output yang dikirim skrip ke STDOUT. Namun, tugas dalam kontainer Anda mungkin malah menulis outputnya ke penyimpanan persisten untuk pengambilan nanti. Misalnya, ke pembagian file Azure.

Langkah berikutnya

Skenario berbasis tugas, seperti pemrosesan batch himpunan data besar dengan beberapa kontainer, bisa memanfaatkan variabel lingkungan atau baris perintah kustom pada runtime.

Untuk detail tentang cara menjaga output kontainer Anda yang berjalan hingga selesai, lihat Memasang pembagian file Azure dengan Azure Container Instances.