Sdílet prostřednictvím


Vytvoření úlohy pomocí Azure Container Apps

Úlohy Azure Container Apps umožňují spouštět kontejnerizované úlohy, které se spouštějí po omezenou dobu trvání a ukončení. Úlohu můžete aktivovat ručně, naplánovat její spuštění nebo spustit na základě událostí.

Úlohy jsou nejvhodnější pro úlohy, jako je zpracování dat, strojové učení, vyčištění prostředků nebo jakýkoli scénář, který vyžaduje zpracování na vyžádání.

V tomto rychlém startu vytvoříte ruční nebo naplánovanou úlohu. Informace o vytvoření úlohy řízené událostmi najdete v tématu Nasazení úlohy řízené událostmi pomocí Azure Container Apps.

Požadavky

Nastavení

  1. Pokud se chcete přihlásit k Azure z rozhraní příkazového řádku, spusťte následující příkaz a podle pokynů dokončete proces ověřování.

    az login
    
  2. Pomocí příkazu upgrade se ujistěte, že používáte nejnovější verzi rozhraní příkazového řádku.

    az upgrade
    
  3. Nainstalujte nejnovější verzi rozšíření Azure Container Apps CLI.

    az extension add --name containerapp --upgrade
    
  4. Microsoft.AppZaregistrujte , Microsoft.OperationalInsightsa Microsoft.Storage obory názvů, pokud jste je ještě nezaregistrovali ve svém předplatném Azure.

    az provider register --namespace Microsoft.App
    az provider register --namespace Microsoft.OperationalInsights
    az provider register --namespace Microsoft.Storage
    
  5. Po dokončení nastavení Azure CLI můžete definovat proměnné prostředí, které se používají v tomto článku.

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

Vytvoření prostředí Container Apps

Prostředí Azure Container Apps funguje jako zabezpečená hranice pro kontejnerové aplikace a úlohy, aby mohly sdílet stejnou síť a komunikovat mezi sebou.

  1. Vytvořte skupinu prostředků pomocí následujícího příkazu.

    az group create \
        --name "$RESOURCE_GROUP" \
        --location "$LOCATION"
    
  2. Pomocí následujícího příkazu vytvořte prostředí Container Apps.

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

Vytvoření a spuštění ruční úlohy

Pokud chcete použít ruční úlohy, nejprve vytvoříte úlohu s typem Manual triggeru a pak spustíte spuštění. Můžete spustit více spuštění stejné úlohy a souběžné spuštění více úloh.

  1. Pomocí následujícího příkazu vytvořte úlohu v prostředí Container Apps.

    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"
    

    Ruční úlohy se nespouštějí automaticky. Musíte spustit spuštění úlohy.

  2. Spuštění úlohy spustíte pomocí následujícího příkazu.

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

    Příkaz vrátí podrobnosti o spuštění úlohy, včetně jejího názvu.

Vytvoření a spuštění naplánované úlohy

Pokud chcete použít naplánované úlohy, vytvoříte úlohu s typem Schedule triggeru a výrazem cron, který definuje plán.

Vytvořte úlohu v prostředí Container Apps, která se spustí každou minutu pomocí následujícího příkazu.

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

Spouštění úloh se spouští automaticky podle plánu.

Úlohy Container Apps používají k definování plánů výrazy cron. Podporuje standardní formát výrazu cron s pěti poli pro minutu, hodinu, den v měsíci, měsíci a den v týdnu.

Výpis historie nedávného spuštění úlohy

Úlohy Container Apps udržují historii posledních spuštění. Můžete zobrazit seznam spuštění úlohy.

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

Spuštění naplánovaných úloh se zobrazí v seznamu při jejich spuštění.

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

Dotazování protokolů spouštění úloh

Úloha spustí výstupní protokoly do zprostředkovatele protokolování, který jste nakonfigurovali pro prostředí Container Apps. Ve výchozím nastavení se protokoly ukládají ve službě Azure Log Analytics.

  1. Uložte ID pracovního prostoru služby Log Analytics pro prostředí Container Apps do proměnné.

    LOG_ANALYTICS_WORKSPACE_ID=$(az containerapp env show \
        --name "$ENVIRONMENT" \
        --resource-group "$RESOURCE_GROUP" \
        --query "properties.appLogsConfiguration.logAnalyticsConfiguration.customerId" \
        --output tsv)
    
  2. Uložte název posledního spuštění úlohy do proměnné.

    JOB_EXECUTION_NAME=$(az containerapp job execution list \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --query "[0].name" \
        --output tsv)
    
  3. Pomocí následujícího příkazu spusťte dotaz na Log Analytics pro provádění úlohy.

    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"
    

    Poznámka:

    ContainerAppConsoleLogs_CL Dokud nebude tabulka připravená, příkaz nevrátí žádné výsledky nebo s chybou: BadArgumentError: The request had some invalid properties. Počkejte několik minut a spusťte příkaz znovu.

    Následující výstup je příkladem protokolů vytištěných spuštěním úlohy.

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

Vyčištění prostředků

Pokud tuto aplikaci nebudete dál používat, spuštěním následujícího příkazu odstraňte skupinu prostředků spolu se všemi prostředky vytvořenými v tomto rychlém startu.

Upozornění

Následující příkaz odstraní zadanou skupinu prostředků a všechny prostředky obsažené v ní. Pokud prostředky mimo rozsah tohoto rychlého startu existují v zadané skupině prostředků, odstraní se také.

az group delete --name "$RESOURCE_GROUP"

Tip

Máte problémy? Dejte nám vědět na GitHubu otevřením problému v úložišti Azure Container Apps.

Další kroky