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

  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:

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

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

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

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

  5. 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:

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

  4. 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:

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.

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

  2. Salve toda a saída JSON para a próxima etapa, incluindo o {} de nível superior.

  3. No GitHub, no repositório, selecione Configurações>Segredos>Adicionar um novo segredo.

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

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

Mais recursos