Implementação contínua no Serviço de Aplicações do Azure
Nota
A partir de 1º de junho de 2024, todos os aplicativos do Serviço de Aplicativo recém-criados terão a opção de gerar um nome de host padrão exclusivo usando a convenção <app-name>-<random-hash>.<region>.azurewebsites.net
de nomenclatura. Os nomes de aplicativos existentes permanecerão inalterados.
Exemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para obter mais detalhes, consulte Nome de host padrão exclusivo para recurso do Serviço de Aplicativo.
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.html index.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
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.
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.
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.
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.
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.
(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.
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
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 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.
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:
- Execute a aplicação diretamente a partir do pacote ZIP, sem o descomprimir.
- Pare a aplicação ou ative o modo offline durante a implementação. Para obter mais informações, veja Lidar com ficheiros bloqueados durante a implementação.
- Implemente num bloco de teste com a troca automática ativada.
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?
- O que a opção de identidade atribuída pelo usuário faz para as 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"?
- 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"?
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_ID
eAZURE_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 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 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.