Implementação contínua no Serviço de Aplicações do Azure

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

Prepare seu repositório

Para obter compilações automatizadas do servidor de compilação do Serviço de Aplicativo do Azure, verifique se a raiz do repositório tem os arquivos corretos em seu projeto.

Runtime Arquivos de 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.htmlindex.htm, ouiisstart.htm
WebJobs <job_name>/run.<extension> em App_Data/jobs/continuous para WebJobs contínuos ou App_Data/jobs/triggered para WebJobs acionados. Para obter mais informações, consulte a documentação do Kudu WebJobs.
Funções Consulte Implantação contínua para o Azure Functions.

Para personalizar sua implantação, inclua um arquivo .deployment na raiz do repositório. Para obter mais informações, consulte Personalizar implantações e script de implantação personalizado.

Nota

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

Configurar a origem da 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 fonte de implantação.

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

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

  2. Se você estiver implantando a partir do GitHub pela primeira vez, selecione Autorizar e siga os prompts de autorização. Se você quiser implantar a partir do 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 a Ramificação desejados.

    Se 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 Gerenciando o acesso aos repositórios da sua organização.

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

    Nota

    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 em seu aplicativo e selecione-a aqui no menu suspenso.

  5. (Opcional) Para ver o ficheiro antes de guardar as alterações, selecione Pré-visualizar ficheiro. O Serviço de Aplicativo seleciona um modelo de fluxo de trabalho com base na configuração da pilha de idiomas do seu aplicativo e o confirma no repositório GitHub selecionado.

  6. Selecione Guardar.

    Novas confirmações no repositório e na ramificação selecionados agora são implantadas continuamente em seu aplicativo do Serviço de Aplicativo. Você pode acompanhar as confirmações e implantações na guia Logs .

Desativar a implementaçã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 da pasta na nuvem com o aplicativo do Serviço de Aplicativo no portal do Azure.

  3. Por padrão, o arquivo de fluxo de trabalho Ações do GitHub é preservado em seu repositório, mas continua a disparar a implantação em 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 a serem selecionadas 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 do provedor de compilação encontradas no Centro de Implantação, mas o Serviço de Aplicativo permite configurá-las rapidamente e oferece alguma experiência de log de implantação integrada.

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

  • Deposita um arquivo de fluxo de trabalho do GitHub Actions em seu repositório do GitHub para lidar com tarefas de compilação e implantação no Serviço de Aplicativo.
  • Para autenticação básica, 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 com o Serviço de Aplicativo.
  • Para identidade atribuída pelo usuário, consulte O que a opção de identidade atribuída pelo usuário faz para as ações do GitHub?
  • Captura informações dos logs de execução do fluxo de trabalho e as exibe na guia Logs no Centro de Implantação.

Você pode personalizar o provedor de compilação do GitHub Actions das seguintes maneiras:

  • Personalize o arquivo de fluxo de trabalho depois que ele for gerado no repositório do GitHub. Para obter mais informações, consulte Sintaxe do fluxo de trabalho para ações do GitHub. Apenas 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 oferece 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 implementação suportados oficialmente efetuam alterações aos ficheiros na pasta /home/site/wwwroot da aplicação. Estes ficheiros são utilizados para executar a aplicação. Assim, a implementação pode falhar devido a ficheiros bloqueados. A aplicação também pode comportar-se de forma imprevisível durante a implementação, porque os ficheiros não são todos atualizados ao mesmo tempo. Este comportamento é indesejável para uma aplicação destinada ao cliente. Existem várias formas de evitar estes problemas:

Perguntas mais frequentes

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

N.º Tente usar as Ações do GitHub com a opção de identidade atribuída pelo usuário.

Para obter mais informações, consulte Implantação sem autenticação básica.

O que a opção de identidade atribuída pelo usuário faz para as Ações do GitHub?

Quando você seleciona a identidade atribuída pelo usuário na origem Ações do GitHub, o Serviço de Aplicativo configura todos os recursos necessários no Azure e no GitHub para habilitar a autenticação recomendada do OpenID Connect com as Ações do GitHub.

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

  • Cria uma credencial federada entre uma identidade gerenciada atribuída pelo usuário no Azure e seu repositório e ramificação selecionados no GitHub.
  • Cria os segredos AZURE_CLIENT_ID, AZURE_TENANT_IDe AZURE_SUBSCRIPTION_ID a partir da credencial federada no repositório GitHub selecionado.
  • Atribui a identidade ao seu aplicativo.

Em um fluxo de trabalho de Ações do GitHub em seu repositório do GitHub, você pode usar a ação Azure/login para autenticar com seu aplicativo usando o OpenID Connect. Para obter exemplos, consulte Adicionar o arquivo de fluxo de trabalho ao repositório do 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 é mostrada na página Identidades do seu 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 as Ações do GitHub. As permissões necessárias (com escopo para seu aplicativo) são:

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

Por padrão, a função Administrador de Acesso de Usuário e a função Proprietário já têm essas permissões, mas a função de Colaboradornã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 de Colaborador do Site. No Centro de Implantação, você pode selecionar a identidade no menu suspenso Identidade do GitHub>.

Para obter mais informações sobre as etapas alternativas, consulte Implantar no Serviço de Aplicativo usando ações do GitHub.

Por que vejo o erro "Esta identidade não tem permissões de gravação neste aplicativo. Selecione uma identidade diferente ou trabalhe com seu administrador para conceder a função de 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 GitHub e o aplicativo do Serviço de Aplicativo. A identidade deve ter uma das seguintes funções no aplicativo: Proprietário, Colaborador, Colaborador de sites. O papel menos privilegiado que a identidade precisa é o de Colaborador de Sites.

Mais recursos