Compartilhar via


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

Observação

A partir de 1º de junho de 2024, os aplicativos recém-criados do Serviço de Aplicativo podem gerar um nome de host padrão exclusivo que usa a convenção <app-name>-<random-hash>.<region>.azurewebsites.net de nomenclatura. Por exemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net. Os nomes de aplicativos existentes permanecem inalterados.

Para obter mais informações, confira a postagem no blog sobre como criar um aplicativo Web com um nome de host padrão exclusivo.

Você pode configurar a implantação contínua dos repositórios GitHub, Bitbucket e Azure usando o Serviço de Aplicativo do Azure, que recebe as atualizações mais recentes. Este guia fornece tudo o que você precisa para começar.

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 Core *.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.
Python *.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.

Configurar a fonte de implantação

  1. No portal do Azure, acesse o painel de controle para seu App Service.

  2. No menu à esquerda, selecione Centro de Implantação. Em seguida, selecione Configurações.

  3. Na caixa Origem, selecione uma das opções Implantação Contínua (CI/CD):

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

Para continuar, selecione a guia que corresponde ao seu provedor de build.

  1. O GitHub Actions é o provedor de compilação padrão. Para alterar o provedor, selecione Alterar provedor>Serviço de compilação do Serviço de Aplicativo>OK.

  2. Ao realizar a primeira implantação pelo GitHub, selecione Autorizar e siga os prompts de autorização. Para implantar no repositório de outro usuário, selecione Alterar Conta.

  3. Depois de autorizar sua conta do Azure com o GitHub, selecione a Organização, o Repositório e o Branch apropriados.

    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.

  4. Em Tipo de autenticação, selecione Identidade atribuída pelo usuário para obter uma melhor segurança. Para obter mais informações, consulte Perguntas mais frequentes.

    Observação

    Se sua conta do Azure tiver as permissões necessárias para a opção de Identidade atribuída pelo usuário, o Azure criará uma identidade gerenciada atribuída pelo usuário para você. 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.

  5. (Opcional) Para ver o arquivo antes de salvar as alterações, selecione Visualizar arquivo. 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.

  6. 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

  1. No portal do Azure, vá para a página de gerenciamento do seu app do App Service.

  2. No menu à esquerda, selecione Centro de Implantação. Em seguida, selecione Configurações>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. O arquivo de fluxo de trabalho do GitHub Actions é preservado em seu repositório por padrão, mas continua disparando a implantação para seu aplicativo. Para excluir o arquivo do repositório, selecione Excluir arquivo de fluxo de trabalho.

  4. Selecione OK.

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

Dependendo da origem da implantação no Centro de Implantação, você poderá ver algumas opções de provedor de construçã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.

Você não está limitado às opções de provedor de build encontradas no Centro de Implantação, mas, ao usar o App Service, pode configurá-las rapidamente e obter uma experiência integrada de registro de implantação.

O provedor de compilação do GitHub Actions está disponível apenas para implantação do GitHub. Quando configurado no centro de implantações do aplicativo, o provedor de build configura a CI/CD depositando um arquivo de fluxo de trabalho do GitHub Actions no seu repositório do GitHub que lida com as tarefas de build e implantação no Serviço de Aplicativo.

Para autenticação básica, ele 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-se no serviço de aplicativo. Para obter a identidade atribuída pelo usuário, confira O que a opção de identidade atribuída pelo usuário faz para o GitHub Actions?

Ele captura informações dos logs de execução do fluxo de trabalho e exibe-as na guia Logs no Centro de Implantação.

Você pode personalizar o provedor de compilação GitHub Actions como a seguir:

  • Você pode personalizar o arquivo de fluxo de trabalho depois que ele é gerado em seu repositório GitHub. Para saber mais, consulte Sintaxe de fluxo de trabalho para o GitHub Actions. Apenas certifique-se de que o fluxo de trabalho seja implantado no Serviço de Aplicativo com a azure/webapps-deploy ação.
  • Se o branch selecionado estiver protegido, você ainda poderá visualizar o arquivo de fluxo de trabalho sem salvar a configuração e adicioná-lo manualmente ao repositório. Esse método não fornece integração de log com o portal do Azure.
  • Em vez de usar autenticação básica ou uma identidade atribuída pelo usuário, você também pode implantar usando um entidade de serviço no Microsoft Entra ID. Esse método não pode ser configurado no portal.

O que acontece com meu aplicativo durante a implantação?

Quando você usa métodos de implantação com suporte oficial, são feitas alterações nos arquivos na pasta do /home/site/wwwroot aplicativo. Esses arquivos são usados para executar o aplicativo. A implantação pode falhar devido a arquivos bloqueados. O aplicativo também pode se comportar de modo imprevisível durante a implantação, porque nem todos os arquivos são atualizados ao mesmo tempo. Esse comportamento não é desejável para um aplicativo voltado ao cliente.

Há algumas maneiras de evitar esses problemas:

Perguntas frequentes

O provedor de compilação do GitHub Actions funcionará com autenticação básica se a autenticação básica estiver desabilitada?

Não. 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 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 na origem do GitHub Actions , 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 um fluxo de trabalho do GitHub Actions em seu repositório GitHub, você pode usar a ação Azure/login 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 será mostrada na página Identidades do 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. As permissões necessárias (com escopo para seu aplicativo) são:

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

Por padrão, as funções Administrador de Acesso do Usuário e Proprietário já 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 com a função Colaborador de Sites. No Centro de Implantação, você poderá selecionar a identidade na lista suspensa GitHub>Identidade.

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

Por que vejo o erro "Essa identidade não tem permissões de gravação nesse 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 entre o repositório do GitHub e o aplicativo do Serviço de Aplicativo. A identidade deve ter uma das seguintes funções no aplicativo: Proprietário, Colaborador ou Colaborador de Sites. A função menos privilegiada que a identidade precisa é a de Colaborador de Sites.