Hızlı Başlangıç: Azure Container Apps'te iş oluşturma

Bu hızlı başlangıçta bir Azure Container Apps işi oluşturacaksınız. Container Apps'te görevler, belirli bir süre çalışan ve ardından sona eren kapsayıcılı işlemleri başlatmak için kullanılır. İşler, veri işleme, makine öğrenmesi, kaynak temizleme veya isteğe bağlı işleme gerektiren herhangi bir senaryo gibi görevler için en uygun olanıdır.

Bir işi el ile tetikleyebilir, çalıştırmasını zamanlayabilir veya çalıştırmasını olaylara göre tetikleyebilirsiniz. Bu rehber, el ile veya zamanlanmış bir iş oluşturmayı nasıl yapabileceğinizi göstermektedir. Olay temelli iş oluşturmayı öğrenmek için bkz. Azure Container Apps ile olay odaklı iş dağıtma.

Önkoşullar

Container Apps işlerinin desteklemediği özellikler hakkında bilgi için bkz. İşler kısıtlamaları.

Ortamı hazırlama

  1. Azure CLI'dan Azure'da oturum açmak için aşağıdaki komutu çalıştırın ve istemleri izleyerek kimlik doğrulama işlemini tamamlayın.

    az login
    
  2. Komutuyla Azure CLI'nın en son sürümünü çalıştırdığınızdan az upgrade emin olun.

    az upgrade
    
  3. Container Apps CLI uzantısının en son sürümünü yükleyin.

    az extension add --name containerapp --upgrade
    
  4. Microsoft.App, Microsoft.OperationalInsights ve Microsoft.Storage ad alanları hâlihazırda Azure aboneliğinizde kayıtlı değilse kaydedin.

    az provider register --namespace Microsoft.App
    az provider register --namespace Microsoft.OperationalInsights
    az provider register --namespace Microsoft.Storage
    
  5. Bu makale boyunca kullanılan ortam değişkenlerini tanımlayın.

    RESOURCE_GROUP="jobs-quickstart"
    LOCATION="northcentralus"
    ENVIRONMENT="env-jobs-quickstart"
    JOB_NAME="my-job"
    

Container Apps ortamı oluşturma

Container Apps ortamı, kapsayıcı uygulamalar ve işler için aynı ağı paylaşabilmeleri ve birbirleriyle iletişim kurabilmeleri amacıyla bir izolasyon sınırı işlevi görür.

  1. Aşağıdaki komutu kullanarak bir kaynak grubu oluşturun.

    az group create \
        --name "$RESOURCE_GROUP" \
        --location "$LOCATION"
    
  2. Aşağıdaki komutu kullanarak Container Apps ortamını oluşturun.

    az containerapp env create \
        --name "$ENVIRONMENT" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION"
    

El ile iş oluşturma ve çalıştırma

El ile işleri kullanmak için önce tetikleyici türü Manual olan bir iş oluşturur ve ardından çalıştırmayı başlatırsınız. Aynı işin birden çok çalıştırmasını başlatabilirsiniz ve birden çok iş işlemi eşzamanlı olarak çalıştırılabilir.

  1. Aşağıdaki komutu kullanarak Container Apps ortamında bir iş oluşturun.

    az containerapp job create \
        --name "$JOB_NAME" --resource-group "$RESOURCE_GROUP"  --environment "$ENVIRONMENT" \
        --trigger-type "Manual" \
        --replica-timeout 1800 \
        --replica-retry-limit 1 \
        --image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \
        --cpu "0.25" --memory "0.5Gi"
    

    El ile yapılan işler otomatik olarak çalışmaz. Her işi başlatmanız gerekir.

  2. Aşağıdaki komutu kullanarak işi başlatın.

    az containerapp job start \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP"
    

    Komut, iş hakkında adını da içeren ayrıntılı bilgiler döndürür.

Zamanlanmış iş oluşturma ve çalıştırma

Zamanlanmış işleri kullanmak için tetikleyici türüne Schedule ve zamanlamayı tanımlayan bir ifadeye sahip bir cron iş oluşturursunuz.

