Implementação contínua para Funções do Azure
O Azure Functions permite que você implante continuamente as alterações feitas em um repositório de controle de origem em um aplicativo de função conectado. Essa integração de controle de origem permite 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.
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. Se você se conectar a um slot de produção, certifique-se de que apenas o código de qualidade de produção seja incluído na ramificação de código integrado.
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. Essas etapas podem ter como alvo um preparo ou um slot de produção.
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
A unidade de implantação para funções no Azure é o aplicativo de função. 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 esperada pelo Azure Functions. Quando você cria seu projeto de código usando as Ferramentas Principais do Azure Functions, 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órios correta. 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.
Nota
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).
Selecione um provedor de compilação
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.
Importante
Para aumentar a segurança, considere usar um provedor de compilação que ofereça suporte a identidades gerenciadas, incluindo Pipelines do Azure e Ações do GitHub. O serviço Serviço de Aplicativo (Kudu) exige que você habilite a autenticação básica e trabalhe com credenciais baseadas em texto.
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. Suporta 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 a implementação contínua
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 específica como você configura a implantação contínua depende do tipo de repositório de controle do código-fonte 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.
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.
Habilite a 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
Em alguns casos, 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 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 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:
No portal do Azure, navegue até seu aplicativo de função.
No menu esquerdo do aplicativo, selecione Configurações>Configurações>Gerais.
Defina SCM Basic Auth Publishing Credentials como Ativado e selecione Salvar.