Implantação contínua para Azure Functions
O Azure Functions permite que você implante continuamente as alterações feitas em um repositório de controle do código-fonte em um aplicativo de função conectado. Essa integração de controle do código-fonte permite um fluxo de trabalho no qual uma atualização de código dispara a criação, o empacotamento e a implantação do seu projeto no Azure.
Você sempre deve configurar a implantação contínua para um slot de preparo e não para o slot de produção. Quando você usa o slot de produção, as atualizações de código são enviadas diretamente para a produção sem serem verificadas no Azure. Em vez disso, habilite a implantação contínua em um slot de preparo, verifique as atualizações no slot de preparo e, depois que tudo for executado corretamente, você poderá trocar o código do slot de preparo para o de produção. Se você se conectar a um slot de produção, certifique-se de que somente o código com qualidade de produção seja inserido no branch de código integrado.
As etapas neste artigo mostram como configurar implantações de código contínuo para seu aplicativo de funções no Azure usando o Centro de Implantação no portal do Azure. Você também pode configurar a integração contínua usando a CLI do Azure. Essas etapas podem ter como alvo um slot de preparação ou de produção.
O Functions dá suporte a essas fontes para implantação contínua em seu aplicativo:
Mantenha o código do projeto no Azure Repos, um dos serviços no Azure DevOps. Dá suporte ao Controle de Versão do Git e do Team Foundation. Usado com o provedor de compilação do Azure Pipelines. Para obter mais informações, consulte O que é o Azure Repos?
Você também pode conectar seu aplicativo de funções a um repositório Git externo, mas isso requer uma sincronização manual. Para obter mais informações sobre opções de implantação, consulte Tecnologias de implantação no Azure Functions.
Observação
As opções de implantação contínua abordadas neste artigo são específicas para implantações somente código. Para implantações de aplicativo de funções em contêineres, consulte Habilitar a implantação contínua de contêineres no Azure.
Requisitos
A unidade de implantação para funções no Azure é o aplicativo de funções. Para que a implantação contínua seja bem-sucedida, a estrutura de diretórios do seu projeto deve ser compatível com a estrutura básica de pastas que o Azure Functions espera. Quando você cria seu projeto de código usando o Azure Functions Core Tools, o Visual Studio Code ou o Visual Studio, os modelos do Azure Functions são usados para criar projetos de código com a estrutura de diretório correta. Todas as funções em um aplicativo de funções são implantadas ao mesmo tempo e no mesmo pacote.
Depois de habilitar a implantação contínua, o acesso ao código de função no portal do Azure é configurado como somente leitura porque a fonte da verdade é conhecida por residir em outro lugar.
Observação
O Centro de Implantação não dá suporte para a ativação da implantação contínua para um aplicativo de função com restrições de rede de entrada. Em vez disso, você precisa configurar o fluxo de trabalho do provedor de compilação diretamente no GitHub ou no Azure Pipelines. Esses fluxos de trabalho também exigem que você use uma máquina virtual na mesma rede virtual que o aplicativo de função como um agente auto-hospedado (Pipelines) ou um executor auto-hospedado (GitHub).
Selecione um provedor de compilação
A criação do projeto de código faz parte do processo de implantação. O processo de build específico depende da pilha de idiomas, do sistema operacional e do plano de hospedagem específicos. Os builds podem ser feitos local ou remotamente, novamente dependendo de sua hospedagem específica. Para obter mais informações, consulte Compilação Remota.
Importante
Para aumentar a segurança, considere usar um provedor de compilação que dê suporte a identidades gerenciadas, incluindo o Azure Pipelines e o GitHub Actions. O Serviço de Aplicativo do Azure (Kudu) exige que você habilite a autenticação básica e trabalhe com credenciais baseadas em texto.
O Functions dá suporte a esses provedores de build:
O Azure Pipelines é um dos serviços no Azure DevOps e o provedor de build padrão para projetos do Azure Repos. Você também pode usar Pipelines para criar projetos do GitHub. No Pipelines, há uma tarefa AzureFunctionApp
projetada especificamente para implantação no Azure Functions. Essa tarefa fornece controle sobre como o projeto é compilado, empacotado e implantado. Dá suporte a identidades gerenciadas.
Tenha em mente os pontos fortes e as limitações desses provedores ao habilitar a integração do controle do código-fonte. Talvez seja necessário alterar o tipo de origem do repositório para aproveitar um provedor específico.
configurar uma implantação contínua
O portal do Azure fornece um Centro de Implantação para seus aplicativos de funções, o que facilita a configuração da implantação contínua. A maneira específica de configurar a implantação contínua depende do tipo de repositório de controle do código-fonte no qual o seu código reside e do provedor de compilação que você escolher.
No portal do Azure, navegue até a página do aplicativo de funções e selecione Centro de Implantação em implantação no painel esquerdo.
Selecione o tipo de repositório de origem em que o código do projeto está sendo mantido de uma destas opções com suporte:
As implantações do Azure Repos que usam o Azure Pipelines são definidas no portal do Azure DevOps e não no aplicativo de funções. Para obter um guia passo a passo para criar uma implantação baseada em Pipelines do Azure Repos, consulte Entrega contínua com o Azure Pipelines.
Após a conclusão da implantação, todo o código da fonte especificada será implantado em seu aplicativo. Nesse momento, é disparada uma implantação das alterações da fonte da implantação em seu aplicativo de funções no Azure.
Habilitar a implantação contínua durante a criação do aplicativo
Atualmente, você pode configurar a implantação contínua do GitHub usando as GitHub Actions ao criar seu aplicativo de função no portal do Azure. Você pode fazer isso na guia Implantação na página Criar aplicativo de função.
Se você quiser usar uma fonte de implantação ou um provedor de compilação diferente para integração contínua, primeiro crie seu aplicativo de função e, em seguida, retorne ao portal e configure a integração contínua no Centro de Implantação.
Habilitar autenticação básica para implantações
Em alguns casos, seu aplicativo de função é criado com o acesso de autenticação básica ao ponto de extremidade scm
desabilitado. Isso bloqueia a publicação por todos os métodos que não podem usar identidades gerenciadas para acessar o ponto de extremidade scm
. Os impactos de publicação de ter o ponto de extremidade scm
desabilitado são detalhados em Implantação sem autenticação básica.
Importante
Quando você usa a autenticação básica, as credenciais são enviadas em texto não criptografado. Para proteger essas credenciais, você só deve acessar o ponto de extremidade scm
por meio de uma conexão criptografada (HTTPS) ao usar a autenticação básica. Para obter mais informações, consulte Implantação segura.
Para habilitar a autenticação básica para o ponto de extremidade scm
:
No portal do Azure, navegue até o aplicativo de funções.
No menu à esquerda do aplicativo, selecione Configurações>Configuração>Configurações gerais.
Defina SCM Basic Auth Publishing Credentials como On e selecione Save.