Dakikada bir başlayan bir Container Apps işi oluşturmak için aşağıdaki komutu kullanın.

az containerapp job create \
    --name "$JOB_NAME" --resource-group "$RESOURCE_GROUP"  --environment "$ENVIRONMENT" \
    --trigger-type "Schedule" \
    --replica-timeout 1800 \
    --replica-retry-limit 1 \
    --image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \
    --cpu "0.25" --memory "0.5Gi" \
    --cron-expression "*/1 * * * *"

Görev çalışmaları zamanlamaya göre otomatik olarak başlar.

Container Apps işleri, zamanlamaları tanımlamak için cron ifadelerini kullanır. İşler, dakika, saat, ayın günü, ay ve haftanın günü alanlarını içeren standart cron ifade biçimini destekler.

Son iş çalıştırma geçmişini listeleme

Container Apps işleri, son çalıştırmaların geçmişini tutar. Bir işin koşumlarını listeleyebilirsiniz.

az containerapp job execution list \
    --name "$JOB_NAME" \
    --resource-group "$RESOURCE_GROUP" \
    --output table \
    --query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'

İşler çalıştıkça listede görünür.

Status     Name            StartTime
---------  --------------  -------------------------
Succeeded  my-job-jvsgub6  2025-11-17T21:21:45+00:00

Sorgu işi çalıştırma günlükleri

Container Apps ortamı için yapılandırdığınız günlük sağlayıcısına iş çıktısı günlükleri yazar. Günlükler varsayılan olarak Log Analytics'te depolanır.

  1. Container Apps ortamı için Log Analytics çalışma alanı kimliğini bir değişkene kaydedin.

    LOG_ANALYTICS_WORKSPACE_ID=$(az containerapp env show \
        --name "$ENVIRONMENT" \
        --resource-group "$RESOURCE_GROUP" \
        --query "properties.appLogsConfiguration.logAnalyticsConfiguration.customerId" \
        --output tsv)
    
  2. En son çalıştırılan işin adını bir değişkene kaydedin.

    JOB_RUN_NAME=$(az containerapp job execution list \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --query "[0].name" \
        --output tsv)
    
  3. Aşağıdaki komutu kullanarak çalıştırılan iş için bir Log Analytics sorgusu çalıştırın.

    az monitor log-analytics query \
        --workspace "$LOG_ANALYTICS_WORKSPACE_ID" \
        --analytics-query "ContainerAppConsoleLogs_CL | where ContainerGroupName_s startswith '$JOB_RUN_NAME' | order by _timestamp_d asc" \
        --query "[].Log_s"
    

    Not

    ContainerAppConsoleLogs_CL tablosu hazır olana kadar komut hiçbir sonuç döndürmez veya şu hatayı döndürür: "BadArgumentError: İsteğin bazı geçersiz özellikleri vardı." Her iki durumda da, birkaç dakika bekleyin ve komutu yeniden çalıştırın.

    Aşağıdaki çıkış, işin çalıştırılması sırasında yazdırılan günlüklerin bir örneğidir.

    [
        "2025/11/17 18:38:28 This is a sample application that demonstrates how to use Azure Container Apps jobs",
        "2025/11/17 18:38:28 Starting processing...",
        "2025/11/17 18:38:33 Finished processing. Shutting down!"
    ]
    

Kaynakları temizleme

Bu işi kullanmaya devam etmeyecekseniz, bu hızlı başlangıçtan kaynak grubunu ve tüm kaynakları silmek için aşağıdaki komutu çalıştırın.

Dikkat

Aşağıdaki komut, belirtilen kaynak grubunu ve içindeki tüm kaynakları siler. Bu hızlı başlangıcın kapsamı dışındaki kaynaklar belirtilen kaynak grubunda varsa, bunlar da silinir.

az group delete --name "$RESOURCE_GROUP"

İpucu

Sorun mu yaşıyorsunuz? Azure Container Apps deposunda bir sorun açarak GitHub'da bize bildirin.

Sonraki adım