Share via


Tutorial: Implantar executores e agentes de CI/CD auto-hospedados com trabalhos de Aplicativos de Contêiner do Azure

As Ações do GitHub e os Pipelines do Azure permitem executar fluxos de trabalho de CI/CD com corredores e agentes auto-hospedados. Você pode executar corredores e agentes auto-hospedados usando trabalhos de Aplicativos de Contêiner do Azure orientados a eventos.

Os runners auto-hospedados são úteis quando você precisa executar fluxos de trabalho que exigem acesso a recursos ou ferramentas locais que não estão disponíveis para um runner hospedado na nuvem. Por exemplo, um corredor auto-hospedado em um trabalho de Aplicativos de Contêiner permite que seu fluxo de trabalho acesse recursos dentro da rede virtual do trabalho que não estão acessíveis a um corredor hospedado na nuvem.

A execução de corredores auto-hospedados como trabalhos orientados a eventos permite que você aproveite a natureza sem servidor dos Aplicativos de Contêiner do Azure. Os trabalhos são executados automaticamente quando um fluxo de trabalho é acionado e saem quando o trabalho é concluído.

Você paga apenas pelo tempo que o trabalho está em execução.

Neste tutorial, você aprenderá a executar executores de Ações do GitHub como um trabalho de Aplicativos de Contêiner orientado a eventos.

  • Crie um ambiente de Aplicativos de Contêiner para implantar seu corredor auto-hospedado
  • Criar um repositório GitHub para executar um fluxo de trabalho que usa um corredor auto-hospedado
  • Criar uma imagem de contêiner que execute um corredor de ações do GitHub
  • Implantar o runner como um trabalho no ambiente de Aplicativos de Contêiner
  • Crie um fluxo de trabalho que use o corredor auto-hospedado e verifique se ele é executado

Importante

Os corredores auto-hospedados são recomendados apenas para repositórios privados . Usá-los com repositórios públicos pode permitir que códigos perigosos sejam executados em seu corredor auto-hospedado. Para obter mais informações, consulte Segurança do corredor auto-hospedado.

Neste tutorial, você aprenderá a executar agentes do Azure Pipelines como um trabalho de Aplicativos de Contêiner controlado por eventos.

  • Crie um ambiente de Aplicativos de Contêiner para implantar seu agente auto-hospedado
  • Criar uma organização e um projeto do Azure DevOps
  • Criar uma imagem de contêiner que executa um agente do Azure Pipelines
  • Usar um trabalho manual para criar um agente de espaço reservado no ambiente de Aplicativos de Contêiner
  • Implantar o agente como um trabalho no ambiente de Aplicativos de Contêiner
  • Crie um pipeline que use o agente auto-hospedado e verifique se ele é executado

Importante

Agentes auto-hospedados são recomendados apenas para projetos privados . Usá-los com projetos públicos pode permitir que códigos perigosos sejam executados em seu agente auto-hospedado. Para obter mais informações, consulte Segurança do agente auto-hospedado.

Nota

Aplicativos e trabalhos de contêiner não suportam a execução do Docker em contêineres. Todas as etapas em seus fluxos de trabalho que usam comandos do Docker falharão quando executadas em um corredor ou agente auto-hospedado em um trabalho de Aplicativos de Contêiner.

Pré-requisitos

  • Organização de DevOps do Azure: se você não tiver uma organização de DevOps com uma assinatura ativa, poderá criar uma gratuitamente.

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

Para garantir que você esteja executando a versão mais recente da CLI, execute o comando upgrade.

az upgrade

Em seguida, instale ou atualize a extensão Aplicativos de Contêiner do Azure para a CLI.

az extension add --name containerapp --upgrade

Agora que a extensão ou módulo atual está instalado, registre os Microsoft.App namespaces e Microsoft.OperationalInsights .

Nota

Os recursos dos Aplicativos de Contêiner do Azure migraram do Microsoft.Web namespace para o Microsoft.App namespace. Consulte Migração de namespace de Microsoft.Web para Microsoft.App em março de 2022 para obter mais detalhes.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Criar variáveis de ambiente

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-sample"
LOCATION="northcentralus"
ENVIRONMENT="env-jobs-sample"
JOB_NAME="github-actions-runner-job"
RESOURCE_GROUP="jobs-sample"
LOCATION="northcentralus"
ENVIRONMENT="env-jobs-sample"
JOB_NAME="azure-pipelines-agent-job"
PLACEHOLDER_JOB_NAME="placeholder-agent-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.

