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
- Uma conta do Azure com uma subscrição ativa.
- Se não tiver uma, pode criar uma gratuitamente.
- Instale a CLI do Azure.
- Consulte as restrições de trabalhos para obter uma lista de limitações.
Configurar
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
Verifique se você está executando a versão mais recente da CLI por meio do comando upgrade.
az upgrade
Instale a versão mais recente da extensão CLI dos Aplicativos de Contêiner do Azure.
az extension add --name containerapp --upgrade
Registre os
Microsoft.App
namespaces ,Microsoft.OperationalInsights
eMicrosoft.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
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.
Crie um grupo de recursos ao utilizar o comando seguinte.
az group create \ --name "$RESOURCE_GROUP" \ --location "$LOCATION"
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.
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.
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.
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)
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)
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.