Compartilhar via


Configurar a implantação contínua no Serviço de Aplicativo do Azure

Este artigo explica como você pode configurar a CD (implantação contínua) para o Serviço de Aplicativo do Azure puxando atualizações do GitHub, Bitbucket, Azure Repos ou outros repositórios.

Pré-requisitos

Escreva permissões em um aplicativo do Serviço de Aplicativo do Azure em um repositório de controle do código-fonte.

Preparar o repositório

Para obter builds automatizados do servidor de compilação do Serviço de Aplicativos, verifique se a raiz do seu repositório contém os arquivos corretos para o seu projeto.

Tempo de execução Arquivos do diretório raiz
ASP.NET (somente Windows) *.sln, *.csproj ou default.aspx.
ASP.NET Núcleo *.sln ou *.csproj.
PHP index.php.
Ruby (somente Linux) Gemfile.
Node.js server.js, app.js ou package.json com um script de início.
Pitão *.py, requirements.txt ou runtime.txt.
HTML default.htm, default.html, default.asp, index.htm, index.html, ou iisstart.htm.
WebJobs <job_name>/run.<extension> em App_Data/jobs/continuous para WebJobs contínuos ou App_Data/jobs/triggered para WebJobs disparados. Para mais informações, confira a documentação do Kudu WebJobs.
Funções Consulte Implantação contínua no Azure Functions.

Para personalizar sua implantação, inclua um .deployment arquivo na raiz do repositório. Para mais informações, confira Personalizar implantações e Script de implantação personalizado.

Dica

O Visual Studio pode criar um repositório para você. Com esse método, seu projeto está imediatamente pronto para implantação por meio do Git.

Habilitar a implantação contínua

  1. No portal do Azure, vá para a página do aplicativo do Serviço de Aplicativo e selecione o Centro de Implantação no menu de navegação à esquerda.

  2. Na guia Configurações em Origem, selecione o tipo de repositório de controle do código-fonte.

    Captura de tela que mostra como escolher a origem da implantação.

  3. Siga as instruções para o seu tipo de fonte a fim de configurar a implantação.

    Captura de tela que mostra como configurar a fonte de implantação.

Todas as fontes listadas podem ser compiladas com o Serviço de Build do Serviços de Aplicativo. Algumas fontes também podem ser compiladas com o GitHub Actions ou o Azure Pipelines. Para obter mais informações, consulte Provedores de compilação.

O GitHub Actions é o provedor de build padrão do GitHub. Para alterar o provedor, selecione Alterar provedor, selecione Serviço de Build do Serviço de Aplicativo ou Azure Pipelines e selecione OK.

Se necessário, selecione Autorizar e siga os prompts de autorização do GitHub. Para implantar no repositório de outro usuário, selecione Alterar Conta.

  1. Selecione a organização, o repositório e o Branch apropriados do GitHub.

    Se você não conseguir encontrar uma organização ou repositório, talvez seja necessário habilitar mais permissões no GitHub. Para obter mais informações, consulte Gerenciamento do acesso aos repositórios de sua organização.

  2. Em Tipo de autenticação, selecione Identidade atribuída pelo usuário para obter uma melhor segurança.

    Se sua conta do Azure tiver as permissões necessárias, o Serviço de Aplicativo criará uma identidade gerenciada atribuída pelo usuário para você ou você poderá escolher uma identidade gerenciada existente. Se você não tiver as permissões necessárias, trabalhe com o administrador do Azure para criar uma identidade com a função necessária no seu aplicativo e, em seguida, selecione-a na lista suspensa.

  3. O Serviço de Aplicativo seleciona um modelo de fluxo de trabalho com base na configuração da pilha de linguagem do aplicativo e o registra no repositório GitHub selecionado. Opcionalmente, você pode selecionar o arquivo de visualização para ver o arquivo de fluxo de trabalho antes de salvar suas alterações.

  4. Selecione Salvar.

Os novos commits no repositório e branch selecionados agora são implantados continuamente no seu aplicativo do Serviço de Aplicativo. É possível acompanhar as confirmações e implantações na guia Logs.

Desabilitar a implantação contínua

