Bagikan melalui


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

Siapkan

  1. Untuk masuk ke Azure dari CLI, jalankan perintah berikut dan ikuti perintah untuk menyelesaikan proses autentikasi.

    az login
    
  2. Pastikan Anda menjalankan CLI versi terbaru melalui perintah peningkatan.

    az upgrade
    
  3. Instal versi terbaru ekstensi CLI Azure Container Apps.

    az extension add --name containerapp --upgrade
    
  4. Microsoft.AppDaftarkan namespace , Microsoft.OperationalInsights, dan Microsoft.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
    
  5. 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.

  1. Buat grup sumber daya menggunakan perintah berikut.

    az group create \
        --name "$RESOURCE_GROUP" \
        --location "$LOCATION"
    
  2. 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.

  1. 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.

  2. 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.

  1. 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)
    
  2. 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)
    
  3. 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.

Langkah berikutnya