Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve como criar um pacote de deployment .zip pronto a executar, implementar o pacote para Azure e configurar a sua aplicação de funções para correr diretamente a partir do pacote. Pode implementar usando o Funções do Azure Core Tools, CLI do Azure ou as APIs REST de implementação.
A implementação baseada em pacotes é o padrão para aplicações de funções que correm a partir de código. A tecnologia de implementação e a configuração do pacote dependem do plano de alojamento. Selecione o seu plano de alojamento no topo deste artigo.
O Funções do Azure dispõe de toda a gama de opções de implementação contínua e integração que o Serviço de Aplicações do Azure oferece. Para obter mais informações, consulte Implementação contínua para Funções do Azure.
Distribuição de pacotes por plano de alojamento
A tabela seguinte resume o processo de implementação e a configuração dos pacotes para cada plano de alojamento:
| Plano de alojamento | Processo de implementação | Configuração do pacote |
|---|---|---|
| Plano de Consumo Flex | Implementação gerida de pacotes | É executado a partir do pacote implementado por defeito. Não defina WEBSITE_RUN_FROM_PACKAGE. |
| Plano Premium | Implementação do ZIP | Defina WEBSITE_RUN_FROM_PACKAGE como 1 para executar a partir do pacote implementado. |
| Plano dedicado (Serviço de Aplicativo) | Implementação do ZIP | Defina WEBSITE_RUN_FROM_PACKAGE como 1 para executar a partir do pacote implementado. |
| Plano de consumo no Windows | Implementação do ZIP | Defina WEBSITE_RUN_FROM_PACKAGE como 1 para executar a partir do pacote implementado. |
| Plano de consumo no Linux | URL de compilação remota ou pacote externo | Use um URL de pacote externo para um pacote construído localmente. |
| Azure Container Apps | Implementação da imagem de contentor | A implementação de código baseada em pacotes não se aplica. |
Note
O conteúdo deste artigo não é relevante para o plano de alojamento atualmente selecionado. Para escolher um plano diferente, utilize o seletor no topo deste artigo. Para uma comparação de todos os planos de alojamento, consulte as opções de alojamento do Funções do Azure.
As aplicações funcionais alojadas em Azure Container Apps são implementadas como imagens de contentores, não como pacotes .zip. Para criar e implementar uma aplicação de funções baseada em imagens, consulte Criar uma aplicação de funções no Azure Container Apps usando código.
Criar um pacote de implementação
Na maioria dos casos, não precisas de criar o pacote de implementação tu próprio. Estes métodos de implementação baseados em ferramentas criam o pacote como parte do processo de publicação:
- O comando Funções do Azure Core Tools
func azure functionapp publish. - Publicação do Visual Studio Code.
- Publicação no Visual Studio.
- GitHub Actions deployment, que empacota o caminho do projeto configurado.
Para a implementação com o Azure Pipelines, os passos de compilação do pipeline criam o ficheiro .zip e passam-no à tarefa AzureFunctionApp de implementação.
Quando precisar de trabalhar diretamente com um pacote de implementação pronto a executar, crie o pacote usando func pack. Por exemplo, crie você mesmo o pacote ao implementar através de um URL de pacote externo.
Também pode criar manualmente o arquivo .zip. Ao criar o arquivo manualmente, siga estes requisitos de estrutura de pacotes.
Requisitos do pacote de implementação
O arquivo zip que você implanta deve conter todos os arquivos necessários para executar seu aplicativo de função. Você pode criar manualmente um arquivo zip a partir do conteúdo de uma pasta de projeto do Functions usando a funcionalidade de compactação de .zip interna ou ferramentas que não sejam da Microsoft.
O arquivo deve incluir o arquivo host.json na raiz da pasta extraída. A pilha de linguagens selecionada para a aplicação de funções cria outros requisitos:
- .NET (modelo de trabalho isolado)
- .NET (modelo de processo interno)
- Java
- Javascript
- TypeScript
- PowerShell
- Píton
Importante
Para idiomas que geram saída compilada para implantação, certifique-se de compactar o conteúdo da pasta de saída que você planeja publicar e não toda a pasta do projeto. Quando o Functions extrai o conteúdo do arquivo zip, o host.json arquivo deve existir na raiz do pacote.
Um processo de implementação por ficheiro zip extrai os ficheiros e as pastas do ficheiro .zip no diretório wwwroot. Se incluir o diretório pai ao criar o arquivo, o sistema não encontra os ficheiros que espera ver em wwwroot.
Implementar um pacote
O Flex Consumption utiliza a implementação de pacotes para armazenar um pacote pronto a correr no contentor de armazenamento de implementação da aplicação. A aplicação corre diretamente a partir deste pacote. Não definas as WEBSITE_RUN_FROM_PACKAGE definições da aplicação.
Implemente o pacote usando Core Tools, Visual Studio Code ou CLI do Azure. Estas ferramentas selecionam automaticamente o comportamento correto de implementação de pacotes para uma aplicação Flex Consumption.
Estas ferramentas realizam uma implementação push enviando o pacote para o endpoint de implementação da aplicação. Para o Flex Consumption, estes clientes enviam o pacote para /api/publish o host da scm aplicação. Quando o endpoint de implementação só está acessível por meio de um endpoint privado, o computador, runner ou agente que efetua a implementação tem de ter conectividade de rede e resolução de DNS para o endpoint privado de implementação. O serviço de implementação armazena o pacote processado no contentor de implementação configurado; carregar diretamente um pacote para este contentor não o implementa. Para implementar sem empurrar do cliente iniciador para o endpoint de implementação, utilize um modelo de implementação Bicep ou ARM com um URL de pacote ao qual o serviço de implementação possa aceder.
Implementar com a CLI do Azure
Use o az functionapp deployment source config-zip comando para implementar um pacote:
az functionapp deployment source config-zip --resource-group <RESOURCE_GROUP> \
--name <APP_NAME> --src <ZIP_FILE_PATH>
Adicione --build-remote true quando o projeto de origem necessitar de uma compilação remota. Não solicite uma compilação remota para um pacote que func pack já foi compilado para um estado pronto a executar, como um pacote de implementação Go.
Para configurar o armazenamento de implementação ou recuperar uma implementação anterior, consulte Criar e gerir aplicações de funções no plano Flex Consumption.
Implementar um pacote
As aplicações de planos Premium, Dedicado e de Consumo usam a API de implementação zip. O serviço de implementação executa estas ações:
- Apague ficheiros que restam de implementações anteriores.
- Executa scripts de implementação e outras personalizações de implementação.
- Escreva registos de implantação.
- A função de sincronização é acionada.
Importante
Numa implementação zip, os ficheiros da implementação anterior são eliminados ou atualizados quando faziam parte dessa implementação. O processo de implementação mantém outros ficheiros e diretórios na tua aplicação de funções que não faziam parte da implementação anterior. Para detalhes de implementação, consulte a referência de implementação do zip.
Implementar com a CLI do Azure
Usa o CLI do Azure para desencadear uma implementação push. Faça o push de um ficheiro .zip para a sua aplicação de função usando o comando az functionapp deployment source config-zip. Para utilizar este comando, tem de utilizar a versão 2.0.21 ou posterior da CLI do Azure. Para ver qual versão da CLI do Azure você está usando, use o az --version comando.
No comando a seguir, substitua o marcador de posição <zip_file_path> pelo caminho do local do seu arquivo .zip. Além disso, substitua <app_name> pelo nome exclusivo do seu aplicativo de função e substitua <resource_group> pelo nome do seu grupo de recursos.
az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>
Este comando lança ficheiros de projeto do ficheiro .zip para a tua aplicação de funções em Azure e reinicia a aplicação.
Quando você estiver usando a CLI do Azure em seu computador local, <zip_file_path> é o caminho para o arquivo .zip em seu computador. Você também pode executar a CLI do Azure no Azure Cloud Shell. Ao usar o Cloud Shell, você deve primeiro carregar seu arquivo de .zip de implantação para a conta do Ficheiros do Azure associada ao seu Cloud Shell. Nesse caso, <zip_file_path> é o local de armazenamento que sua conta do Cloud Shell usa. Para obter mais informações, consulte Guardar ficheiros no Azure Cloud Shell.
Implantar arquivo ZIP com APIs REST
Você pode usar as APIs REST do serviço de implantação para implantar o arquivo .zip em seu aplicativo no Azure. Para implantar, envie uma solicitação POST para https://<app_name>.scm.azurewebsites.net/api/zipdeploy. A solicitação POST deve conter o arquivo .zip no corpo da mensagem. As credenciais de implementação para a sua aplicação são fornecidas no pedido através da autenticação básica HTTP. Para obter mais informações, consulte a referência de implantação push do .zip.
Para a autenticação HTTP BASIC, você precisa de suas credenciais de implantação do Serviço de Aplicativo. Para ver como definir suas credenciais de implantação, consulte Definir e redefinir credenciais no nível do usuário.
Com cURL
O exemplo a seguir usa a ferramenta cURL para implantar um arquivo .zip. Substitua os espaços reservados <deployment_user>, <zip_file_path>e <app_name>. Quando solicitado por cURL, digite a senha.
curl -X POST -u <deployment_user> --data-binary "@<zip_file_path>" https://<app_name>.scm.azurewebsites.net/api/zipdeploy
Essa solicitação aciona a implantação por push a partir do arquivo de .zip carregado. Pode rever as implantações atuais e passadas utilizando o endpoint https://<app_name>.scm.azurewebsites.net/api/deployments, conforme mostrado no exemplo de cURL a seguir. Novamente, substitua <app_name> pelo nome do seu aplicativo e <deployment_user> pelo nome de usuário de suas credenciais de implantação.
curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments
Implantação assíncrona de arquivos zip
Ao implantar de forma síncrona, você pode receber erros relacionados a tempos limite de conexão. Adicione ?isAsync=true à URL para implantar de forma assíncrona. Você recebe uma resposta assim que o arquivo zip é carregado com um Location cabeçalho apontando para a URL de status de implantação sondável. Ao sondar a URL fornecida no Location cabeçalho, é recebida uma resposta HTTP 202 (Aceito) enquanto o processo está em andamento e uma resposta HTTP 200 (OK) quando o arquivo é expandido e a implementação é concluída com êxito.
Autenticação do Microsoft Entra
Uma alternativa ao uso da autenticação HTTP BASIC para a implantação zip é usar uma identidade do Microsoft Entra. A identidade do Microsoft Entra pode ser necessária se a autenticação HTTP BASIC estiver desabilitada para o site SCM.
É necessário um token de acesso válido do Microsoft Entra para o usuário ou entidade de serviço que executa a implantação. Um token de acesso pode ser recuperado usando o comando da CLI do az account get-access-token Azure. O token de acesso é usado no cabeçalho Authentication da solicitação HTTP POST.
curl -X POST \
--data-binary "@<zip_file_path>" \
-H "Authorization: Bearer <access_token>" \
"https://<app_name>.scm.azurewebsites.net/api/zipdeploy"
Com o PowerShell
O exemplo a seguir usa Publish-AzWebapp carregar o arquivo .zip. Substitua os espaços reservados <group-name>, <app-name>e <zip-file-path>.
Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <zip-file-path>
Essa solicitação aciona a implantação por push a partir do arquivo de .zip carregado.
Para revisar as implantações atuais e passadas, execute os seguintes comandos. Novamente, substitua os <deployment-user>, <deployment-password> e <app-name>.
$username = "<deployment-user>"
$password = "<deployment-password>"
$apiUrl = "https://<app-name>.scm.azurewebsites.net/api/deployments"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET
Implemente usando o Bicep ou um modelo do Azure Resource Manager
Pode implementar um pacote numa aplicação Flex Consumption como parte de uma implementação de modelos do Bicep ou Azure Resource Manager (ARM). Defina um Microsoft.Web/sites/extensions recurso que utilize a /onedeploy extensão e forneça o URL remoto do pacote na packageUri propriedade.
Deve nomear o ficheiro do pacote released-package.zip. O anfitrião Functions deve ser capaz de aceder tanto ao URL remoto do pacote como ao contentor de armazenamento de implementação. Carregar diretamente o pacote para o contentor de implementação não o coloca em implementação.
Para obter exemplos de modelos Bicep e ARM, consulte Definir o pacote de implementação do Flex Consumption.
Implemente utilizando um modelo do Azure Resource Manager
Podes usar a extensão ZipDeploy do modelo Azure Resource Manager (ARM) para enviar o teu ficheiro de .zip para a tua aplicação de funções.
Exemplo de modelo ZipDeploy ARM
Este modelo inclui um slot de produção e um de entorno de staging e efetua a implantação em um ou outro. Normalmente, utiliza este modelo para implementar no slot de staging e depois efetua a troca para que o novo pacote ZIP fique em execução no slot de produção.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appServiceName": {
"type": "string"
},
"deployToProduction": {
"type": "bool",
"defaultValue": false
},
"slot": {
"type": "string",
"defaultValue": "staging"
},
"packageUri": {
"type": "secureString"
}
},
"resources": [
{
"condition": "[parameters('deployToProduction')]",
"type": "Microsoft.Web/sites/extensions",
"apiVersion": "2021-02-01",
"name": "[format('{0}/ZipDeploy', parameters('appServiceName'))]",
"properties": {
"packageUri": "[parameters('packageUri')]",
"appOffline": true
}
},
{
"condition": "[not(parameters('deployToProduction'))]",
"type": "Microsoft.Web/sites/slots/extensions",
"apiVersion": "2021-02-01",
"name": "[format('{0}/{1}/ZipDeploy', parameters('appServiceName'), parameters('slot'))]",
"properties": {
"packageUri": "[parameters('packageUri')]",
"appOffline": true
}
}
]
}
Para a implementação inicial, faz-se a implementação diretamente no slot de produção. Para obter mais informações, consulte Implementações de slots.
Executar funções a partir do pacote de implantação
Correr diretamente a partir do pacote de implementação evita copiar ficheiros para o wwwroot diretório. Em vez disso, o runtime do Functions monta o pacote como um diretório wwwroot só de leitura. Esta abordagem:
- Reduz problemas de bloqueio de cópias de ficheiros.
- Verifica os arquivos que estão sendo executados em seu aplicativo.
- Melhora o desempenho da implementação do Azure Resource Manager.
- Pode reduzir o tempo de arranque a frio, especialmente para aplicações JavaScript com grandes árvores de pacotes npm.
Configuração do pacote Flex Consumption
As aplicações Flex Consumption são executadas por predefinição a partir de pacote. Não adicione a definição da aplicação WEBSITE_RUN_FROM_PACKAGE. As definições de implementação, incluindo o contentor de armazenamento e o seu método de autenticação, são propriedades do recurso da aplicação funcional. Para obter mais informações, consulte Implantação.
Configuração premium e de pacotes dedicados
Defina WEBSITE_RUN_FROM_PACKAGE como 1 para executar diretamente a partir do pacote implantado localmente. O ambiente de execução armazena o pacote na pasta c:\home\data\SitePackages no Windows ou na pasta /home/data/SitePackages no Linux.
Configuração do pacote de consumo
O valor suportado WEBSITE_RUN_FROM_PACKAGE depende do sistema operativo:
| Sistema Operativo | Value | Comportamento |
|---|---|---|
| Windows | 1 |
A aplicação corre a partir de um pacote na c:\home\data\SitePackages pasta. |
| Linux | <URL> |
A aplicação corre a partir do pacote na URL especificada. Use um contentor privado do Armazenamento de Blobs do Azure acedido usando uma identidade gerida. |
Importante
As aplicações funcionais que ainda estão a correr o runtime final de vida v3 no Linux num plano de Consumo deixam de funcionar após 30 de setembro de 2026. Para evitar interrupções no serviço, migre a sua aplicação para o runtime da v4.
A opção de alojar aplicações funcionais no Linux num plano Consumption será retirada a 30 de setembro de 2028. O plano Linux Consumption não está a receber novas funcionalidades nem versões de linguagem. As aplicações a correr no Windows num plano de Consumo não estão atualmente afetadas. Migre as suas aplicações para o plano Flex Consumption antes da data de reforma.
Considerações sobre implementação de pacotes
Tenha em mente estes requisitos e limitações ao implementar e executar a sua aplicação de funções a partir de um pacote:
- O pacote deve usar .zip formato. Os formatos tar e gzip não são suportados.
- O tamanho máximo da encomenda é de 1 GB. A implementação utiliza armazenamento temporário ao desempacotar ficheiros do projeto, pelo que a aplicação também deve ter armazenamento temporário suficiente. O plano de Consumo fornece 500 MB de armazenamento temporário por plano.
- Quando executa a partir de um pacote, os ficheiros em
wwwrootsão só de leitura, incluindo no portal do Azure. - Não podes usar a cache local quando estás a correr a partir de um pacote.
- Não definas
WEBSITE_RUN_FROM_PACKAGEquando solicitas uma build remota. Em vez disso, definaSCM_DO_BUILD_DURING_DEPLOYMENT=true. No Linux, também defineENABLE_ORYX_BUILD=true. -
WEBSITE_RUN_FROM_PACKAGEnão funciona com MSDeploy. Utilize antes a implementação por ZIP.
Adicionar a configuração WEBSITE_RUN_FROM_PACKAGE
Há várias maneiras de adicionar, atualizar e excluir as configurações do aplicativo de função:
As alterações nas configurações do aplicativo de função exigem que seu aplicativo de função seja reiniciado.
Executar a partir de um pacote carregado através de implementação via ZIP
Define WEBSITE_RUN_FROM_PACKAGE para 1 antes de implementares o pacote. A API de implementação zip copia o pacote para a SitePackages pasta em vez de extrair o seu conteúdo para wwwroot. A implementação também cria um ficheiropackagename.txt que identifica o pacote a montar. Depois de a aplicação reiniciar, o pacote é montado como diretório de apenas wwwroot leitura. As aplicações Linux Consumption não suportam este valor de definição e têm de ser executadas a partir de um URL de pacote externo.
Quando a implementação reinicia, as execuções de funções atualmente em execução terminam. Para informações sobre a escrita de funções que gerem reinicios com segurança, veja Escrever funções para serem sem estado.
Executar a partir do URL de um pacote externo
Usa uma URL de pacote externa quando precisares de gerir o armazenamento dos pacotes tu próprio. Precisas desta opção para correr um pacote construído localmente numa aplicação Linux Consumption. Não é suportado no Flex Consumption.
Note
Não podes alterar uma aplicação de função existente que usa WEBSITE_RUN_FROM_PACKAGE=1 para correr a partir de um URL de pacote externo. Para usar um URL de pacote externo, crie uma nova aplicação de funções e defina WEBSITE_RUN_FROM_PACKAGE para o URL do pacote.
Utilize um contentor privado de Armazenamento de Blobs e conceda à aplicação de função o acesso à identidade gerida ao pacote. Use identidade gerida porque os tokens SAS expiram e exigem manutenção. Sempre que publicas um pacote atualizado, tens de sincronizar manualmente os gatilhos. Se atualizar o pacote no mesmo local sem alterar o respetivo URL, reinicie a aplicação de funções antes de sincronizar os acionadores.
Carregar manualmente um pacote para o Armazenamento de Blobs do Azure
Crie um pacote de implementação .zip.
No portal do Azure, vá para sua conta de armazenamento.
Em Armazenamento de Dados, selecione Contentores e depois crie ou selecione um contentor privado.
Carrega a encomenda no contentor.
Selecione o blob carregado e copie o seu URL. Se não usares uma identidade gerida, gera um URL SAS em vez disso.
Na tua aplicação de funções, expande Definições, seleciona variáveis de Ambiente e depois seleciona Adicionar no separador de definições da App.
Adicione uma definição denominada
WEBSITE_RUN_FROM_PACKAGEcom o URL do pacote como valor.Aplica as alterações, reinicia a aplicação e sincroniza manualmente os gatilhos.
Obter um pacote do Armazenamento de Blobs do Azure com uma identidade gerida
Pode configurar Armazenamento de Blobs do Azure para autorizar pedidos com Microsoft Entra ID. Esta configuração significa que, em vez de gerar uma chave SAS com uma data de expiração, pode-se, em vez disso, depender da identidade gerida da aplicação.
Por predefinição, é utilizada a identidade atribuída pelo sistema à aplicação. Se desejar especificar uma identidade atribuída pelo usuário, você pode definir a configuração do WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID aplicativo para a ID de recurso dessa identidade. A configuração também pode aceitar SystemAssigned como valor, o que é equivalente a omitir a configuração.
Para permitir que o pacote seja buscado usando a identidade:
Verifique se o blob está configurado para acesso privado.
Atribua à identidade a função Storage Blob Data Reader com âmbito sobre o blob do pacote. Consulte Atribuir uma função do Azure para acesso a dados de blobs para detalhes sobre como criar a atribuição de função.
Defina a configuração da aplicação
WEBSITE_RUN_FROM_PACKAGEpara o URL do blob do pacote. Este URL é geralmente da formahttps://<storage-account-name>.blob.core.windows.net/<container-name>/<path-to-package>ou similar.Se desejar especificar uma identidade atribuída pelo usuário, você pode definir a configuração do
WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_IDaplicativo para a ID de recurso dessa identidade. A definição também pode aceitar SystemAssigned como valor, embora isto seja o mesmo que omitir a definição por completo. Um ID de recurso é uma representação padrão para um recurso no Azure. Para uma identidade gerida atribuída pelo utilizador, isso será/subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name. O ID de recurso de uma identidade gerida atribuída a um utilizador pode ser obtido em Definições>Propriedades>ID para a identidade gerida atribuída pelo utilizador.
Personalização da implantação
O processo de implantação pressupõe que o arquivo .zip enviado por push contém um aplicativo pronto para ser executado. Por padrão, nenhuma personalização é executada. Para habilitar os mesmos processos de compilação que você obtém com a integração contínua, adicione o seguinte às configurações do aplicativo:
SCM_DO_BUILD_DURING_DEPLOYMENT=true
Quando se usa desdobramento por push de .zip, esta configuração está desativada por padrão. O padrão é ativo para implementações de integração contínua. Quando definidas como true, suas configurações relacionadas à implantação são usadas durante a implantação. Você pode definir essas configurações como configurações do aplicativo ou em um arquivo de configuração .deployment localizado na raiz do arquivo .zip. Para obter mais informações, consulte Configurações relacionadas ao repositório e à implantação na referência de implantação.
Baixe os arquivos da sua aplicação de funções
Se precisar exatamente do pacote que a sua aplicação executa atualmente, descarregue-o do contentor Armazenamento de Blobs configurado para as implementações da sua aplicação:
Na página da tua aplicação de funções no portal Azure, expande Definições e depois seleciona Definições de Implementação.
Na localização do pacote de aplicação, indique a conta de armazenamento e o contentor usados para implementações.
Vai a essa conta de armazenamento, expande o armazenamento de Dados e depois seleciona Contentores.
Selecione o contentor de implementação, selecione o pacote atual e depois selecione Descarregar.
O pacote descarregado contém o conteúdo da aplicação que implementaste, que pode diferir do teu projeto de origem. Cada implementação sobrescreve o pacote atual, e o contentor de implementação não fornece o histórico de implementação.
Para aplicações implementadas através de CI/CD, mantenha o projeto de origem num sistema de controlo de versões e conserve os artefactos de compilação prontos a executar de acordo com a sua política de retenção de versões. Utilize um artefacto retido para reimplementar uma versão específica. Use o pacote no contentor de implementação quando precisar exatamente do pacote que a aplicação está a correr atualmente ou quando o artefacto original já não estiver disponível.
Baixe os arquivos da sua aplicação de funções
Se você criou suas funções usando o editor no portal do Azure, poderá baixar seu projeto de aplicativo de função existente como um arquivo de .zip de uma destas maneiras:
Entre no portal do Azure e vá para seu aplicativo de função.
Na guia Visão geral, selecione Baixar conteúdo do aplicativo. Selecione as opções de download e, em seguida, selecione Download.
O ficheiro .zip descarregado está no formato correto para ser republicado na sua aplicação de função usando a implantação push .zip. O download do portal também pode adicionar os arquivos necessários para abrir seu aplicativo de função diretamente no Visual Studio.
Para aplicações implementadas através de CI/CD, mantenha o projeto de origem num sistema de controlo de versões e conserve os artefactos de compilação prontos a executar de acordo com a sua política de retenção de versões. Um arquivo fonte descarregado de um repositório não é um pacote de deployment. Use o seu fluxo de trabalho de implementação para construir e implementar o projeto.