Dela via


Skapa ett jobb med Azure Container Apps

Med Azure Container Apps-jobb kan du köra containerbaserade uppgifter som körs under en begränsad tid och avslutas. Du kan utlösa ett jobb manuellt, schemalägga deras körning eller utlösa körningen baserat på händelser.

Jobb passar bäst för uppgifter som databearbetning, maskininlärning, resursrensning eller alla scenarier som kräver bearbetning på begäran.

I den här snabbstarten skapar du ett manuellt eller schemalagt jobb. Information om hur du skapar ett händelsedrivet jobb finns i Distribuera ett händelsedrivet jobb med Azure Container Apps.

Förutsättningar

Ställ in

  1. Om du vill logga in på Azure från CLI kör du följande kommando och följer anvisningarna för att slutföra autentiseringsprocessen.

    az login
    
  2. Kontrollera att du kör den senaste versionen av CLI via uppgraderingskommandot.

    az upgrade
    
  3. Installera den senaste versionen av Azure Container Apps CLI-tillägget.

    az extension add --name containerapp --upgrade
    
  4. Registrera namnrymderna Microsoft.App och Microsoft.OperationalInsights om du inte redan har registrerat dem i din Azure-prenumeration.

    az provider register --namespace Microsoft.App
    az provider register --namespace Microsoft.OperationalInsights
    
  5. Nu när azure CLI-installationen är klar kan du definiera de miljövariabler som används i hela den här artikeln.

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

Skapa en Container Apps-miljö

Azure Container Apps-miljön fungerar som en säker gräns för containerappar och jobb så att de kan dela samma nätverk och kommunicera med varandra.

  1. Använd följande kommando för att skapa en resursgrupp.

    az group create \
        --name "$RESOURCE_GROUP" \
        --location "$LOCATION"
    
  2. Skapa Container Apps-miljön med hjälp av följande kommando.

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

Skapa och köra ett manuellt jobb

Om du vill använda manuella jobb skapar du först ett jobb med utlösartyp Manual och startar sedan en körning. Du kan starta flera körningar av samma jobb och flera jobbkörningar kan köras samtidigt.

  1. Skapa ett jobb i Container Apps-miljön med hjälp av följande kommando.

    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"
    

    Manuella jobb körs inte automatiskt. Du måste starta en körning av jobbet.

  2. Starta en körning av jobbet med hjälp av följande kommando.

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

    Kommandot returnerar information om jobbkörningen, inklusive dess namn.

Skapa och köra ett schemalagt jobb

Om du vill använda schemalagda jobb skapar du ett jobb med utlösartyp Schedule och ett cron-uttryck som definierar schemat.

Skapa ett jobb i Container Apps-miljön som startar varje minut med hjälp av följande kommando.

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

Jobbkörningar startas automatiskt baserat på schemat.

Container Apps-jobb använder cron-uttryck för att definiera scheman. Det stöder standarduttrycksformatet cron med fem fält för minut, timme, dag i månaden, månad och veckodag.

Visa en lista över senaste jobbkörningshistorik

Container Apps-jobb har en historik över de senaste körningarna. Du kan visa en lista över körningar av ett jobb.

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

Körningar av schemalagda jobb visas i listan när de körs.

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

Köra frågor mot jobbkörningsloggar

Jobbkörningar matar ut loggar till loggningsprovidern som du har konfigurerat för Container Apps-miljön. Som standard lagras loggar i Azure Log Analytics.

  1. Spara Log Analytics-arbetsytans ID för Container Apps-miljön till en variabel.

    LOG_ANALYTICS_WORKSPACE_ID=$(az containerapp env show \
        --name "$ENVIRONMENT" \
        --resource-group "$RESOURCE_GROUP" \
        --query "properties.appLogsConfiguration.logAnalyticsConfiguration.customerId" \
        --output tsv)
    
  2. Spara namnet på den senaste jobbkörningen i en variabel.

    JOB_EXECUTION_NAME=$(az containerapp job execution list \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --query "[0].name" \
        --output tsv)
    
  3. Kör en fråga mot Log Analytics för jobbkörningen med hjälp av följande kommando.

    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"
    

    Kommentar

    Tills tabellen ContainerAppConsoleLogs_CL är klar returnerar kommandot inga resultat eller med ett fel: BadArgumentError: The request had some invalid properties. Vänta några minuter och kör kommandot igen.

    Följande utdata är ett exempel på loggarna som skrivs ut av jobbkörningen.

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

Rensa resurser

Om du inte fortsätter att använda det här programmet kör du följande kommando för att ta bort resursgruppen tillsammans med alla resurser som skapats i den här snabbstarten.

Varning

Följande kommando tar bort den angivna resursgruppen och alla resurser som ingår i den. Om det finns resurser utanför omfånget för den här snabbstarten i den angivna resursgruppen tas de också bort.

az group delete --name "$RESOURCE_GROUP"

Dricks

Har du problem? Meddela oss på GitHub genom att öppna ett problem i Azure Container Apps-lagringsplatsen.

Nästa steg