Implementação contínua para Funções do Azure

Você pode usar o Azure Functions para implantar seu código continuamente usando a integração de controle do código-fonte. A integração do controle do código-fonte habilita um fluxo de trabalho no qual uma atualização de código aciona a compilação, o empacotamento e a implantação do seu projeto para o Azure.

A implantação contínua é uma boa opção para projetos em que você integra contribuições múltiplas e frequentes. 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 facilmente.

As etapas neste artigo mostram como configurar implantações de código contínuo para seu aplicativo de função 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 oferece suporte a estas fontes para implantação contínua em seu aplicativo:

Mantenha o código do seu projeto no Azure Repos, um dos serviços no Azure DevOps. Suporta 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ção 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.

Nota

As opções de implantação contínua abordadas neste artigo são específicas para implantações somente de código. Para implantações de aplicativos de função 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órios deve ser compatível com a estrutura básica de pastas esperada pelo Azure Functions.

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

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

Criar fornecedores

A criação de seu projeto de código faz parte do processo de implantação. O processo de compilação específico depende da sua pilha de idiomas, sistema operacional e plano de hospedagem específicos. As compilações podem ser feitas local ou remotamente, novamente dependendo da sua hospedagem específica. Para obter mais informações, consulte Compilação remota.

O Functions suporta estes fornecedores de compilação:

O Azure Pipelines é um dos serviços no Azure DevOps e o provedor de compilação padrão para projetos do Azure Repos. Você também pode usar Pipelines para criar projetos a partir do GitHub. No Pipelines, há uma AzureFunctionApp tarefa projetada especificamente para implantação no Azure Functions. Esta tarefa fornece controle sobre como o projeto é criado, empacotado e implantado.

Suas opções para quais desses provedores de compilação 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 Implementação para as suas aplicações funcionais, o que facilita a configuração da implementação contínua. A maneira como você configura a implantação contínua depende do controle de origem específico no qual seu código reside e do provedor de compilação escolhido.

No portal do Azure, navegue até a página do aplicativo de função e selecione Centro de Implantação em Implantação no painel esquerdo.

Captura de ecrã do centro de implementação da aplicação Function no portal do Azure onde escolhe o repositório de origem.

Selecione o tipo de repositório de origem onde o código do projeto está sendo mantido a partir de uma destas opções suportadas:

As implantações do Azure Repos que usam o Azure Pipelines são definidas no portal do Azure DevOps e não do seu aplicativo de função. Para obter um guia passo a passo para criar uma implantação baseada em Pipelines a partir do Azure Repos, consulte Entrega contínua com Pipelines do Azure.

Após a conclusão da implantação, todo o código da fonte especificada é implantado em seu aplicativo. Nesse ponto, as alterações na fonte de implantação acionam uma implantação dessas alterações em seu aplicativo de função no Azure.

Considerações

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

  • O GitHub é a única fonte que atualmente suporta a implantação contínua para aplicativos Linux executados 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ção. Todas as funções em um aplicativo de função 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 a produção.

  • O Centro de Implantação não oferece suporte à habilitaçã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 corredor auto-hospedado (GitHub).

Implantação contínua durante a criação do aplicativo

Atualmente, você pode configurar a implantação contínua do GitHub usando as Ações do GitHub 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 diferente ou um provedor de compilação 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 a autenticação básica para implantações

Por padrão, seu aplicativo de função é criado com o scm acesso de autenticação básica ao ponto de extremidade desativado. Isso bloqueia a publicação por todos os métodos que não podem usar identidades gerenciadas para acessar o scm ponto de extremidade. Os impactos de publicação de ter o ponto de extremidade desabilitado scm são detalhados em Implantação sem autenticação básica.

Importante

Quando você usa 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 por meio de uma conexão criptografada (HTTPS) ao usar a scm autenticação básica. Para obter mais informações, consulte Implantação segura.

Para habilitar a scm autenticação básica no ponto de extremidade:

  1. No portal do Azure, navegue até seu aplicativo de função.

  2. No menu esquerdo do aplicativo, selecione Configurações>gerais.

  3. Defina SCM Basic Auth Publishing Credentials como Ativado e selecione Salvar.

Próximos passos