Partilhar via


Criar um trabalho com Aplicativos de Contêiner do Azure

Os trabalhos das Aplicações de Contentor do Azure permitem-lhe executar tarefas em contentores que são executadas durante uma duração finita e saem. Você pode acionar um trabalho manualmente, agendar sua execução ou acionar sua execução com base em eventos.

Os trabalhos são mais adequados para tarefas como processamento de dados, aprendizado de máquina, limpeza de recursos ou qualquer cenário que exija processamento sob demanda.

Neste início rápido, você cria um trabalho manual ou agendado. Para saber como criar um trabalho controlado por eventos, consulte Implantar um trabalho controlado por eventos com os Aplicativos de Contêiner do Azure.

Pré-requisitos

Configurar

  1. Para entrar no Azure a partir da CLI, execute o seguinte comando e siga os prompts para concluir o processo de autenticação.

    az login
    
  2. Verifique se você está executando a versão mais recente da CLI por meio do comando upgrade.

    az upgrade
    
  3. Instale a versão mais recente da extensão CLI dos Aplicativos de Contêiner do Azure.

    az extension add --name containerapp --upgrade
    
  4. Registre os Microsoft.Appnamespaces , Microsoft.OperationalInsightse Microsoft.Storage se ainda não os tiver registrado em sua assinatura do Azure.

    az provider register --namespace Microsoft.App
    az provider register --namespace Microsoft.OperationalInsights
    az provider register --namespace Microsoft.Storage
    
  5. Agora que a configuração da CLI do Azure está concluída, você pode definir as variáveis de ambiente usadas ao longo deste artigo.

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

Criar um ambiente de aplicativos de contêiner

O ambiente de Aplicativos de Contêiner do Azure atua como um limite seguro em torno de aplicativos e trabalhos de contêiner para que eles possam compartilhar a mesma rede e se comunicar uns com os outros.

  1. Crie um grupo de recursos ao utilizar o comando seguinte.

    az group create \
        --name "$RESOURCE_GROUP" \
        --location "$LOCATION"
    
  2. Crie o ambiente Container Apps usando o comando a seguir.

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

Criar e executar um trabalho manual

Para usar trabalhos manuais, primeiro crie um trabalho com o tipo Manual de gatilho e, em seguida, inicie uma execução. Você pode iniciar várias execuções do mesmo trabalho e várias execuções de trabalho podem ser executadas simultaneamente.

  1. Crie um trabalho no ambiente Container Apps usando o comando a seguir.

    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"
    

    Os trabalhos manuais não são executados automaticamente. Você deve iniciar uma execução do trabalho.

  2. Inicie uma execução do trabalho usando o seguinte comando.

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

    O comando retorna detalhes da execução do trabalho, incluindo seu nome.

Criar e executar um trabalho agendado

Para usar trabalhos agendados, crie um trabalho com o tipo Schedule de gatilho e uma expressão cron que define a agenda.

Crie um trabalho no ambiente Container Apps que inicia a cada minuto usando o comando a seguir.

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

As execuções de trabalho são iniciadas automaticamente com base no cronograma.

Os trabalhos de aplicativos de contêiner usam expressões cron para definir agendas. Ele suporta o formato de expressão cron padrão com cinco campos para minuto, hora, dia do mês, mês e dia da semana.

Listar histórico de execução de trabalhos recentes

Os trabalhos de Aplicativos de Contêiner mantêm um histórico de execuções recentes. Você pode listar as execuções de um trabalho.

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

As execuções de trabalhos agendados aparecem na lista à medida que são executadas.

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

Consultar logs de execução de tarefas

As execuções de trabalho geram logs de saída para o provedor de log que você configurou para o ambiente de Aplicativos de Contêiner. Por padrão, os logs são armazenados no Azure Log Analytics.

  1. Salve o ID do espaço de trabalho do Log Analytics para o ambiente Container Apps em uma variável.

    LOG_ANALYTICS_WORKSPACE_ID=$(az containerapp env show \
        --name "$ENVIRONMENT" \
        --resource-group "$RESOURCE_GROUP" \
        --query "properties.appLogsConfiguration.logAnalyticsConfiguration.customerId" \
        --output tsv)
    
  2. Salve o nome da execução de trabalho mais recente em uma variável.

    JOB_EXECUTION_NAME=$(az containerapp job execution list \
        --name "$JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --query "[0].name" \
        --output tsv)
    
  3. Execute uma consulta no Log Analytics para a execução do trabalho usando o comando a seguir.

    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"
    

    Nota

    Até que a ContainerAppConsoleLogs_CL tabela esteja pronta, o comando não retorna nenhum resultado ou com um erro: BadArgumentError: The request had some invalid properties. Aguarde alguns minutos e execute o comando novamente.

    A saída a seguir é um exemplo dos logs impressos pela execução do trabalho.

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

Clean up resources (Limpar recursos)

Se você não vai continuar a usar este aplicativo, execute o seguinte comando para excluir o grupo de recursos junto com todos os recursos criados neste início rápido.

Atenção

O comando a seguir exclui o grupo de recursos especificado e todos os recursos contidos nele. Se existirem recursos fora do escopo deste início rápido no grupo de recursos especificado, eles também serão excluídos.

az group delete --name "$RESOURCE_GROUP"

Gorjeta

Tem problemas? Informe-nos no GitHub abrindo um problema no repositório de Aplicativos de Contêiner do Azure.

Próximos passos