Tecnologias de implantação em Funções AzureDeployment technologies in Azure Functions

Pode utilizar algumas tecnologias diferentes para implementar o seu código de projeto Funções Azure para o Azure.You can use a few different technologies to deploy your Azure Functions project code to Azure. Este artigo fornece uma lista exaustiva dessas tecnologias, descreve quais as tecnologias disponíveis para as quais os sabores das Funções, explica o que acontece quando se utiliza cada método, e fornece recomendações para o melhor método de utilização em vários cenários .This article provides an exhaustive list of those technologies, describes which technologies are available for which flavors of Functions, explains what happens when you use each method, and provides recommendations for the best method to use in various scenarios. As várias ferramentas que suportam a implantação para as Funções Azure estão sintonizadas com a tecnologia certa com base no seu contexto.The various tools that support deploying to Azure Functions are tuned to the right technology based on their context. Em geral, a implantação de zip é a tecnologia de implantação recomendada para funções Azure.In general, zip deployment is the recommended deployment technology for Azure Functions.

Disponibilidade de tecnologia de implantaçãoDeployment technology availability

A Azure Functions suporta o desenvolvimento local transversal e hospeda-se no Windows e Linux.Azure Functions supports cross-platform local development and hosting on Windows and Linux. Atualmente, estão disponíveis três planos de hospedagem:Currently, three hosting plans are available:

Cada plano tem comportamentos diferentes.Each plan has different behaviors. Nem todas as tecnologias de implementação estão disponíveis para cada sabor das Funções Azure.Not all deployment technologies are available for each flavor of Azure Functions. O gráfico seguinte mostra quais as tecnologias de implantação que são suportadas para cada combinação do sistema operativo e do plano de hospedagem:The following chart shows which deployment technologies are supported for each combination of operating system and hosting plan:

Tecnologia de implantaçãoDeployment technology Consumo de janelasWindows Consumption Windows PremiumWindows Premium Windows DedicadoWindows Dedicated Consumo de LinuxLinux Consumption Prémio LinuxLinux Premium Linux DedicadoLinux Dedicated
URL do pacote externo1External package URL1
Zip implantaçãoZip deploy
Recipiente de estivadorDocker container
Implantação webWeb Deploy
Controlo de código fonteSource control
Git1 localLocal Git1
Sincronização de nuvens1Cloud sync1
FTP1FTP1
Edição do portalPortal editing ✔ 22 ✔ 22

1 Tecnologia de implantação que requer sincronização manual do gatilho.1 Deployment technology that requires manual trigger syncing.
2 A edição do portal está ativada apenas para os gatilhos HTTP e Temporizador para Funções no Linux utilizando planos Premium e Dedicados.2 Portal editing is enabled only for HTTP and Timer triggers for Functions on Linux using Premium and Dedicated plans.

Conceitos-chaveKey concepts

Alguns conceitos-chave são fundamentais para entender como as implementações funcionam em Funções Azure.Some key concepts are critical to understanding how deployments work in Azure Functions.

Sincronização do gatilhoTrigger syncing

Quando alterar qualquer um dos seus gatilhos, a infraestrutura functiondeve estar ciente das alterações.When you change any of your triggers, the Functions infrastructure must be aware of the changes. A sincronização acontece automaticamente para muitas tecnologias de implementação.Synchronization happens automatically for many deployment technologies. No entanto, em alguns casos, deve sincronizar manualmente os seus gatilhos.However, in some cases, you must manually sync your triggers. Quando implementar as suas atualizações fazendo referência a um URL de pacote externo, Git local, sincronização em nuvem ou FTP, deve sincronizar manualmente os seus gatilhos.When you deploy your updates by referencing an external package URL, local Git, cloud sync, or FTP, you must manually sync your triggers. Pode sincronizar os gatilhos de uma de três maneiras:You can sync triggers in one of three ways:

  • Reinicie a sua aplicação de funções no portal AzureRestart your function app in the Azure portal
  • Envie um pedido HTTP POST para https://{functionappname}.azurewebsites.net/admin/host/synctriggers?code=<API_KEY> utilizando a chave principal.Send an HTTP POST request to https://{functionappname}.azurewebsites.net/admin/host/synctriggers?code=<API_KEY> using the master key.
  • 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.Send an HTTP POST request to 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 seu ID de subscrição, nome do grupo de recursos e o nome da sua aplicação de função.Replace the placeholders with your subscription ID, resource group name, and the name of your function app.

