Aracılığıyla paylaş


Azure Container Apps ile iş oluşturma

Azure Container Apps işleri , sınırlı bir süre ve çıkış için yürütülen kapsayıcılı görevleri çalıştırmanıza olanak tanır. Bir işi el ile tetikleyebilir, yürütmesini zamanlayabilir veya olayları temel alarak yürütmesini tetikleyebilirsiniz.

İşler, veri işleme, makine öğrenmesi veya isteğe bağlı işleme gerektiren herhangi bir senaryo gibi görevler için en uygun olanıdır.

Bu hızlı başlangıçta, el ile veya zamanlanmış bir iş oluşturacaksınız. Olay temelli iş oluşturmayı öğrenmek için bkz . Azure Container Apps ile olay temelli iş dağıtma.

Önkoşullar

Ayarlama

  1. 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. Yükseltme komutuyla CLI'nın en son sürümünü çalıştırdığınızdan emin olun.

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

    az extension add --name containerapp --upgrade
    
  4. Microsoft.App Ve Microsoft.OperationalInsights ad alanlarını Azure aboneliğinize henüz kaydetmediyseniz kaydedin.

    az provider register --namespace Microsoft.App
    az provider register --namespace Microsoft.OperationalInsights
    
  5. Azure CLI kurulumunuz tamamlandıktan sonra bu makalenin tamamında kullanılan ortam değişkenlerini tanımlayabilirsiniz.

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

Container Apps ortamı oluşturma

Azure Container Apps ortamı, aynı ağı paylaşabilmeleri ve birbirleriyle iletişim kurabilmeleri için kapsayıcı uygulamaları ve işleri çevresinde güvenli bir 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 yapılan işleri kullanmak için, önce tetikleyici türüne Manual sahip bir iş oluşturursunuz ve sonra yürütme başlatırsınız. Aynı işin birden çok yürütmesini başlatabilirsiniz ve birden çok iş yürütmesi 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 \
        --image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \
        --cpu "0.25" --memory "0.5Gi"
    

    El ile yapılan işler otomatik olarak yürütülemez. İşin yürütülmesini başlatmanız gerekir.

  2. Aşağıdaki komutu kullanarak işin yürütülmesini başlatın.

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

    komutu, adı da dahil olmak üzere iş yürütme ayrıntılarını 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 cron ifadesine sahip bir iş oluşturursunuz.

Container Apps ortamında aşağıdaki komutu kullanarak dakikada bir başlayan bir iş oluşturun.

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 * * * *"

İş yürütmeleri zamanlamaya göre otomatik olarak başlar.

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

Son iş yürütme geçmişini listeleme

Container Apps işleri, son yürütmelerin geçmişini tutar. bir işin yürütmelerini listeleyebilirsiniz.

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

Zamanlanmış işlerin yürütmeleri, çalıştıkları sırada listede görünür.

Status     Name            StartTime
---------  --------------  -------------------------
Succeeded  my-job-jvsgub6  2023-05-08T21:21:45+00:00

Sorgu işi yürütme günlükleri

İş yürütmeleri, çıkış günlüklerini Container Apps ortamı için yapılandırdığınız günlük sağlayıcısına gönderir. Günlükler varsayılan olarak Azure 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 iş yürütmesinin adını bir değişkene kaydedin.

    JOB_EXECUTION_NAME=`az containerapp job execution list \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --query "[0].name" \
        --output tsv`
    
  3. Aşağıdaki komutu kullanarak iş yürütmesi için Log Analytics'e karşı bir sorgu çalıştırın.

    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"
    

    Not

    ContainerAppConsoleLogs_CL Tablo hazır olana kadar komut sonuç döndürmez veya şu hatayla sonuç verir: BadArgumentError: The request had some invalid properties. Birkaç dakika bekleyin ve komutu yeniden çalıştırın.

    Aşağıdaki çıkış, iş yürütme tarafından yazdırılan günlüklerin bir örneğidir.

    [
        "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!"
    ]
    

Kaynakları temizleme

Bu uygulamayı kullanmaya devam etmeyecekseniz, bu hızlı başlangıçta oluşturulan tüm kaynaklarla birlikte kaynak grubunu 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ımlar