Nota

Para criar um ambiente de Aplicativos de Contêiner integrado a uma rede virtual existente, consulte Fornecer uma rede virtual a um ambiente interno de Aplicativos de Contêiner do Azure.

  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 um repositório GitHub para executar um fluxo de trabalho

Para executar um fluxo de trabalho, você precisa criar um repositório GitHub que contenha a definição do fluxo de trabalho.

  1. Navegue até o GitHub e faça login.

  2. Crie um novo repositório inserindo os seguintes valores.

    Definição Value
    Proprietário Selecione seu nome de usuário do GitHub.
    Nome do repositório Insira um nome para o repositório.
    Visibility Selecione Privado.
    Inicialize este repositório com Selecione Adicionar um arquivo LEIA-ME.

    Deixe o restante dos valores como sua seleção padrão.

  3. Selecione Create repository (Criar repositório).

  4. No novo repositório, selecione Ações.

  5. Procure o modelo de fluxo de trabalho simples e selecione Configurar.

  6. Selecione Confirmar alterações para adicionar o fluxo de trabalho ao repositório.

O fluxo de trabalho é executado no corredor hospedado no ubuntu-latest GitHub e imprime uma mensagem no console. Mais tarde, você substitui o corredor hospedado no GitHub por um corredor auto-hospedado.

Obter um token de acesso pessoal do GitHub

Para executar um corredor auto-hospedado, você precisa criar um token de acesso pessoal (PAT) no GitHub. Cada vez que um corredor começa, a PAT é usada para gerar um token para registrar o corredor no GitHub. A PAT também é usada pela regra de escala de executor de ações do GitHub para monitorar a fila de fluxo de trabalho do repositório e iniciar executores conforme necessário.

  1. No GitHub, selecione sua foto de perfil no canto superior direito e selecione Configurações.

  2. Selecione Configurações do desenvolvedor.

  3. Em Tokens de acesso pessoal, selecione Tokens refinados.

  4. Selecione Gerar novo token.

  5. Na tela Novo token de acesso pessoal refinado, insira os seguintes valores.

    Definição Value
    Nome do token Insira um nome para o seu token.
    Expiração Selecione 30 dias.
    Acesso ao repositório Selecione Somente repositórios e selecione o repositório que você criou.

    Insira os seguintes valores para permissões de repositório.

    Definição Value
    Ações Selecione Somente leitura.
    Administração Selecione Ler e escrever.
    Metadados Selecione Somente leitura.
  6. Selecione Gerar token.

  7. Copie o valor do token.

  8. Defina variáveis que são usadas para configurar o corredor e a regra de escala posteriormente.

    GITHUB_PAT="<GITHUB_PAT>"
    REPO_OWNER="<REPO_OWNER>"
    REPO_NAME="<REPO_NAME>"
    

    Substitua os espaços reservados pelos seguintes valores:

    Marcador de Posição Value
    <GITHUB_PAT> A PAT do GitHub que você gerou.
    <REPO_OWNER> O proprietário do repositório criado anteriormente. Esse valor geralmente é seu nome de usuário do GitHub.
    <REPO_NAME> O nome do repositório criado anteriormente. Esse valor é o mesmo nome que você inseriu no campo Nome do repositório .

Criar a imagem do contêiner do corredor de ações do GitHub

Para criar um corredor auto-hospedado, você precisa criar uma imagem de contêiner que execute o corredor. Nesta seção, você cria a imagem de contêiner e a envia por push para um registro de contêiner.

Nota

A imagem que você cria neste tutorial contém um corredor auto-hospedado básico que é adequado para ser executado como um trabalho de Aplicativos de Contêiner. Você pode personalizá-lo para incluir ferramentas ou dependências adicionais que seus fluxos de trabalho exigem.

  1. Defina um nome para a imagem do contêiner e o registro.

    CONTAINER_IMAGE_NAME="github-actions-runner:1.0"
    CONTAINER_REGISTRY_NAME="<CONTAINER_REGISTRY_NAME>"
    

    Substitua <CONTAINER_REGISTRY_NAME> por um nome exclusivo para criar um registro de contêiner. Os nomes do Registro de contêiner devem ser exclusivos no Azure e ter de 5 a 50 caracteres de comprimento, contendo apenas números e letras minúsculas.

  2. Crie um registro de contêiner.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. O Dockerfile para criar a imagem do runner está disponível no GitHub. Execute o seguinte comando para clonar o repositório e construir a imagem do contêiner na nuvem usando o az acr build comando.

    az acr build \
        --registry "$CONTAINER_REGISTRY_NAME" \
        --image "$CONTAINER_IMAGE_NAME" \
        --file "Dockerfile.github" \
        "https://github.com/Azure-Samples/container-apps-ci-cd-runner-tutorial.git"
    

    A imagem agora está disponível no registro do contêiner.

