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 para1
. 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 (comoWEBSITE_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: