Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Functions permite que você implante continuamente alterações de um repositório de controle de código-fonte para um aplicativo de função. Nesse fluxo de trabalho, uma atualização de código aciona a construção, o empacotamento e a implantação do seu projeto no Azure. Os provedores de implantação suportados e as estratégias de lançamento dependem do plano de hospedagem.
| Plano de hospedagem | Fornecedor recomendado de CI/CD | Orientação de implantação e lançamento |
|---|---|---|
| Consumo Flexível | GitHub Actions ou Azure Pipelines | Usa implantação de pacotes. Os slots de implantação não são suportados. Use controles de lançamento do CI/CD e considere atualizações progressivas para implantações sem tempo de inatividade. |
| Elástico Premium, Dedicado e Consumo | GitHub Actions ou Azure Pipelines | Usa implantação por ZIP. Quando for suportado pelo seu app, implante em um slot de preparo, valide a atualização e então coloque o slot em produção. |
| Aplicativos de Contêiner do Azure | Fluxo de trabalho de construção e implantação de contêineres | Lança uma imagem de contêiner. Para obter mais informações, consulte a visão geral do Azure Functions nos Aplicativos de Contêiner do Azure. |
Selecione seu plano de hospedagem no topo deste artigo para visualizar as orientações de implantação contínua que se aplicam ao seu aplicativo de funções.
Para planos de hospedagem que oferecem suporte a slots de implantação, configure a implantação contínua para um slot de preparo em vez do slot de produção. Verifique as atualizações no ambiente de preparo e depois substitua o slot de preparo pelo de produção. Se você se conectar diretamente a um slot de produção, certifique-se de que apenas código de qualidade de produção chegue ao branch integrado.
Para consumo flexível, configure GitHub Actions ou Azure Pipelines. Como o Flex Consumption não suporta slots de implantação, mantenha seu histórico de implantação no controle de versão e no sistema CI/CD para que você possa se recuperar de uma implantação ruim.
Para Funções no Aplicativos de Contêiner do Azure, construa e implante uma imagem de container. Os slots de implantação não estão disponíveis. Use revisões e considere uma estratégia de implantação azul-verde para lançamentos sem tempo de inatividade.
As etapas da Central de Implantação neste artigo se aplicam a aplicativos de função que dão suporte à integração de controle do código-fonte do App Service. No plano Consumption, essa integração é suportada apenas no Windows. Você também pode configurar a integração com controle de versão usando o CLI do Azure.
O Azure 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 essa opção exige 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 saber mais sobre o Azure Functions no Aplicativos de Contêiner do Azure, veja Visão geral do Azure Functions no Aplicativos de Contêiner do Azure. Para um container personalizado hospedado pelo Azure Functions em um plano Premium ou Dedicado, veja a seção Permitir a implantação contínua de containers no Azure em Work with containers and Azure Functions.
O Flex Consumption suporta implantação contínua a partir do Azure Repos usando o Azure Pipelines e do GitHub usando o GitHub Actions. A integração com controle de origem de Serviço de Aplicativo, incluindo implantações do Bitbucket e do Git local, não é suportada.
Para Funções no Aplicativos de Contêiner do Azure, mantenha seu código-fonte no seu repositório preferido e use um fluxo de trabalho CI/CD para construir e enviar uma imagem de container. Depois, atualize seu aplicativo de funções para usar a nova imagem. Para mais informações, veja Implantação e configuração para Funções no Aplicativos de Contêiner do 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 Azure Functions Core Tools, Visual Studio Code ou Visual Studio, os templates do Azure Functions criam projetos de código com a estrutura de diretórios correta. Você implanta todas as funções em um aplicativo de funções ao mesmo tempo e no mesmo pacote.
Depois de habilitar a implantação contínua, o acesso ao código da função no portal do Azure é configurado como somente leitura porque a fonte confiável está 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, configure o fluxo de trabalho do provedor de compilação diretamente no GitHub ou no Azure Pipelines. O executor ou agente deve ser capaz de acessar o endpoint de implantação do aplicativo de acordo com as restrições de acesso configuradas. Quando o endpoint é privado, o runner ou agente também precisa de resolução DNS privada. Para Azure Pipelines, use um agente autohospedado em uma rede conectada ou um pool gerenciado de agentes DevOps com rede. Para GitHub Actions, use um runner autohospedado em uma rede conectada ou um runner hospedado no GitHub com rede privada do Azure.
Quando seu app de função tem restrições de rede de entrada, o executor ou agente do workflow deve conseguir acessar o endpoint de implantação do app sob as restrições de acesso configuradas. Quando o endpoint é privado, o runner ou agente também precisa de resolução DNS privada. Para Azure Pipelines, use um agente autohospedado em uma rede conectada ou um pool gerenciado de agentes DevOps com rede. Para GitHub Actions, use um runner autohospedado em uma rede conectada ou um runner hospedado no GitHub com rede privada do Azure.
Seu fluxo de trabalho CI/CD deve construir uma imagem válida do Azure Functions container, enviar a imagem para um registro que seu app de contêiner possa acessar e atualizar o function app para criar uma revisão a partir dessa imagem. Para mais informações, veja Criar um aplicativo de função no Aplicativos de Contêiner do Azure.
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. Você pode construir localmente ou remotamente, dependendo do seu local de hospedagem. Para obter mais informações, consulte Compilação Remota.
Importante
Para maior segurança, use um provedor de compilação que suporte identidades gerenciadas, como Azure Pipelines e GitHub Actions. O serviço de build do App Service exige que você ative a autenticação básica e use credenciais baseadas em texto.
O Azure 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 o Azure Pipelines para criar projetos do GitHub. No Azure Pipelines, há uma AzureFunctionApp tarefa projetada especificamente para implantação no Azure Functions. Essa tarefa fornece controle sobre como o projeto é compilado, empacotado e implantado. O Azure Pipelines 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.
Use o Azure Pipelines ou o GitHub Actions para construir e implantar seu projeto. Esses provedores suportam identidades Microsoft Entra e utilizam o processo de implantação do pacote Flex Consumption.
- Para Azure Repos, use Azure Pipelines.
- Para GitHub, use GitHub Actions.
O serviço de build de App Service não se aplica ao Flex Consumption.
Use um provedor de compilação de contêineres que possa criar sua imagem do Azure Functions, enviá-la para um registro de contêineres e atualizar seu aplicativo de funções para criar uma revisão com base na nova imagem. Para um fluxo de trabalho GitHub Actions de ponta a ponta, veja Deploy to Aplicativos de Contêiner do Azure with GitHub Actions.
configurar uma implantação contínua
O portal Azure oferece um Centro de Implantação para seus aplicativos de função, 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 o 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:
Defina implantações a partir do Azure Repos que utilizam Azure Pipelines no portal Azure DevOps. Não defina essas implantações a partir do seu aplicativo de funções. Para um guia passo a passo para criar uma implantação baseada em Azure Pipelines a partir do Azure Repos, veja Entrega contínua com Azure Pipelines.
Após o término da implantação, o serviço implanta todo o código da fonte especificada para o seu app. Nesse momento, é disparada uma implantação das alterações da fonte da implantação em seu aplicativo de funções no Azure.
Configure a implantação contínua no seu repositório usando um destes provedores:
Cada execução bem-sucedida de fluxo de trabalho lança um novo pacote de aplicação. A integração do Deployment Center com o controle de código-fonte não está disponível no Flex Consumption.
Configure seu fluxo de trabalho de CI/CD para construir e enviar a imagem do container, e então implante a imagem no seu app de funções. Cada atualização de imagem cria uma revisão do Container Apps. Para mais informações, veja Deploy to Aplicativos de Contêiner do Azure with GitHub Actions.
Habilitar a implantação contínua durante a criação do aplicativo
Quando você cria um aplicativo de funções no portal do Azure, pode configurar a implantação contínua a partir do GitHub usando o GitHub Actions. Configure o GitHub Actions na aba Deployment da página Criar Aplicativo de Funções.
Para usar uma fonte de implantação diferente ou um provedor de build para integração contínua, primeiro crie seu aplicativo de funções. Depois, retorne ao portal e configure a integração contínua no Centro de Implantação.
Para Azure Pipelines, primeiro crie seu aplicativo de funções e depois configure o pipeline no Azure DevOps.
Crie o aplicativo de funções a partir de uma imagem de contêiner e então configure seu fluxo de trabalho de CI/CD para publicar imagens atualizadas e criar revisões. Para mais informações, veja Criar um aplicativo de função no Aplicativos de Contêiner do Azure.
Habilitar autenticação básica para implantações
Esta seção se aplica apenas a métodos de implantação que utilizam o endpoint de implantação do App Service.
Em alguns casos, seu aplicativo de funções é criado com o acesso básico de autenticação ao endpoint de implantação desativado. Essa condição bloqueia a publicação por todos os métodos que não podem usar identidades do Microsoft Entra para acessar o endpoint de implantação. Os impactos na publicação da desabilitação da autenticação básica para o endpoint de implantação são detalhados em Implantar 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 endpoint de implantação por meio de uma conexão criptografada (HTTPS) ao usar autenticação básica. Para obter mais informações, consulte Implantação segura.
Para habilitar a autenticação básica para o endpoint de implantação:
No portal do Azure, acesse seu aplicativo de funções.
No menu esquerdo do aplicativo, selecione Configurações>Configuração>Geral.
Defina as credenciais básicas de publicação de autenticação do SCM como Ativadas e, em seguida, selecione Salvar.
A autenticação básica SCM não se aplica a implantações de pacotes Flex Consumption. Por padrão, o Azure Pipelines usa um token de portador do Microsoft Entra proveniente da conexão de serviço do Azure exigida; a federação de identidade de carga de trabalho é recomendada. Para GitHub Actions, use a autenticação recomendada com OpenID Connect (OIDC). Esses métodos evitam a publicação de credenciais SCM e são mais seguros do que a autenticação básica.
Essa configuração básica de autenticação não se aplica a Funções no Aplicativos de Contêiner do Azure. Configure a autenticação entre seu provedor de CI/CD, o registro de contêiner e o aplicativo de contêiner em vez disso.