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.
Observação
A página Centro de Desenvolvimento (Clássico) no portal do Azure, que é uma experiência de implantação da versão anterior, será preterida em março de 2021. Essa mudança não afetará as configurações de implantação existentes em seu aplicativo e você poderá continuar gerenciando a implantação de aplicativos na página Centro de Implantação do portal.
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
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.
Na caixa Origem, selecione uma das opções de CI/CD:
Selecione a guia que corresponde ao seu provedor de compilação para continuar.
O GitHub Actions é o provedor de compilação padrão. Para alterar o provedor, selecione Alterar provedor>Serviço de build do Serviço de Aplicativo (Kudu) > >OK.
Observação
Para usar o Azure Pipelines como o provedor de compilação para seu aplicativo do Serviço de aplicativo, configure o CI/CD diretamente do Azure Pipelines. Não o configure no Serviço de Aplicativo. A opção Azure Pipelines apenas o direciona adequadamente.
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, para a configuração de CI/CD, selecione Organização, Repositório e Ramificação. 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.
Ao escolher o GitHub Actions como provedor de compilação, é possível selecionar o arquivo de fluxo de trabalho desejado usando os menus suspensos Pilha de tempo de execução e Versão. O Azure confirma esse arquivo no repositório do GitHub selecionado para lidar com as tarefas de compilação e implantação. Para ver o arquivo antes de salvar as alterações, selecione Visualizar arquivo.
Observação
O serviço de aplicativo detecta a configuração da pilha de idiomas do seu aplicativo e seleciona o modelo de fluxo de trabalho mais apropriado. Com um modelo diferente, pode ocorrer a implantação de um aplicativo que não seja executado corretamente. Para saber mais, consulte Como funciona o provedor de compilação GitHub Actions.
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
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 de fluxo de trabalho do GitHub Actions é preservado no repositório, mas continua a disparar a implantação no aplicativo. Para excluir o arquivo do repositório, selecione Excluir arquivo de fluxo de trabalho.
Selecione OK.
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:
- Execute seu aplicativo diretamente a partir do pacote ZIP sem desempacotá-lo.
- Interrompa o aplicativo ou habilite o modo offline durante a implantação. Para obter mais informações, confira Lidar com arquivos bloqueados durante a implantação.
- Implantar um slot de preparo com troca automática ativada.
Como funciona o provedor de compilação GitHub Actions
O provedor de compilação GitHub Actions é uma opção para CI/CD do GitHub. Ele conclui as ações a seguir para configurar o 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.
- 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.
- Ele captura informações dos logs de execução de fluxo de trabalho e as exibe na guia Logs do Centro de Implantação do 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 um perfil de publicação, faça a implantação usando uma entidade de serviço no Azure Active Directory.
Autenticar-se usando uma entidade de serviço
Essa configuração opcional substitui a autenticação padrão por perfis de publicação no arquivo de fluxo de trabalho gerado.
Crie uma entidade de serviço usando o comando az ad sp create-for-rbac na CLI do Azure. No seguinte exemplo, substitua <subscription-id>, <group-name> e <app-name> por seus valores:
az ad sp create-for-rbac --name "myAppDeployAuth" --role contributor \ --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name> \ --sdk-auth
Importante
Para fins de segurança, conceda o acesso mínimo necessário à entidade de serviço. O escopo do exemplo anterior é limitado especificamente ao aplicativo do serviço de aplicativo, não a todo o grupo de recursos.
Salve toda a saída JSON para a próxima etapa, incluindo o
{}
de nível superior.No GitHub, no repositório, selecione Configurações>Segredos>Adicionar um novo segredo.
Cole toda a saída JSON do comando da CLI do Azure no campo valor do segredo. Dê um nome semelhante a
AZURE_CREDENTIALS
para o segredo.No arquivo de fluxo de trabalho gerado pelo Centro de Implantação, revise a etapa
azure/webapps-deploy
para que seja similar ao exemplo a seguir (que é modificado de um arquivo de fluxo de trabalho Node.js):- name: Sign in to Azure # Use the GitHub secret you added. uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Deploy to Azure Web App # Remove publish-profile. uses: azure/webapps-deploy@v2 with: app-name: '<app-name>' slot-name: 'production' package: . - name: Sign out of Azure. run: | az logout
Implantação por meio de outros repositórios
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.