Implantar um corredor auto-hospedado como um trabalho

Agora você pode criar um trabalho que usa para usar a imagem de contêiner. Nesta seção, você cria um trabalho que executa o corredor auto-hospedado e se autentica com o GitHub usando a PAT gerada anteriormente. O trabalho usa a github-runner regra de escala para criar execuções de trabalho com base no número de execuções pendentes do fluxo de trabalho.

  1. Crie um trabalho no ambiente Container Apps.

    az containerapp job create -n "$JOB_NAME" -g "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
        --trigger-type Event \
        --replica-timeout 1800 \
        --replica-retry-limit 0 \
        --replica-completion-count 1 \
        --parallelism 1 \
        --image "$CONTAINER_REGISTRY_NAME.azurecr.io/$CONTAINER_IMAGE_NAME" \
        --min-executions 0 \
        --max-executions 10 \
        --polling-interval 30 \
        --scale-rule-name "github-runner" \
        --scale-rule-type "github-runner" \
        --scale-rule-metadata "githubAPIURL=https://api.github.com" "owner=$REPO_OWNER" "runnerScope=repo" "repos=$REPO_NAME" "targetWorkflowQueueLength=1" \
        --scale-rule-auth "personalAccessToken=personal-access-token" \
        --cpu "2.0" \
        --memory "4Gi" \
        --secrets "personal-access-token=$GITHUB_PAT" \
        --env-vars "GITHUB_PAT=secretref:personal-access-token" "GH_URL=https://github.com/$REPO_OWNER/$REPO_NAME" "REGISTRATION_TOKEN_API_URL=https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/runners/registration-token" \
        --registry-server "$CONTAINER_REGISTRY_NAME.azurecr.io"
    

    A tabela a seguir descreve os principais parâmetros usados no comando.

    Parâmetro Description
    --replica-timeout A duração máxima que uma réplica pode executar.
    --replica-retry-limit O número de vezes para tentar novamente uma réplica com falha.
    --replica-completion-count O número de réplicas a serem concluídas com êxito antes que a execução de um trabalho seja considerada bem-sucedida.
    --parallelism O número de réplicas a serem iniciadas por execução de trabalho.
    --min-executions O número mínimo de execuções de trabalho a serem executadas por intervalo de sondagem.
    --max-executions O número máximo de execuções de trabalho a serem executadas por intervalo de sondagem.
    --polling-interval O intervalo de sondagem para avaliar a regra da escala.
    --scale-rule-name O nome da regra de escala.
    --scale-rule-type O tipo de regra de escala a ser usada. Para saber mais sobre o escalador de corredores do GitHub, consulte a documentação do KEDA.
    --scale-rule-metadata Os metadados para a regra de escala. Se você estiver usando o GitHub Enterprise, atualize githubAPIURL com sua URL de API.
    --scale-rule-auth A autenticação para a regra de escala.
    --secrets Os segredos a usar para o trabalho.
    --env-vars As variáveis de ambiente a serem usadas para o trabalho.
    --registry-server O servidor de registro de contêiner a ser usado para o trabalho. Para um Registro de Contêiner do Azure, o comando configura automaticamente a autenticação.

    A configuração da regra de escala define a origem do evento a ser monitorada. Ele é avaliado em cada intervalo de sondagem e determina quantas execuções de trabalho devem ser acionadas. Para saber mais, consulte Definir regras de dimensionamento.

O trabalho controlado por eventos agora é criado no ambiente Container Apps.

Executar um fluxo de trabalho e verificar o trabalho

O trabalho é configurado para avaliar a regra de escala a cada 30 segundos. Durante cada avaliação, ele verifica o número de execuções de fluxo de trabalho pendentes que exigem um corredor auto-hospedado e inicia uma nova execução de trabalho para fluxo de trabalho pendente, até um máximo configurado de 10 execuções.

