Tecnologias de implantação em Funções do Azure

Você pode usar algumas tecnologias diferentes para implementar o seu Funções do Azure código de projeto para Azure. Este artigo fornece uma visão geral dos métodos de implementação disponíveis para si e recomendações para o melhor método a utilizar em vários cenários. Fornece também uma lista exaustiva de detalhes e detalhes fundamentais sobre as tecnologias de implantação subjacentes.

Métodos de implantação

A tecnologia de implementação que utiliza para publicar código para a Azure é geralmente determinada pela forma como publica a sua aplicação. O método de implantação adequado é determinado por necessidades específicas e pelo ponto no ciclo de desenvolvimento. Por exemplo, durante o desenvolvimento e teste pode ser implantado diretamente a partir da sua ferramenta de desenvolvimento, como o Código do Estúdio Visual. Quando a sua aplicação está em produção, é mais provável que publique continuamente a partir do controlo de origem ou utilizando um pipeline de publicação automatizado, que inclui validação e testes adicionais.

A tabela seguinte descreve os métodos de implantação disponíveis para o seu projeto Function.

Tipo de implantação Métodos Melhor para...
Baseado em ferramentas Publicação visual do Código estúdio
Publicação do Estúdio Visual
Publicação de Ferramentas Centrais
Implantações durante o desenvolvimento e outras implementações ad hoc. As implementações são geridas localmente pela ferramenta.
gerido Serviço de Aplicações Centro de Implantação (CI/CD)
Implantações de contentores
Implantação contínua (CI/CD) do controlo de origem ou de um registo de contentores. As implementações são geridas pela plataforma Serviço de Aplicações (Kudu).
Gasodutos externos Gasodutos Azure
GitHub Actions
Os oleodutos de produção e DevOps que incluem validação adicional, testes e outras ações são executados como parte de uma implementação automatizada. As implementações são geridas pelo oleoduto.

Embora as implementações específicas de funções utilizem a melhor tecnologia com base no seu contexto, a maioria dos métodos de implementação baseia-se na implementação de zip.

Disponibilidade de tecnologia de implantação

Funções do Azure suporta o desenvolvimento local de plataformas cruzadas e hospedagem no Windows e Linux. Atualmente, três planos de hospedagem estão disponíveis:

Cada plano tem comportamentos diferentes. Nem todas as tecnologias de implantação estão disponíveis para cada sabor de Funções do Azure. O gráfico que se segue mostra quais as tecnologias de implantação suportadas para cada combinação de sistema operativo e plano de hospedagem:

Tecnologia de implantação Consumo de Janelas Windows Premium Windows Dedicado Consumo de Linux Linux Premium Linux Dedicado
Pacote externo URL1
Implantação zip
Recipiente de estivador
Web Deploy
Controlo de código fonte
Git local1
Sincronização denuvem 1
FTP1
Edição de portal 2 2

1 Tecnologia de implantação que requer sincronização manual do gatilho. 2 A edição do portal está ativada apenas para desativações HTTP e Timer para Funções no Linux utilizando planos Premium e Dedicados.

Conceitos-chave

Alguns conceitos-chave são cruciais para entender como as implementações funcionam em Funções do Azure.

Sincronização do gatilho

Quando alterar qualquer um dos seus gatilhos, a infraestrutura de Funções deve estar ciente das alterações. A sincronização acontece automaticamente para muitas tecnologias de implantação. No entanto, em alguns casos, deve sincronizar manualmente os seus gatilhos. Quando implementar as suas atualizações fazendo referência a um URL de pacote externo, git local, sincronização de nuvem ou FTP, tem de sincronizar manualmente os seus gatilhos. Pode sincronizar os gatilhos de uma de três maneiras:

  • Reinicie a aplicação de função no portal do Azure.
  • Envie um pedido HTTP POST para https://{functionappname}.azurewebsites.net/admin/host/synctriggers?code=<API_KEY> utilizar a chave master.
  • Envie um pedido HTTP POST para https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.Web/sites/<FUNCTION_APP_NAME>/syncfunctiontriggers?api-version=2016-08-01. Substitua os espaços reservados pelo ID de subscrição, nome do grupo de recursos e o nome da sua aplicação de função.

Quando implementa usando um URL de pacote externo e o conteúdo da alteração do pacote, mas o URL em si não muda, precisa reiniciar manualmente a sua aplicação de função para sincronizar totalmente as suas atualizações.

Construção remota

Funções do Azure pode executar automaticamente as construções no código que recebe após as implementações de zip. Estas construções comportam-se de forma ligeiramente diferente, dependendo se a sua aplicação está a funcionar no Windows ou linux. As construções remotas não são executadas quando uma aplicação foi previamente definida para ser executada no modo Run From Package . Para aprender a usar a construção remota, navegue para implementar zip.

Nota

Se está a ter problemas com a construção remota, pode ser porque a sua app foi criada antes da funcionalidade ser disponibilizada (1 de agosto de 2019). Tente criar uma nova aplicação de função ou correr az functionapp update -g <RESOURCE_GROUP_NAME> -n <APP_NAME> para atualizar a sua aplicação de função. Este comando pode levar duas tentativas para ter sucesso.