Construção remotaRemote build

As Funções Azure podem executar automaticamente as construções no código que recebe após as implementações em zip.Azure Functions can automatically perform builds on the code it receives after zip deployments. Estas construções comportam-se de forma ligeiramente diferente, dependendo se a sua aplicação está a funcionar no Windows ou no Linux.These builds behave slightly differently depending on whether your app is running on Windows or Linux. As construções remotas não são realizadas quando uma aplicação foi previamente definida para ser executada no modo Run From Package.Remote builds are not performed when an app has previously been set to run in Run From Package mode. Para aprender a usar a construção remota, navegue para o zip deploy.To learn how to use remote build, navigate to zip deploy.

Nota

Se está a ter problemas com a construção remota, pode ser porque a sua aplicação foi criada antes de a funcionalidade ter sido disponibilizada (1 de agosto de 2019).If you're having issues with remote build, it might be because your app was created before the feature was made available (August 1, 2019). Tente criar uma nova aplicação de funções ou executando az functionapp update -g <RESOURCE_GROUP_NAME> -n <APP_NAME> para atualizar a sua aplicação de funções.Try creating a new function app, or running az functionapp update -g <RESOURCE_GROUP_NAME> -n <APP_NAME> to update your function app. Este comando pode levar duas tentativas para ter sucesso.This command might take two tries to succeed.

Construção remota no WindowsRemote build on Windows

Todas as aplicações de funções que funcionam no Windows têm uma pequena aplicação de gestão, o site SCM (ou Kudu).All function apps running on Windows have a small management app, the SCM (or Kudu) site. Este site lida com grande parte da implantação e constrói lógica para funções Azure.This site handles much of the deployment and build logic for Azure Functions.

Quando uma aplicação é implementada para windows, comandosC#específicos do idioma, como dotnet restore ( ) ou npm install (JavaScript) são executados.When an app is deployed to Windows, language-specific commands, like dotnet restore (C#) or npm install (JavaScript) are run.

Construção remota em LinuxRemote build on Linux

Para permitir a construção remota do Linux, devem ser definidas as seguintes definições de aplicação:To enable remote build on Linux, the following application settings must be set:

  • ENABLE_ORYX_BUILD=true
  • SCM_DO_BUILD_DURING_DEPLOYMENT=true

Por predefinição, tanto as funções azure como a extensão de funções Azure para código de estúdio visual executam construções remotas ao ser implantados para o Linux.By default, both Azure Functions Core Tools and the Azure Functions Extension for Visual Studio Code perform remote builds when deploying to Linux. Por isso, ambas as ferramentas criam automaticamente estas definições para si no Azure.Because of this, both tools automatically create these settings for you in Azure.

Quando as aplicações são construídas remotamente no Linux, funcionam a partir do pacote de implementação.When apps are built remotely on Linux, they run from the deployment package.

Plano de consumoConsumption plan

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.Linux function apps running in the Consumption plan don't have an SCM/Kudu site, which limits the deployment options. No entanto, as aplicações de função no Linux em execução no plano de consumo suportam construções remotas.However, function apps on Linux running in the Consumption plan do support remote builds.

Planos dedicados e PremiumDedicated and Premium plans

As aplicações de função que funcionam no Linux no plano Dedicado (App Service) e o plano Premium também têm um site sCM/Kudu limitado.Function apps running on Linux in the Dedicated (App Service) plan and the Premium plan also have a limited SCM/Kudu site.

Detalhes da tecnologia de implantaçãoDeployment technology details

Os seguintes métodos de implantação estão disponíveis nas Funções Azure.The following deployment methods are available in Azure Functions.

URL de pacote externoExternal package URL

Pode utilizar um URL de pacote externo para fazer referência a um ficheiro de pacote remoto (.zip) que contenha a sua aplicação de função.You can use an external package URL to reference a remote package (.zip) file that contains your function app. O ficheiro é descarregado a partir do URL fornecido, e a aplicação é executada no modo Run From Package.The file is downloaded from the provided URL, and the app runs in Run From Package mode.