Para verificar se o trabalho foi configurado corretamente, modifique o fluxo de trabalho para usar um corredor auto-hospedado e acionar uma execução de fluxo de trabalho. Em seguida, você pode exibir os logs de execução do trabalho para ver o fluxo de trabalho executado.

  1. No repositório GitHub, navegue até o fluxo de trabalho gerado anteriormente. É um arquivo YAML no .github/workflows diretório.

  2. Selecione Editar no local.

  3. Atualize a runs-on propriedade para self-hosted:

    runs-on: self-hosted
    
  4. Selecione Confirmar alterações....

  5. Selecione Confirmar alterações.

  6. Navegue até a guia Ações .

    Um novo fluxo de trabalho agora está na fila. Dentro de 30 segundos, a execução do trabalho será iniciada e o fluxo de trabalho será concluído logo depois.

    Aguarde a conclusão da ação antes de avançar para a próxima etapa.

  7. Liste as execuções do trabalho para confirmar que a execução foi criada e concluída com êxito.

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

Criar um projeto e repositório do Azure DevOps

Para executar um pipeline, você precisa de um projeto e repositório do Azure DevOps.

  1. Navegue até Azure DevOps e entre na sua conta.

  2. Selecione uma organização existente ou crie uma nova.

  3. Na página de visão geral da organização, selecione Novo projeto e insira os seguintes valores.

    Definição valor
    Nome do projeto Insira um nome para o seu projeto.
    Visibilidade Selecione Privado.
  4. Selecione Criar.

  5. Na navegação lateral, selecione Repos.

  6. Em Inicializar ramificação principal com um Leiame ou .gitignore, selecione Adicionar um LEIA-ME.

  7. Deixe o restante dos valores como padrão e selecione Inicializar.

Criar um novo pool de agentes

Crie um novo pool de agentes para executar o corredor auto-hospedado.

  1. Em seu projeto do Azure DevOps, expanda a barra de navegação esquerda e selecione Configurações do projeto.

    Captura de ecrã do botão de definições do projeto Azure DevOps.

  2. Na seção Pipelines no menu de navegação Configurações do projeto, selecione Pools de agentes.

    Captura de tela do botão Pools de agentes do Azure DevOps.

  3. Selecione Adicionar pool e insira os seguintes valores.

    Definição Value
    Pool para vincular Selecione Novo.
    Tipo de piscina Selecione Auto-hospedado.
    Nome Insira container-apps.
    Conceder permissão de acesso a todos os pipelines Marque essa caixa de seleção.
  4. Selecione Criar.

Obter um token de acesso pessoal do Azure DevOps

Para executar um corredor auto-hospedado, você precisa criar um token de acesso pessoal (PAT) no Azure DevOps. A PAT é usada para autenticar o corredor com o Azure DevOps. Ele também é usado pela regra de escala para determinar o número de execuções de pipeline pendentes e acionar novas execuções de trabalho.

  1. No Azure DevOps, selecione Configurações do usuário ao lado da sua foto de perfil no canto superior direito.

  2. Selecione Tokens de acesso pessoal.

  3. Na página Tokens de acesso pessoal, selecione Novo token e insira os seguintes valores.

    Definição Valor
    Nome Insira um nome para o seu token.
    Organização Selecione a organização escolhida ou criada anteriormente.
    Âmbitos Selecione Personalizado definido.
    Mostrar todos os escopos Selecione Mostrar todos os escopos.
    Pools de agentes (ler e gerenciar) Selecione Pools de agentes (Ler e gerenciar).

    Deixe todos os outros escopos desmarcados.

  4. Selecione Criar.

  5. Copie o valor do token para um local seguro.

    Não é possível recuperar o token depois de sair da página.

  6. Defina variáveis que são usadas para configurar os trabalhos de Aplicativos de Contêiner posteriormente.

    AZP_TOKEN="<AZP_TOKEN>"
    ORGANIZATION_URL="<ORGANIZATION_URL>"
    AZP_POOL="container-apps"
    

    Substitua os espaços reservados pelos seguintes valores:

    Marcador de Posição Value Comentários
    <AZP_TOKEN> A PAT do Azure DevOps que você gerou.
    <ORGANIZATION_URL> A URL da sua organização do Azure DevOps. Certifique-se de que nenhum trailing / está presente no final do URL. Por exemplo, https://dev.azure.com/myorg ou https://myorg.visualstudio.com.

Criar a imagem do contêiner do agente do Azure Pipelines

Para criar um agente auto-hospedado, você precisa criar uma imagem de contêiner que execute o agente. Nesta seção, você cria a imagem de contêiner e a envia por push para um registro de contêiner.

Nota

A imagem que você cria neste tutorial contém um agente auto-hospedado básico que é adequado para ser executado como um trabalho de Aplicativos de Contêiner. Você pode personalizá-lo para incluir ferramentas ou dependências adicionais que seus pipelines exigem.

  1. De volta ao seu terminal, defina um nome para a imagem e o registro do contêiner.

    CONTAINER_IMAGE_NAME="azure-pipelines-agent:1.0"
    CONTAINER_REGISTRY_NAME="<CONTAINER_REGISTRY_NAME>"
    

    Substitua <CONTAINER_REGISTRY_NAME> por um nome exclusivo para criar um registro de contêiner.

    Os nomes do Registro de contêiner devem ser exclusivos no Azure e ter de 5 a 50 caracteres de comprimento, contendo apenas números e letras minúsculas.

  2. Crie um registro de contêiner.

    az acr create \
        --name "$CONTAINER_REGISTRY_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --location "$LOCATION" \
        --sku Basic \
        --admin-enabled true
    
  3. O Dockerfile para criar a imagem do runner está disponível no GitHub. Execute o seguinte comando para clonar o repositório e construir a imagem do contêiner na nuvem usando o az acr build comando.

    az acr build \
        --registry "$CONTAINER_REGISTRY_NAME" \
        --image "$CONTAINER_IMAGE_NAME" \
        --file "Dockerfile.azure-pipelines" \
        "https://github.com/Azure-Samples/container-apps-ci-cd-runner-tutorial.git"
    

    A imagem agora está disponível no registro do contêiner.

Criar um agente auto-hospedado de espaço reservado

Antes de executar um agente auto-hospedado em seu novo pool de agentes, você precisa criar um agente de espaço reservado. O agente de espaço reservado garante que o pool de agentes esteja disponível. Os pipelines que usam o pool de agentes falham quando não há nenhum agente de espaço reservado.

Você pode executar um trabalho manual para registrar um agente de espaço reservado offline. O trabalho é executado uma vez e pode ser excluído. O agente de espaço reservado não consome recursos nos Aplicativos de Contêiner do Azure ou no Azure DevOps.

  1. Crie um trabalho manual no ambiente Container Apps que cria o agente de espaço reservado.

    az containerapp job create -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
        --trigger-type Manual \
        --replica-timeout 300 \
        --replica-retry-limit 0 \
        --replica-completion-count 1 \
        --parallelism 1 \
        --image "$CONTAINER_REGISTRY_NAME.azurecr.io/$CONTAINER_IMAGE_NAME" \
        --cpu "2.0" \
        --memory "4Gi" \
        --secrets "personal-access-token=$AZP_TOKEN" "organization-url=$ORGANIZATION_URL" \
        --env-vars "AZP_TOKEN=secretref:personal-access-token" "AZP_URL=secretref:organization-url" "AZP_POOL=$AZP_POOL" "AZP_PLACEHOLDER=1" "AZP_AGENT_NAME=placeholder-agent" \
        --registry-server "$CONTAINER_REGISTRY_NAME.azurecr.io"
    

    A tabela a seguir descreve os principais parâmetros usados no comando.

    Parâmetro Description
    --replica-timeout A duração máxima que uma réplica pode executar.
    --replica-retry-limit O número de vezes para tentar novamente uma réplica com falha.
    --replica-completion-count O número de réplicas a serem concluídas com êxito antes que a execução de um trabalho seja considerada bem-sucedida.
    --parallelism O número de réplicas a serem iniciadas por execução de trabalho.
    --secrets Os segredos a usar para o trabalho.
    --env-vars As variáveis de ambiente a serem usadas para o trabalho.
    --registry-server O servidor de registro de contêiner a ser usado para o trabalho. Para um Registro de Contêiner do Azure, o comando configura automaticamente a autenticação.

    A definição da AZP_PLACEHOLDER variável de ambiente configura o contêiner do agente para se registrar como um agente de espaço reservado offline sem executar um trabalho.

  2. Execute o trabalho manual para criar o agente de espaço reservado.

    az containerapp job start -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP"
    
  3. Liste as execuções do trabalho para confirmar que a execução foi criada e concluída com êxito.

    az containerapp job execution list \
        --name "$PLACEHOLDER_JOB_NAME" \
        --resource-group "$RESOURCE_GROUP" \
        --output table \
        --query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
    
  4. Verifique se o agente de espaço reservado foi criado no Azure DevOps.

    1. No Azure DevOps, navegue até seu projeto.
    2. Selecione Configurações do>projeto: Grupos de agentes>, aplicativos de contêiner,>Agentes.
    3. Confirme se um agente de espaço reservado nomeado placeholder-agent está listado e se seu status está offline.
  5. O trabalho não é necessário novamente. Poderá eliminá-la.

    az containerapp job delete -n "$PLACEHOLDER_JOB_NAME" -g "$RESOURCE_GROUP"
    

Criar um agente auto-hospedado como um trabalho orientado a eventos

Agora que você tem um agente de espaço reservado, pode criar um agente auto-hospedado. Nesta seção, você cria um trabalho controlado por eventos que executa um agente autohospedado quando um pipeline é acionado.

az containerapp job create -n "$JOB_NAME" -g "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
    --trigger-type Event \
    --replica-timeout 1800 \
    --replica-retry-limit 0 \
    --replica-completion-count 1 \
    --parallelism 1 \
    --image "$CONTAINER_REGISTRY_NAME.azurecr.io/$CONTAINER_IMAGE_NAME" \
    --min-executions 0 \
    --max-executions 10 \
    --polling-interval 30 \
    --scale-rule-name "azure-pipelines" \
    --scale-rule-type "azure-pipelines" \
    --scale-rule-metadata "poolName=$AZP_POOL" "targetPipelinesQueueLength=1" \
    --scale-rule-auth "personalAccessToken=personal-access-token" "organizationURL=organization-url" \
    --cpu "2.0" \
    --memory "4Gi" \
    --secrets "personal-access-token=$AZP_TOKEN" "organization-url=$ORGANIZATION_URL" \
    --env-vars "AZP_TOKEN=secretref:personal-access-token" "AZP_URL=secretref:organization-url" "AZP_POOL=$AZP_POOL" \
    --registry-server "$CONTAINER_REGISTRY_NAME.azurecr.io"

A tabela a seguir descreve os parâmetros da regra de escala usados no comando.

Parâmetro Description
--min-executions O número mínimo de execuções de trabalho a serem executadas por intervalo de sondagem.
--max-executions O número máximo de execuções de trabalho a serem executadas por intervalo de sondagem.
--polling-interval O intervalo de sondagem para avaliar a regra da escala.
--scale-rule-name O nome da regra de escala.
--scale-rule-type O tipo de regra de escala a ser usada. Para saber mais sobre o escalador do Azure Pipelines, consulte a documentação do KEDA.
--scale-rule-metadata Os metadados para a regra de escala.
--scale-rule-auth A autenticação para a regra de escala.

A configuração da regra de escala define a origem do evento a ser monitorada. Ele é avaliado em cada intervalo de sondagem e determina quantas execuções de trabalho devem ser acionadas. Para saber mais, consulte Definir regras de dimensionamento.

O trabalho controlado por eventos agora é criado no ambiente Container Apps.

Executar um pipeline e verificar o trabalho

Agora que você configurou um trabalho de agente auto-hospedado, pode executar um pipeline e verificar se ele está funcionando corretamente.

  1. Na navegação à esquerda do seu projeto do Azure DevOps, navegue até Pipelines.

  2. Selecione Criar pipeline.

  3. Selecione Azure Repos Git como o local do seu código.

  4. Selecione o repositório criado anteriormente.

  5. Selecione Pipeline inicial.

  6. No pipeline YAML, altere o pool de vmImage: ubuntu-latest para name: container-apps.

    pool:
      name: container-apps
    
  7. Selecione Guardar e executar.

    O pipeline é executado e usa o trabalho de agente auto-hospedado que você criou no ambiente de Aplicativos de Contêiner.

  8. Liste as execuções do trabalho para confirmar que a execução foi criada e concluída com êxito.

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

Gorjeta

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

Clean up resources (Limpar recursos)

Quando terminar, execute o seguinte comando para excluir o grupo de recursos que contém os recursos dos Aplicativos de Contêiner.

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 tutorial no grupo de recursos especificado, eles também serão excluídos.

az group delete \
    --resource-group $RESOURCE_GROUP

Para excluir seu repositório GitHub, consulte Excluindo um repositório.

Próximos passos