Construção remota no Windows

Todas as aplicações de função em execução no Windows têm uma pequena aplicação de gestão, o site SCM (ou Kudu). Este site lida com grande parte da implementação e constrói lógica para Funções do Azure.

Quando uma aplicação é implantada no Windows, são executados comandos específicos do idioma, como dotnet restore (C#) ou npm install (JavaScript).

Construção remota em Linux

Para permitir a construção remota no Linux, devem ser definidas as seguintes definições de aplicação :

  • ENABLE_ORYX_BUILD=true
  • SCM_DO_BUILD_DURING_DEPLOYMENT=true

Por predefinição, tanto Funções do Azure Core Tools como a extensão Funções do Azure para Código do Estúdio Visual executam construções remotas ao implementar em Linux. Por isso, ambas as ferramentas criam automaticamente estas definições para si em Azure.

Quando as aplicações são construídas remotamente no Linux, elas funcionam a partir do pacote de implementação.

Plano de consumo

As aplicações de função Linux que funcionam no plano de Consumo não têm um site SCM/Kudu, o que limita as opções de implementação. No entanto, as aplicações de função no Linux em execução no plano de Consumo suportam construções remotas.

Planos dedicados e premium

As aplicações de função que funcionam no Linux no plano Dedicado (Serviço de Aplicações) e o plano Premium também têm um site SCM/Kudu limitado.

Detalhes da tecnologia de implantação

Os seguintes métodos de implantação estão disponíveis em Funções do Azure.

URL de pacote externo

Pode utilizar um URL de pacote externo para fazer referência a um ficheiro de pacote remoto (.zip) que contém a sua aplicação de função. O ficheiro é descarregado a partir do URL fornecido, e a aplicação é executada no modo Run From Package .

Como usá-lo: Adicione WEBSITE_RUN_FROM_PACKAGE às definições da sua aplicação. O valor desta definição deve ser um URL (a localização do ficheiro de pacote específico que pretende executar). Pode adicionar definições no portal ou utilizando o CLI Azure.

Se utilizar o armazenamento Azure Blob, utilize um recipiente privado com uma assinatura de acesso partilhado (SAS) para dar às Funções acesso ao pacote. Sempre que a aplicação recomeça, recolhe uma cópia do conteúdo. A sua referência deve ser válida para o período de vida da aplicação.

Quando usá-lo: O URL de pacote externo é o único método de implementação suportado para Funções do Azure em funcionamento no Linux no plano de Consumo, se o utilizador não quiser que ocorra uma construção remota. Quando atualizar o ficheiro de pacote que uma aplicação de função faz referência, tem de sincronizar manualmente os gatilhos para dizer ao Azure que a sua aplicação foi alterada. Quando alterar o conteúdo do ficheiro do pacote e não o próprio URL, também deve reiniciar manualmente a sua aplicação de função.

Implantação zip

Utilize o zip implementar para empurrar um ficheiro .zip que contenha a sua aplicação de função para Azure. Opcionalmente, pode definir a sua aplicação para começar a correr a partir do pacote, ou especificar que ocorre uma construção remota .

Como usá-lo: Implemente utilizando a sua ferramenta cliente favorita: Visual Studio Code, Visual Studio ou da linha de comando utilizando as Funções do Azure Core Tools. Por predefinição, estas ferramentas utilizam a implementação de zíper e funcionam a partir da embalagem. As Ferramentas Core e a extensão visual Studio Code permitem a construção remota ao implementar em Linux. Para implementar manualmente um ficheiro .zip na sua aplicação de função, siga as instruções em Implementar a partir de um ficheiro de .zip ou URL.

Quando implementar utilizando o zip, pode definir a sua aplicação para funcionar a partir da embalagem. Para correr a partir da embalagem, defina o valor de definição da WEBSITE_RUN_FROM_PACKAGE aplicação para 1. Recomendamos a colocação de zíper. Produz tempos de carregamento mais rápidos para as suas aplicações, e é o padrão para VS Code, Visual Studio e o Azure CLI.

Quando usá-lo: A implementação de zíper é a tecnologia de implantação recomendada para Funções do Azure.

Recipiente de estivador

Pode implantar uma imagem de recipiente Linux que contém a sua aplicação de função.

Como usá-lo: Crie uma aplicação de função Linux no plano Premium ou Dedicado e especifique qual a imagem do recipiente a executar. Pode fazê-lo de duas formas:

  • Crie uma aplicação de função Linux num plano Serviço de Aplicações do Azure no portal do Azure. Para publicar, selecione Docker Image e, em seguida, configuure o recipiente. Entre no local onde a imagem está hospedada.
  • Crie uma aplicação de função Linux num plano Serviço de Aplicações utilizando o Azure CLI. Para aprender como, consulte Criar uma função no Linux utilizando uma imagem personalizada.

Para implantar num cluster Kubernetes como um recipiente personalizado, em Funções do Azure Core Tools, utilize o func kubernetes deploy comando.

Quando usá-lo: Utilize a opção do recipiente Docker quando precisar de mais controlo sobre o ambiente Linux onde a sua aplicação de função funciona. Este mecanismo de implantação está disponível apenas para funções em funcionamento no Linux.

Implementação web (MSDeploy)

Implementar pacotes web e implementar as suas aplicações Windows em qualquer servidor IIS, incluindo as suas aplicações de função em execução no Windows em Azure.

Como usá-lo: Utilize ferramentas do Estúdio Visual para Funções do Azure. Limpe a caixa de verificação do ficheiro de embalagem (recomendado).

Também pode baixar Web Deploy 3.6 e ligar MSDeploy.exe diretamente.

Quando usá-lo: O Web Deploy é suportado e não tem problemas, mas o mecanismo preferido é o funcionais com o Run From Package ativado. Para saber mais, consulte o guia de desenvolvimento do Estúdio Visual.

Controlo de código fonte

Utilize o controlo de origem para ligar a sua aplicação de função a um repositório Git. Uma atualização para codificar nesse repositório desencadeia a implantação. Para mais informações, consulte o Kudu Wiki.

Como usá-lo: Utilize o Centro de Implantação na área de Funções do portal para configurar a publicação a partir do controlo de origem. Para obter mais informações, consulte a implementação contínua para Funções do Azure.

Quando usá-lo: A utilização do controlo de fontes é a melhor prática para as equipas que colaboram nas suas aplicações de função. O controlo de origem é uma boa opção de implantação que permite oleodutos de implantação mais sofisticados.

Git Local

Pode utilizar o Git local para empurrar o código da sua máquina local para Funções do Azure utilizando o Git.

Como usá-lo: Siga as instruções da colocação local de Git para Serviço de Aplicações do Azure.

Quando usá-lo: Em geral, recomendamos que utilize um método de implantação diferente. Quando publicares do Git local, tens de sincronizar manualmente os gatilhos.

Sincronização em nuvem

Utilize sincronização de nuvem para sincronizar o seu conteúdo do Dropbox e do OneDrive para Funções do Azure.

Como usá-lo: Siga as instruções em Sync conteúdo de uma pasta de nuvem.

Quando usá-lo: Em geral, recomendamos outros métodos de implantação. Quando publicar utilizando sincronização de nuvem, tem de sincronizar manualmente os gatilhos.

FTP

Pode utilizar o FTP para transferir diretamente ficheiros para Funções do Azure.

Como usá-lo: Siga as instruções no Conteúdo de Implantação utilizando FTP/s.

Quando usá-lo: Em geral, recomendamos outros métodos de implantação. Quando publicar utilizando FTP, deve sincronizar manualmente os gatilhos.

Edição de portal

No editor baseado no portal, pode editar diretamente os ficheiros que estão na sua aplicação de função (essencialmente implantando cada vez que guarda as suas alterações).

Como usá-lo: Para poder editar as suas funções no portal do Azure, deve ter criado as suas funções no portal. Para preservar uma única fonte de verdade, a utilização de qualquer outro método de implantação torna a sua função apenas lida e impede a edição contínua do portal. Para voltar a um estado em que pode editar os seus ficheiros no portal do Azure, pode voltar a ligar manualmente o modo de edição e remover quaisquer definições de aplicação relacionadas com a Read/Write implementação (como WEBSITE_RUN_FROM_PACKAGE.

Quando usá-lo: O portal é uma boa maneira de começar com Funções do Azure. Para um trabalho de desenvolvimento mais intenso, recomendamos que utilize uma das seguintes ferramentas de cliente:

A tabela a seguir mostra os sistemas operativos e os idiomas que suportam a edição do portal:

Linguagem Consumo de Janelas Windows Premium Windows Dedicado Consumo de Linux Linux Premium Linux Dedicado
C#
C# Script * *
F#
Java
JavaScript (Node.js) * *
Python
PowerShell
TypeScript (Node.js)

* A edição do portal é ativada apenas para desativações HTTP e Timer para funções no Linux utilizando planos Premium e Dedicados.

Comportamentos de implantação

Quando implementa atualizações para o código da aplicação da sua função, as funções atualmente executadas são terminadas. Após a implementação concluída, o novo código é carregado para iniciar pedidos de processamento. Por favor, reveja A melhoria do desempenho e fiabilidade da Funções do Azure para aprender a escrever funções apátridas e defensivas.

Se precisar de mais controlo sobre esta transição, deve utilizar slots de implantação.

Blocos de implementação

Quando implementar a sua aplicação de função para Azure, pode ser implantada numa ranhura de implantação separada em vez de diretamente para a produção. Para obter mais informações sobre slots de implementação, consulte a documentação Funções do Azure de slots de implementação para obter mais detalhes.

Passos seguintes

Leia estes artigos para saber mais sobre a implementação das suas aplicações de função: