Implantação contínua no Serviço de Aplicativo do Azure

O Serviço de Aplicativo do Azure permite a implantação contínua de repositórios GitHub, Bitbucket e Azure Repos ao efetuar pull das atualizações mais recentes.

Preparar o repositório

Para obter builds automáticos do servidor de build do Serviço de Aplicativo do Azure, verifique se a raiz do repositório tem os arquivos adequados no projeto.

Runtime 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 de WebJobs do Kudu.
Funções Confira Implantação contínua para Azure Functions.

Para personalizar a implantação, você pode incluir um arquivo .deployment na raiz do repositório. Para mais informações, confira Personalizar implantações e Script de implantação personalizado.

Observação

Se você usar o Visual Studio, permita que o Visual Studio crie um repositório para você. Seu projeto estará imediatamente pronto para implantação por meio do Git.

Configurar a fonte de implantação

  1. No portal do Azure, vá para a página de gerenciamento do seu aplicativo do serviço de aplicativo.

  2. No painel esquerdo, selecione Centro de Implantação. Em seguida, selecione Configurações.

  3. Na caixa Origem, selecione uma das opções de CI/CD:

    Screenshot that shows how to choose the deployment source.

Selecione a guia que corresponde ao seu provedor de compilação para continuar.

  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 usar o repositório de um usuário diferente, selecione Alterar conta.

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

    Quando não é possível localizar uma organização ou um repositório, pode ser 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, confira as perguntas 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ê. Caso contrário, trabalhe com o administrador do Azure para criar uma identidade com a função necessária no aplicativo e selecione-a aqui 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 de pilha de linguagem do aplicativo e o confirma no repositório GitHub selecionado.

  6. Selecione Salvar.

    Novas confirmações no repositório e no branch selecionados agora são implantadas continuamente em 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 aplicativo do serviço de aplicativo.

  2. No painel esquerdo, selecione Centro de Implantação. Em seguida, selecione Configurações>Desconectar:

    Screenshot that shows how to disconnect your cloud folder sync with your App Service app in the Azure portal.

  3. Por padrão, o arquivo do fluxo de trabalho do GitHub Actions está preservado no seu repositório, mas continua a disparar a implantação no 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 para selecionar para provedores de compilação. Os provedores de compilação ajudam você a criar uma solução de CI/CD 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 compilação encontradas no Centro de Implantação, mas o Serviço de Aplicativo permite que você as configure rapidamente e oferece uma experiência integrada de registro em log de implantação.

O provedor de compilação do GitHub Actions está disponível apenas para implantação do GitHub. Quando configurado do Centro de Implantação do aplicativo, ele conclui estas ações para configurar a CI/CD:

  • Ele deposita um arquivo de fluxo de trabalho do GitHub Actions no repositório do GitHub para lidar com tarefas de compilação e implantação no serviço de aplicativo.
  • Para autenticação básica, ele adiciona o perfil de publicação para o 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?
  • Captura informações dos logs de execução de fluxo de trabalho e as exibe na guia Logs no Centro de Implantação.

É possível personalizar o provedor de compilação GitHub Actions das formas a seguir:

  • Personalize o arquivo de fluxo de trabalho depois que ele for gerado no repositório GitHub. Para saber mais, consulte Sintaxe de fluxo de trabalho para o GitHub Actions. Certifique-se de que o fluxo de trabalho seja implantado no Serviço de Aplicativo com a ação azure/webapps-deploy.
  • Se a ramificação selecionada estiver protegida, você ainda poderá visualizar o arquivo de fluxo de trabalho sem salvar a configuração e, em seguida, 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 a autenticação básica ou uma identidade atribuída pelo usuário, você também pode implantar usando uma entidade de serviço no Microsoft Entra ID. Isso não pode ser configurado no portal.

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

Todos os métodos de implantação oficialmente suportados fazem alterações nos arquivos da pasta /home/site/wwwroot do seu aplicativo. Esses arquivos são usados para executar o aplicativo. Portanto, a implantação pode falhar por causa de 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, confira Implantação sem autenticação básica.

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

Ao selecionar a identidade atribuída pelo usuário na origem do GitHub Actions, o Serviço de Aplicativo configurará todos os recursos necessários no Azure e no GitHub para habilitar a autenticação recomendada do OpenID Connect com o GitHub Actions.

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

  • Cria uma de credencial federada entre uma identidade gerenciada atribuída pelo usuário no Azure e seu 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/logon 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 do Site. No Centro de Implantação, você pode selecionar a identidade na lista suspensa GitHub>Identidade.

Para obter mais informações sobre as etapas alternativas, confira 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 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 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 e Colaborador de Sites. A função menos privilegiada que a identidade precisa é a de Colaborador de Sites.

Mais recursos