Para desabilitar a implantação contínua de uma fonte conectada:

  1. No portal do Azure, vá para a página do aplicativo do Serviço de Aplicativo e selecione o Centro de Implantação no menu de navegação à esquerda.

  2. Na guia Configurações , selecione Desconectar.

    Captura de tela que mostra como desconectar a sincronização de pastas de nuvem com seu aplicativo do Serviço de Aplicativo no portal do Azure.

  3. Selecione OK.

Para o GitHub, o arquivo de fluxo de trabalho permanece no repositório por padrão, mas você não vê mais o progresso integrado na guia Logs do Centro de Implantação.

Quais são os provedores de compilação?

Os provedores de build ajudam você a criar uma solução de CI/CD (integração contínua e entrega contínua) com o Serviço de Aplicativo do Azure automatizando a compilação, o teste e a implantação. Algumas fontes de implantação oferecem várias opções de provedores de build. Todas as fontes listadas podem ser compiladas com o Serviço de Build do Serviços de Aplicativo.

Você não está limitado às opções de provedor de build listadas, mas o App Service ajuda você a configurar rapidamente essas opções e começar a obter o registro integrado de implantação.

Ações do GitHub

O provedor de build do GitHub Actions está disponível apenas para a fonte GitHub e é o padrão para implantação no GitHub. O provedor de build configura CI/CD ao depositar um arquivo de fluxo de trabalho do GitHub Actions no repositório do GitHub que lida com as tarefas de criação e implantação do Serviço de Aplicativo.

Para autenticação básica, o provedor de criação do GitHub Actions adiciona o perfil de publicação do seu aplicativo como um segredo do GitHub. O arquivo de fluxo de trabalho usa esse segredo para autenticar-se no serviço de aplicativo.

Para a identidade atribuída pelo usuário, o Serviço de Aplicativo habilita a autenticação recomendada do Microsoft OpenID Connect e configura os recursos necessários no Azure e no GitHub. Para obter mais informações, consulte o que a opção de identidade atribuída pelo usuário faz para o GitHub Actions?

O provedor de build do GitHub Actions captura informações dos logs de execução do fluxo de trabalho e exibe-as na guia Logs no Centro de Implantação do aplicativo.

Você pode personalizar o provedor de build do GitHub Actions de várias maneiras:

  • Personalize o arquivo de fluxo de trabalho depois que ele for gerado em seu repositório GitHub. Para saber mais, consulte Sintaxe de fluxo de trabalho para o GitHub Actions. Implante o fluxo de trabalho personalizado no Serviço de Aplicativo com a ação azure/webapps-deploy .
  • Se o branch selecionado estiver protegido, visualize o arquivo de fluxo de trabalho sem salvar a configuração. Personalize o arquivo e adicione-o manualmente ao repositório. Esse método não fornece integração de log com o portal do Azure.
  • Implantar usando uma entidade de serviço do Microsoft Entra ID em vez de usar autenticação básica ou uma identidade atribuída pelo usuário. Você não pode configurar esse método no portal.

Serviço de build do Serviço de Aplicativo

O serviço de build do Serviço de Aplicativo é o mecanismo nativo de implantação e compilação do Serviço de Aplicativo. Quando você seleciona essa opção, o Serviço de Aplicativo adiciona um webhook ao repositório autorizado. Qualquer push de código para o repositório dispara o Webhook, e o Serviço de Aplicativo puxa as alterações e executa as tarefas de implantação. Para obter mais informações, confira Implantação do GitHub (Kudu).

O serviço de build do Serviço de Aplicativo requer autenticação básica do SCM (Gerenciador de Controle de Origem) para que o webhook funcione. A autenticação básica é menos segura do que outros métodos de autenticação. Para obter mais informações, consulte:

Azure Pipelines (Pipelines de Distribuição do Azure)

O Azure Pipelines é o componente de build do Azure DevOps. Você pode configurar um pipeline para criar, testar e implantar seu aplicativo no Serviço de Aplicativo a partir de qualquer repositório de origem com suporte.

Para usar o Azure Pipelines como provedor de build, selecione a opção Azure Pipelines no Centro de Implantação do Serviço de Aplicativo e vá diretamente para o Azure DevOps para configurar o pipeline. Para obter mais informações, confira Implantar o Serviço de Aplicativo usando o Azure Pipelines.

Perguntas frequentes

Como o provedor de build do GitHub Actions funciona se a autenticação básica está desabilitada?

O provedor de build do GitHub Actions não funcionará com autenticação básica se a autenticação básica estiver desabilitada. Tente usar o GitHub Actions com a opção de identidade atribuída pelo usuário. Para obter mais informações, consulte Implantar sem autenticação básica.

O que acontece com meu aplicativo durante a implantação que pode causar falha ou comportamento imprevisível?

Métodos de implantação com suporte oficial fazem alterações nos arquivos na pasta /home/site/wwwroot usada para executar seu aplicativo. A implantação pode falhar devido a arquivos bloqueados. O aplicativo também poderá se comportar de forma imprevisível durante a implantação se os arquivos não forem todos atualizados ao mesmo tempo, o que é indesejável para um aplicativo voltado para o cliente.

Há algumas maneiras de evitar esses problemas.

O que a opção de identidade atribuída pelo usuário faz para o GitHub Actions?

Quando você seleciona a identidade atribuída pelo usuário para a origem do GitHub , o Serviço de Aplicativo configura todos os recursos necessários no Azure e no GitHub. O Serviço de Aplicativo habilita a autenticação recomendada do Microsoft OpenID Connect com o GitHub Actions.

Especificamente, o Serviço de Aplicativo faz as seguintes operações:

  • Cria uma credencial federada entre uma identidade atribuída pelo usuário no Azure e o repositório e branch selecionados no GitHub.
  • Cria os segredos AZURE_CLIENT_ID, AZURE_TENANT_ID e AZURE_SUBSCRIPTION_ID da credencial federada no repositório GitHub selecionado.
  • Atribui a identidade ao seu aplicativo.

Em seguida, você pode usar a ação Azure/login em um fluxo de trabalho do GitHub Actions em seu repositório GitHub para autenticar com seu aplicativo usando o OpenID Connect. Para obter exemplos, confira Adicionar o arquivo de fluxo de trabalho ao repositório GitHub.

Se sua conta do Azure tiver as permissões necessárias, o Serviço de Aplicativo criará uma identidade gerenciada atribuída pelo usuário e a configurará para você. Essa identidade não é mostrada na página Identidade do seu aplicativo. Se sua conta do Azure não tiver as permissões necessárias, você deverá selecionar uma identidade existente com a função necessária.

Por que vejo o erro "Você não tem permissões suficientes neste aplicativo para atribuir acesso baseado em função a uma identidade gerenciada e configurar credenciais federadas"?

A mensagem indica que sua conta do Azure não tem as permissões necessárias para criar uma identidade gerenciada atribuída pelo usuário para o GitHub Actions. Você precisa das seguintes permissões, específicas para o seu aplicativo.

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.ManagedIdentity/userAssignedIdentities/write

Por padrão, as funções Administrador de Acesso do Usuário do Azure e Proprietário têm essas permissões, mas a função Colaborador não. Se você não tiver as permissões necessárias, trabalhe com o administrador do Azure para criar uma identidade gerenciada atribuída pelo usuário que tenha a função Colaborador de Sites . Você pode selecionar essa identidade na lista suspensa Identidade para a fonte GitHub no Centro de Implantação do Serviço de Aplicativo.

Para obter mais informações sobre como usar etapas alternativas, consulte Implantar no Serviço de Aplicativo usando o GitHub Actions.

Por que estou vendo a mensagem de erro "Esta identidade não tem permissão para gravar neste aplicativo?" Selecione uma identidade diferente ou trabalhe com o administrador para conceder a função Colaborador do Site à sua identidade neste aplicativo"?

A mensagem indica que a identidade gerenciada atribuída pelo usuário selecionada não tem a função necessária para [habilitar o OpenID Connect]((#what-does-the-user-assigned-identity-option-do-for-github-actions) entre o repositório do GitHub e o aplicativo do Serviço de Aplicativo. A identidade deve ter a função Proprietário, Colaborador ou Colaborador de Sites no aplicativo. A função menos privilegiada que a identidade precisa é a de Colaborador de Sites.