Implantação contínua para Azure Functions

É possível usar o Azure Functions para implantar seu código continuamente usando a integração do controle do código-fonte. A integração do controle do código-fonte permite um fluxo de trabalho no qual uma atualização de código dispara o build, o empacotamento e a implantação do projeto para o Azure.

A implantação contínua é uma ótima opção para projetos nos quais diversas contribuições frequentes são integradas. Ao usar a implantação contínua, você mantém uma única fonte de verdade para seu código, o que permite que as equipes colaborem com facilidade.

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.

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

Para que a implantação contínua seja bem-sucedida, sua estrutura de diretório deve ser compatível com a estrutura de pastas básica esperada pelo Azure Functions.

O código para todas as funções em um aplicativo de funções específico está localizado em uma pasta do projeto raiz que contém um arquivo de configuração do host. O arquivo host.json contém configurações específicas de runtime, além de estar na pasta raiz do aplicativo de funções. Uma pasta bin contém pacotes e outros arquivos de biblioteca que o aplicativo de funções requer. As estruturas de pastas específicas exigidas pelo aplicativo de funções dependem da linguagem:

Todas as funções no aplicativo de função devem compartilhar a mesma pilha de linguagem.

Criar provedores

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.

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.

Suas opções para quais desses provedores de build você pode usar dependem da fonte de implantação de código específica.

Centro de implantação

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 de configurar a implantação contínua depende do controle de origem específico no qual o código reside e do provedor do build escolhido.

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.

Captura de tela do Centro de implantação do aplicativo de funções no portal do Azure em que você escolhe seu repositório de origem.

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.

Considerações

Você deve ter essas considerações em mente ao planejar uma estratégia de implantação contínua:

  • O GitHub é a única fonte que atualmente dá suporte à implantação contínua para aplicativos Linux em execução em um plano de consumo, que é uma opção de hospedagem popular para aplicativos Python.

  • A unidade de implantação para funções no Azure é o aplicativo de funções. 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.

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

  • O Centro de Implantação não dá suporte à habilitação da implantação contínua para um aplicativo de funções com restrições de rede de entrada. Em vez disso, você precisa configurar o fluxo de trabalho do provedor de build 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).

Implantação contínua durante a criação de aplicativos

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

Por padrão, 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:

  1. No portal do Azure, navegue até o aplicativo de funções.

  2. No menu à esquerda do aplicativo, selecione Configuração>Configurações gerais.

  3. Defina SCM Basic Auth Publishing Credentials como On e selecione Save.

Próximas etapas