Como usá-lo: Adicione WEBSITE_RUN_FROM_PACKAGE às definições de aplicação.How to use it: Add WEBSITE_RUN_FROM_PACKAGE to your application settings. O valor desta definição deve ser um URL (a localização do ficheiro de pacote específico que pretende executar).The value of this setting should be a URL (the location of the specific package file you want to run). Pode adicionar configurações no portal ou utilizando o Azure CLI.You can add settings either in the portal or by using the Azure CLI.

Se utilizar o armazenamento Azure Blob, utilize um recipiente privado com uma assinatura de acesso partilhado (SAS) para dar acesso às Funções à embalagem.If you use Azure Blob storage, use a private container with a shared access signature (SAS) to give Functions access to the package. Sempre que a aplicação recomeça, ele vai buscar uma cópia do conteúdo.Any time the application restarts, it fetches a copy of the content. A sua referência deve ser válida para o tempo de vida da aplicação.Your reference must be valid for the lifetime of the application.

Quando usá-lo: O URL do pacote externo é o único método de implementação suportado para funções Azure em execução no Linux no plano de consumo, se o utilizador não quiser que ocorra uma construção remota.When to use it: External package URL is the only supported deployment method for Azure Functions running on Linux in the Consumption plan, if the user doesn't want a remote build to occur. Ao atualizar o ficheiro do pacote que uma aplicação de função refere, tem de sincronizar manualmente os gatilhos para dizer ao Azure que a sua aplicação mudou.When you update the package file that a function app references, you must manually sync triggers to tell Azure that your application has changed.

Zip implantaçãoZip deploy

Utilize o zip deploy para empurrar um ficheiro .zip que contenha a sua aplicação de função para o Azure.Use zip deploy to push a .zip file that contains your function app to Azure. Opcionalmente, pode configurar a sua aplicação para começar a funcionar a partir do pacote, ou especificar que ocorre uma construção remota.Optionally, you can set your app to start running from package, or specify that a remote build occurs.

Como usá-lo: Implemente utilizando a sua ferramenta cliente favorita: Visual Studio Code, Visual Studio,as Ferramentas Core funções Do Azureou o Azure CLI.How to use it: Deploy by using your favorite client tool: Visual Studio Code, Visual Studio, the Azure Functions Core Tools, or the Azure CLI. Por predefinição, estas ferramentas utilizam a implantação de zíper e funcionam a partir da embalagem.By default, these tools use zip deployment and run from package. As Ferramentas Core e a extensão do Código do Estúdio Visual permitem a construção remota ao ser implantado para o Linux.Core Tools and the Visual Studio Code extension both enable remote build when deploying to Linux. Para implementar manualmente um ficheiro .zip na sua aplicação de funções, siga as instruções de implantação a partir de um ficheiro .zip ou URL.To manually deploy a .zip file to your function app, follow the instructions in Deploy from a .zip file or URL.

Quando implementar utilizando a implementação de zip, pode definir a sua aplicação para executar a partir do pacote.When you deploy by using zip deploy, you can set your app to run from package. Para correr a partir do pacote, defina o valor de definição de aplicação WEBSITE_RUN_FROM_PACKAGE para 1.To run from package, set the WEBSITE_RUN_FROM_PACKAGE application setting value to 1. Recomendamos a implantação de zip.We recommend zip deployment. 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.It yields faster loading times for your applications, and it's the default for VS Code, Visual Studio, and the Azure CLI.

Quando usá-lo: A implantação de zip é a tecnologia de implementação recomendada para funções Azure.When to use it: Zip deploy is the recommended deployment technology for Azure Functions.

Recipiente de estivadorDocker container

Pode implantar uma imagem de recipiente Linux que contenha a sua aplicação de função.You can deploy a Linux container image that contains your function app.

Como usá-lo: Crie uma aplicação de função Linux no plano Premium ou Dedicado e especifique a imagem do recipiente a partir.How to use it: Create a Linux function app in the Premium or Dedicated plan and specify which container image to run from. Pode fazê-lo de duas formas:You can do this in two ways:

  • Crie uma aplicação de função Linux num plano de Serviço de Aplicações Azure no portal Azure.Create a Linux function app on an Azure App Service plan in the Azure portal. Para publicar, selecione Docker Imagee, em seguida, configure o recipiente.For Publish, select Docker Image, and then configure the container. Insira o local onde a imagem está hospedada.Enter the location where the image is hosted.
  • Crie uma aplicação de função Linux num plano de Serviço de Aplicações utilizando o Azure CLI.Create a Linux function app on an App Service plan by using the Azure CLI. Para saber como, consulte Criar uma função no Linux utilizando uma imagem personalizada.To learn how, see Create a function on Linux by using a custom image.

Para implantar numa aplicação existente utilizando um recipiente personalizado, em Ferramentas Core funções Azure,utilize o comando func deploy.To deploy to an existing app by using a custom container, in Azure Functions Core Tools, use the func deploy command.

Quando usá-lo: Utilize a opção de contentor Docker quando necessitar de mais controlo sobre o ambiente Linux onde funciona a sua aplicação de funções.When to use it: Use the Docker container option when you need more control over the Linux environment where your function app runs. Este mecanismo de implantação está disponível apenas para funções em funcionamento no Linux.This deployment mechanism is available only for Functions running on Linux.

Implantação web (MSDeploy)Web Deploy (MSDeploy)

Web Implemente pacotes e implementa as suas aplicações do Windows em qualquer servidor IIS, incluindo as suas aplicações de funções que funcionam no Windows em Azure.Web Deploy packages and deploys your Windows applications to any IIS server, including your function apps running on Windows in Azure.

Como usá-lo: Utilize ferramentas de Estúdio Visual para funções Azure.How to use it: Use Visual Studio tools for Azure Functions. Limpe a caixa de verificação do ficheiro de pacote (recomendado).Clear the Run from package file (recommended) check box.

Também pode baixar o Web Deploy 3.6 e MSDeploy.exe ligar diretamente.You can also download Web Deploy 3.6 and call MSDeploy.exe directly.

Quando usá-lo: A Web Deploy é suportada e não tem problemas, mas o mecanismo preferido é a implementação do zip com o Pacote Run From ativado.When to use it: Web Deploy is supported and has no issues, but the preferred mechanism is zip deploy with Run From Package enabled. Para saber mais, consulte o guia de desenvolvimento do Estúdio Visual.To learn more, see the Visual Studio development guide.

Controlo de código fonteSource control

Utilize o controlo de fonte para ligar a sua aplicação de função a um repositório Git.Use source control to connect your function app to a Git repository. Uma atualização do código nesse repositório desencadeia a implantação.An update to code in that repository triggers deployment. Para mais informações, consulte o Kudu Wiki.For more information, see the 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.How to use it: Use Deployment Center in the Functions area of the portal to set up publishing from source control. Para mais informações, consulte a implantação contínua para funções Azure.For more information, see Continuous deployment for Azure Functions.

Quando usá-lo: Usar o controlo de fontes é a melhor prática para as equipas que colaboram nas suas aplicações de função.When to use it: Using source control is the best practice for teams that collaborate on their function apps. O controlo de fontes é uma boa opção de implantação que permite gasodutos de implantação mais sofisticados.Source control is a good deployment option that enables more sophisticated deployment pipelines.

Git LocalLocal Git

Pode utilizar git local para empurrar o código da sua máquina local para funções azure utilizando Git.You can use local Git to push code from your local machine to Azure Functions by using Git.

Como usá-lo: Siga as instruções na implantação local git para o Serviço de Aplicações Azure.How to use it: Follow the instructions in Local Git deployment to Azure App Service.

Quando usá-lo: Em geral, recomendamos que utilize um método de implantação diferente.When to use it: In general, we recommend that you use a different deployment method. Quando publicar a partir de Git local, deve sincronizar manualmenteos gatilhos .When you publish from local Git, you must manually sync triggers.

Sincronização de nuvensCloud sync

