Membuat pekerjaan dengan Azure Container Apps
Pekerjaan Azure Container Apps memungkinkan Anda menjalankan tugas kontainer yang dijalankan selama durasi dan keluar yang terbatas. Anda dapat memicu pekerjaan secara manual, menjadwalkan eksekusinya, atau memicu eksekusinya berdasarkan peristiwa.
Pekerjaan paling cocok untuk tugas-tugas seperti pemrosesan data, pembelajaran mesin, pembersihan sumber daya, atau skenario apa pun yang memerlukan pemrosesan sesuai permintaan.
Dalam mulai cepat ini, Anda membuat pekerjaan manual atau terjadwal. Untuk mempelajari cara membuat pekerjaan berbasis peristiwa, lihat Menyebarkan pekerjaan berbasis peristiwa dengan Azure Container Apps.
Prasyarat
- Akun Azure dengan langganan aktif.
- Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
- Instal Azure CLI.
- Lihat batasan pekerjaan untuk daftar batasan.
Siapkan
Untuk masuk ke Azure dari CLI, jalankan perintah berikut dan ikuti perintah untuk menyelesaikan proses autentikasi.
az login
Pastikan Anda menjalankan CLI versi terbaru melalui perintah peningkatan.
az upgrade
Instal versi terbaru ekstensi CLI Azure Container Apps.
az extension add --name containerapp --upgrade
Microsoft.App
Daftarkan namespace ,Microsoft.OperationalInsights
, danMicrosoft.Storage
jika Anda belum mendaftarkannya di langganan Azure Anda.az provider register --namespace Microsoft.App az provider register --namespace Microsoft.OperationalInsights az provider register --namespace Microsoft.Storage
Setelah penyiapan Azure CLI selesai, Anda dapat menentukan variabel lingkungan yang digunakan di seluruh artikel ini.
RESOURCE_GROUP="jobs-quickstart" LOCATION="northcentralus" ENVIRONMENT="env-jobs-quickstart" JOB_NAME="my-job"
Membuat lingkungan Aplikasi Kontainer
Lingkungan Azure Container Apps bertindak sebagai batas aman di sekitar aplikasi dan pekerjaan kontainer sehingga mereka dapat berbagi jaringan yang sama dan berkomunikasi satu sama lain.
Buat grup sumber daya menggunakan perintah berikut.
az group create \ --name "$RESOURCE_GROUP" \ --location "$LOCATION"
Buat lingkungan Container Apps menggunakan perintah berikut.
az containerapp env create \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --location "$LOCATION"
Membuat dan menjalankan pekerjaan manual
Untuk menggunakan pekerjaan manual, Anda terlebih dahulu membuat pekerjaan dengan jenis Manual
pemicu lalu memulai eksekusi. Anda dapat memulai beberapa eksekusi pekerjaan yang sama dan beberapa eksekusi pekerjaan dapat berjalan bersamaan.
Buat pekerjaan di lingkungan Container Apps menggunakan perintah berikut.
az containerapp job create \ --name "$JOB_NAME" --resource-group "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \ --trigger-type "Manual" \ --replica-timeout 1800 \ --image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \ --cpu "0.25" --memory "0.5Gi"
Pekerjaan manual tidak dijalankan secara otomatis. Anda harus memulai eksekusi pekerjaan.
Mulai eksekusi pekerjaan menggunakan perintah berikut.
az containerapp job start \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP"
Perintah mengembalikan detail eksekusi pekerjaan, termasuk namanya.
Membuat dan menjalankan pekerjaan terjadwal
Untuk menggunakan pekerjaan terjadwal, Anda membuat pekerjaan dengan jenis Schedule
pemicu dan ekspresi cron yang menentukan jadwal.
Buat pekerjaan di lingkungan Container Apps yang dimulai setiap menit menggunakan perintah berikut.
az containerapp job create \
--name "$JOB_NAME" --resource-group "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
--trigger-type "Schedule" \
--replica-timeout 1800 \
--image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \
--cpu "0.25" --memory "0.5Gi" \
--cron-expression "*/1 * * * *"
Eksekusi pekerjaan dimulai secara otomatis berdasarkan jadwal.
Pekerjaan Container Apps menggunakan ekspresi cron untuk menentukan jadwal. Ini mendukung format ekspresi cron standar dengan lima bidang untuk menit, jam, hari dalam sebulan, bulan, dan hari dalam seminggu.
Mencantumkan riwayat eksekusi pekerjaan terbaru
Pekerjaan Container Apps mempertahankan riwayat eksekusi terbaru. Anda dapat mencantumkan eksekusi pekerjaan.
az containerapp job execution list \
--name "$JOB_NAME" \
--resource-group "$RESOURCE_GROUP" \
--output table \
--query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
Eksekusi pekerjaan terjadwal muncul dalam daftar saat dijalankan.
Status Name StartTime
--------- -------------- -------------------------
Succeeded my-job-jvsgub6 2023-05-08T21:21:45+00:00
Mengkueri log eksekusi pekerjaan
Log output eksekusi pekerjaan ke penyedia pengelogan yang Anda konfigurasi untuk lingkungan Aplikasi Kontainer. Secara default, log disimpan di Azure Log Analytics.
Simpan ID ruang kerja Analitik Log untuk lingkungan Aplikasi Kontainer ke variabel.
LOG_ANALYTICS_WORKSPACE_ID=$(az containerapp env show \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --query "properties.appLogsConfiguration.logAnalyticsConfiguration.customerId" \ --output tsv)
Simpan nama eksekusi pekerjaan terbaru ke variabel.
JOB_EXECUTION_NAME=$(az containerapp job execution list \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query "[0].name" \ --output tsv)
Jalankan kueri terhadap Analitik Log untuk eksekusi pekerjaan menggunakan perintah berikut.
az monitor log-analytics query \ --workspace "$LOG_ANALYTICS_WORKSPACE_ID" \ --analytics-query "ContainerAppConsoleLogs_CL | where ContainerGroupName_s startswith '$JOB_EXECUTION_NAME' | order by _timestamp_d asc" \ --query "[].Log_s"
Catatan
ContainerAppConsoleLogs_CL
Hingga tabel siap, perintah tidak mengembalikan hasil atau dengan kesalahan:BadArgumentError: The request had some invalid properties
. Tunggu beberapa menit dan jalankan perintah lagi.Output berikut adalah contoh log yang dicetak oleh eksekusi pekerjaan.
[ "2023/04/24 18:38:28 This is a sample application that demonstrates how to use Azure Container Apps jobs", "2023/04/24 18:38:28 Starting processing...", "2023/04/24 18:38:33 Finished processing. Shutting down!" ]
Membersihkan sumber daya
Jika Anda tidak akan terus menggunakan aplikasi ini, jalankan perintah berikut untuk menghapus grup sumber daya bersama dengan semua sumber daya yang dibuat dalam mulai cepat ini.
Perhatian
Perintah berikut menghapus grup sumber daya yang ditentukan dan semua sumber daya yang terkandung di dalamnya. Jika sumber daya di luar cakupan panduan mulai cepat ini berada di grup sumber daya yang ditentukan, sumber daya tersebut juga akan dihapus.
az group delete --name "$RESOURCE_GROUP"
Tip
Mengalami masalah? Beri tahu kami di GitHub dengan membuka masalah di repositori Azure Container Apps.