Partilhar via


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

Este artigo explica como você pode configurar a implantação contínua (CD) para o Serviço de Aplicativo do Azure recebendo atualizações do GitHub, Bitbucket, Repositórios do Azure 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 de origem.

Prepare seu repositório

Para obter compilações automatizadas do servidor de compilação do Serviço de Aplicativo, verifique se a raiz do repositório tem os arquivos corretos em seu projeto.

Tempo de execução Arquivos de 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.
Píton *.py, requirements.txt, ou runtime.txt.
HTML default.htm, default.html, , default.asp, index.htmindex.html, ou iisstart.htm.
Empregos na Web <job_name>/run.<extension> em App_Data/jobs/continuous para WebJobs contínuos ou App_Data/jobs/triggered para WebJobs acionados. Para obter mais informações, consulte a documentação do Kudu WebJobs.
Funções Consulte Implantação contínua para Azure Functions.

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

Sugestão

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

Habilite a implantação contínua

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

  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 fonte de implantação.

  3. Siga as instruções para configurar a implantação de acordo com o seu tipo de origem.

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

Todas as origens listadas podem ser criadas com o Serviço de Compilação do App Service. Algumas fontes também podem criar com Ações do GitHub ou Pipelines do Azure. Para obter mais informações, consulte Criar provedores.

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

Se necessário, selecione Autorizar e siga as instruções de autorização para o GitHub. Para implantar a partir do repositório de outro usuário, selecione Alterar conta.

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

    Se 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 Gerenciando o acesso aos repositórios da sua organização.

  2. Em Tipo de autenticação, selecione Identidade atribuída pelo usuário para 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. Caso não tenha as permissões necessárias, trabalhe com o administrador do Azure para criar uma identidade com a função apropriada na sua aplicação, e depois selecione-a no menu suspenso.

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

  4. Selecione Guardar.

Novos commits no repositório e na branch selecionada agora são implantados continuamente no seu app do Azure App Service. Você pode acompanhar as confirmações e implementações na guia de Registos .

Desativar a implementação contínua

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

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

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

    Captura de tela que mostra como desconectar a sincronização da pasta na nuvem com o 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 compilação ajudam você a criar uma solução de integração contínua e entrega contínua (CI/CD) 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 provedor de compilação. Todas as origens listadas podem ser criadas com o Serviço de Compilação do App Service.

Você não está limitado às opções de provedor de compilação listadas, mas o Serviço de Aplicativo ajuda você a configurar rapidamente as opções listadas e começar a obter logs de implantação integrados.

Ações do GitHub

O provedor de compilação de ações do GitHub está disponível apenas para a origem do GitHub e é o padrão para implantações do GitHub. O provedor de compilação configura CI/CD depositando um arquivo de fluxo de trabalho de Ações do GitHub em seu repositório do GitHub que lida com tarefas de compilação e implantação do Serviço de Aplicativo.

Para autenticação básica, o provedor de compilação GitHub Actions adiciona o perfil de publicação para seu aplicativo como um segredo do GitHub. O arquivo de fluxo de trabalho usa esse segredo para autenticar com o Serviço de Aplicativo.

Para 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 as ações do GitHub?

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

Você pode personalizar o provedor de compilação do GitHub Actions de várias maneiras:

  • Personalize o arquivo de fluxo de trabalho depois que ele for gerado no repositório do GitHub. Para obter mais informações, consulte Sintaxe do fluxo de trabalho para ações do GitHub. Implante o fluxo de trabalho personalizado no Serviço de Aplicativo com a ação azure/webapps-deploy.
  • Se a ramificação selecionada estiver protegida, 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 oferece integração de log com o portal do Azure.
  • Implante usando uma entidade de serviço do Microsoft Entra ID em vez de utilizar autenticação básica ou uma identidade atribuída ao utilizador. Não é possível configurar esse método no portal.

Serviço de configuração do App Service

O serviço de compilação 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 envio de código para o repositório aciona o webhook, e o Serviço de Aplicativo recebe as alterações e executa todas as tarefas de implantação. Para obter mais informações, consulte Implantando a partir do GitHub (Kudu).

O serviço de compilação do Serviço de Aplicativo requer autenticação básica do Gerenciador de Controle do Código-Fonte (SCM) 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 do Azure)

O Azure Pipelines é o componente de compilação 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 suportado.

Para usar o Azure Pipelines como o provedor de compilação, 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, consulte Implantar no Serviço de Aplicativo usando o Azure Pipelines.

Perguntas mais frequentes

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

O provedor de compilação GitHub Actions não funciona com autenticação básica se a autenticação básica estiver desabilitada. Em vez disso, tente usar as Ações do GitHub 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?

Os métodos de implantação oficialmente suportados fazem alterações nos arquivos na pasta /home/site/wwwroot que são usados para executar seu aplicativo. A implantação pode falhar devido a arquivos bloqueados. O aplicativo também pode 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.

Existem algumas maneiras de evitar esses problemas.

O que a opção de identidade atribuída pelo usuário faz para as Ações do GitHub?

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 as Ações do GitHub.

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

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

Em seguida, você pode usar a Azure/login ação em um fluxo de trabalho de Ações do GitHub em seu repositório do GitHub para autenticar com seu aplicativo usando o OpenID Connect. Para obter exemplos, consulte Adicionar o arquivo de fluxo de trabalho ao repositório do 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 as Ações do GitHub. Precisa das seguintes permissões aplicáveis ao seu aplicativo:

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

Por padrão, as funções de Administrador de Acesso de Usuário do Azure e Proprietário têm essas permissões, mas a função de 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 de Colaborador de Sites . Em seguida, você pode selecionar essa identidade na lista suspensa Identidade para a origem do 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 ações do GitHub.

Por que vejo o erro "Esta identidade não tem permissões de gravação neste aplicativo. Selecione uma identidade diferente ou trabalhe com seu administrador para conceder a função de Colaborador do site à sua identidade neste aplicativo"?

A mensagem indica que a identidade gerida atribuída pelo utilizador 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 GitHub e a aplicação do App Service. A identidade deve ter a função de Proprietário, Colaborador ou Colaborador de Sites no aplicativo. O papel menos privilegiado que a identidade precisa é Colaborador de Websites.