Utilize sincronização de nuvem para sincronizar o seu conteúdo desde as funções Dropbox e OneDrive para Azure.Use cloud sync to sync your content from Dropbox and OneDrive to Azure Functions.

Como usá-lo: Siga as instruções no conteúdo sync a partir de uma pasta de nuvem.How to use it: Follow the instructions in Sync content from a cloud folder.

Quando usá-lo: Em geral, recomendamos outros métodos de implantação.When to use it: In general, we recommend other deployment methods. Quando publicar utilizando sincronização em nuvem, deve sincronizar manualmenteos gatilhos .When you publish by using cloud sync, you must manually sync triggers.

FTPFTP

Pode utilizar o FTP para transferir diretamente ficheiros para funções Azure.You can use FTP to directly transfer files to Azure Functions.

Como usá-lo: Siga as instruções de implantação do conteúdo utilizando FTP/s.How to use it: Follow the instructions in Deploy content by using FTP/s.

Quando usá-lo: Em geral, recomendamos outros métodos de implantação.When to use it: In general, we recommend other deployment methods. Quando publicar utilizando FTP, deve sincronizar manualmenteos gatilhos .When you publish by using FTP, you must manually sync triggers.

Edição do portalPortal editing

No editor baseado no portal, pode editar diretamente os ficheiros que estão na sua aplicação de função (essencialmente implementando cada vez que guarda as suas alterações).In the portal-based editor, you can directly edit the files that are in your function app (essentially deploying every time you save your changes).

Como usá-lo: Para poder editar as suas funções no portal Azure, deve ter criado as suas funções no portal.How to use it: To be able to edit your functions in the Azure portal, you must have created your functions in the portal. Para preservar uma única fonte de verdade, usar qualquer outro método de implementação faz a sua função apenas leitura e impede a edição contínua do portal.To preserve a single source of truth, using any other deployment method makes your function read-only and prevents continued portal editing. Para voltar a um estado em que pode editar os seus ficheiros no portal Azure, pode rodar manualmente o modo de edição para Read/Write e remover quaisquer definições de aplicação relacionadas com a implementação (como WEBSITE_RUN_FROM_PACKAGE).To return to a state in which you can edit your files in the Azure portal, you can manually turn the edit mode back to Read/Write and remove any deployment-related application settings (like WEBSITE_RUN_FROM_PACKAGE).

Quando usá-lo: O portal é uma boa maneira de começar com as Funções Azure.When to use it: The portal is a good way to get started with Azure Functions. Para um trabalho de desenvolvimento mais intenso, recomendamos que utilize uma das seguintes ferramentas de cliente:For more intense development work, we recommend that you use one of the following client tools:

A tabela que se segue mostra os sistemas operativos e idiomas que suportam a edição do portal:The following table shows the operating systems and languages that support portal editing:

Consumo de janelasWindows Consumption Windows PremiumWindows Premium Windows DedicadoWindows Dedicated Consumo de LinuxLinux Consumption Prémio LinuxLinux Premium Linux DedicadoLinux Dedicated
C#C#
C#RoteiroC# Script ** **
F#F#
JavaJava
JavaScript (Node.js)JavaScript (Node.js) ** **
Python (Pré-visualização)Python (Preview)
PowerShell (Pré-visualização)PowerShell (Preview)
TypeScript (Node.js)TypeScript (Node.js)

* A edição do portal só está ativada para os gatilhos HTTP e Timer para funções no Linux utilizando planos Premium e Dedicados.* Portal editing is enabled only for HTTP and Timer triggers for Functions on Linux using Premium and Dedicated plans.

Blocos de implementaçãoDeployment slots

Quando implementar a sua aplicação de funções para o Azure, pode ser implantado para uma ranhura de implementação separada em vez de diretamente para a produção.When you deploy your function app to Azure, you can deploy to a separate deployment slot instead of directly to production. Para obter mais informações sobre as ranhuras de implantação, consulte a documentação de slots de implantação de funções azure para obter mais detalhes.For more information on deployment slots, see the Azure Functions Deployment Slots documentation for details.

Passos seguintesNext steps

Leia estes artigos para saber mais sobre a implementação das suas aplicações de funções:Read these articles to learn more about deploying your function apps: