Implantação contínua no Serviço de Aplicativo do Azure
Artigo
Observação
A partir de 1º de junho de 2024, todos os aplicativos recém-criados do Serviço de Aplicativo terão a opção de gerar um nome do host padrão exclusivo usando a convenção de nomenclatura <app-name>-<random-hash>.<region>.azurewebsites.net. Os nomes de aplicativos existentes permanecerão inalterados.
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 inicial
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.
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.
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.
Depois de autorizar sua conta do Azure com o GitHub, selecione a Organização, o Repositório e o Branch desejados.
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.
(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.
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.
A integração do Bitbucket usa os serviços de compilação do Serviço de Aplicativo para automação de compilação.
Ao realizar a primeira implantação pelo Bitbucket, selecione Autorizar e siga os prompts de autorização. Para usar o repositório de um usuário diferente, selecione Alterar conta.
Para o Bitbucket, selecione a Equipe, o Repositório e a Ramificação que você deseja implantar continuamente.
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.
O serviço de compilação do Serviço de Aplicativo é o provedor de compilação padrão.
Observação
Para usar o Azure Pipelines como o provedor de compilação para seu aplicativo do Serviço de Aplicativo, configure-o diretamente do Azure Pipelines. Não o configure no Serviço de Aplicativo. A opção Azure Pipelines apenas o direciona adequadamente.
Selecione a Organização do Azure DevOps, o Projeto, o Repositório e a Ramificação que você deseja implantar continuamente.
Quando sua organização do DevOps não está listada, há possibilidade de ela ainda não ter sido vinculada à sua assinatura do Azure. Para saber mais, consulte Criar uma conexão de serviço do Azure.
Para aplicativos do Windows, é possível configurar manualmente a implantação contínua de um repositório Git ou Mercurial de nuvem ao qual o portal não dá suporte diretamente, como o GitLab. Para isso, selecione Git externo na lista suspensa de Origem. Para obter mais informações, consulte Configurar a implantação contínua com etapas manuais.
Desabilitar a implantação contínua
No portal do Azure, vá para a página de gerenciamento do seu aplicativo do serviço de aplicativo.
No painel esquerdo, selecione Centro de Implantação. Em seguida, selecione Configurações>Desconectar:
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.
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.
É 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 serviço de compilação do Serviço de Aplicativo é o mecanismo de compilação e implantação nativo do Serviço de Aplicativo, também conhecido como Kudu. Quando essa opção for selecionada, o Serviço de Aplicativo adicionará um webhook ao repositório autorizado. Qualquer push de código para o repositório dispara o webhook, e o Serviço de Aplicativo efetua pull das alterações em seu repositório e executa todas as tarefas de implantação. Para obter mais informações, confira Implantação do GitHub (Kudu).
O Azure Pipelines faz parte do Azure DevOps Services. 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 o provedor de compilação, não o configure no Serviço de Aplicativo, mas vá diretamente para o Azure DevOps. No Centro de Implantação, a opção Azure Pipelines apenas indica a direção certa.
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:
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.
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:
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.
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.
Crie dois fluxos de trabalho de implantação com o GitHub Actions e o Microsoft Azure. Saiba mais sobre como disparar um fluxo de trabalho de CD e armazenar credenciais.
Demonstrar os recursos do Microsoft Entra ID para modernizar as soluções de identidade, implementar soluções híbridas e implementar a governança de identidade.