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.
Este artigo descreve como criar um pacote de implantação .zip pronto para rodar, implantar o pacote para Azure e configurar seu aplicativo de funções para rodar diretamente a partir do pacote. Você pode implantar usando Azure Functions Core Tools, CLI do Azure ou as APIs REST de implantação.
A implantação baseada em pacotes é o padrão para aplicativos de função que rodam a partir de código. A tecnologia de implantação e a configuração dos pacotes dependem do plano de hospedagem. Selecione seu plano de hospedagem no topo deste artigo.
O Azure Functions oferece toda a gama de opções de implantação contínua e integração que o Serviço de Aplicativo do Azure oferece. Para saber mais, confira Implantação contínua do Azure Functions.
Implantação de pacotes por plano de hospedagem
A tabela a seguir resume o processo de implantação e a configuração dos pacotes para cada plano de hospedagem:
| Plano de hospedagem | Processo de implantação | Configuração do pacote |
|---|---|---|
| Plano de Consumo Flexível | Implantação gerenciada de pacotes | Executa a partir do pacote implantado por padrão. Não definir WEBSITE_RUN_FROM_PACKAGE. |
| Plano Premium | Implantação do ZIP | Defina WEBSITE_RUN_FROM_PACKAGE como 1 para executar a partir do pacote implantado. |
| Plano dedicado (Serviço de Aplicativo) | Implantação do ZIP | Defina WEBSITE_RUN_FROM_PACKAGE como 1 para executar a partir do pacote implantado. |
| Plano de consumo no Windows | Implantação do ZIP | Defina WEBSITE_RUN_FROM_PACKAGE como 1 para executar a partir do pacote implantado. |
| Plano de consumo no Linux | URL de compilação remota ou pacote externo | Use uma URL de pacote externo para um pacote construído localmente. |
| Aplicativos de Contêiner do Azure | Implantação de imagem de contêiner | A implantação de código baseada em pacotes não se aplica. |
Note
O conteúdo deste artigo não é relevante para o plano de hospedagem atualmente selecionado. Para escolher um plano diferente, use o seletor no topo deste artigo. Para uma comparação de todos os planos de hospedagem, veja as opções de hospedagem do Azure Functions.
Aplicativos de funções hospedados no Aplicativos de Contêiner do Azure são implantados como imagens de contêiner, não como pacotes .zip. Para criar e implantar um aplicativo de funções baseado em imagens, veja Criar um aplicativo de funções no Aplicativos de Contêiner do Azure usando código.
Crie um pacote de implantação
Na maioria dos casos, você não precisa criar o pacote de implantação por conta própria. Esses métodos de implantação baseados em ferramentas criam o pacote como parte do processo de publicação:
- O comando Azure Functions Core Tools
func azure functionapp publish. - Publicação do Visual Studio Code.
- Publicação no Visual Studio.
- GitHub Actions deployment, que empacota o caminho configurado do projeto.
Para a implantação do Azure Pipelines, as etapas de compilação do pipeline criam o arquivo .zip e o passam para a tarefa de implantação AzureFunctionApp.
Quando precisar trabalhar diretamente com um pacote de implantação pronto para executar, crie o pacote usando func pack. Por exemplo, crie o pacote você mesmo ao implantar usando uma URL externa de pacote.
Você também pode criar o arquivo .zip manualmente. Ao criar o arquivo manualmente, siga esses requisitos de estrutura de pacotes.
Requisitos do pacote de implantação
O arquivo zip que você implantar deve conter todos os arquivos necessários para executar seu aplicativo de funções. Você pode criar manualmente um arquivo zip a partir do conteúdo de uma pasta de projeto de Functions, usando a funcionalidade interna de compactação .zip ou ferramentas que não são da Microsoft.
O arquivo compactado deve incluir o arquivo host.json na raiz da pasta extraída. A pilha de idiomas selecionada para o aplicativo de funções cria outros requisitos:
- .NET (modelo de trabalhador isolado)
- .NET (modelo em processo)
- Java
- JavaScript
- TypeScript
- PowerShell
- Python
Importante
Para linguagens que geram saída compilada para publicação, certifique-se de compactar apenas o conteúdo da pasta de saída que pretende publicar, e não a pasta inteira do projeto. Quando o Functions extrai o conteúdo do arquivo zip, o arquivo host.json deve existir na raiz do pacote.
Um processo de implantação zip extrai os arquivos e pastas do arquivo .zip no wwwroot diretório. Se você incluir o diretório pai ao criar o arquivo, o sistema não encontra os arquivos que espera ver em wwwroot.
Implantar um pacote
O Flex Consumption utiliza a implantação de pacotes para armazenar um pacote pronto a ser executado no contêiner de armazenamento do aplicativo. O aplicativo roda diretamente a partir desse pacote. Não defina a configuração do aplicativo WEBSITE_RUN_FROM_PACKAGE.
Implante o pacote usando Core Tools, Visual Studio Code ou CLI do Azure. Essas ferramentas selecionam automaticamente o comportamento correto de implantação de pacotes para um aplicativo Flex Consumption.
Essas ferramentas realizam uma implantação push enviando o pacote para o endpoint de implantação do app. No Flex Consumption, esses clientes enviam o pacote para /api/publish no host scm do aplicativo. Quando o endpoint de implantação é acessível apenas por meio de um endpoint privado, o computador, runner ou agente que realiza a implantação deve ter conectividade de rede e resolução DNS para o endpoint privado de implantação. O serviço de implantação armazena o pacote processado no contêiner de implantação configurado; fazer upload direto de um pacote para esse contêiner não o implanta. Para implantar sem precisar empurrar do cliente iniciador para o endpoint de implantação, use um template de implantação Bicep ou ARM com uma URL de pacote que o serviço de implantação possa acessar.
Implantar usando a CLI do Azure
Use o az functionapp deployment source config-zip comando para implantar 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 exigir uma compilação remota. Não solicite uma compilação remota para um pacote que func pack já tenha sido compilado em um estado pronto para execução, como um pacote de implantação Go.
Para configurar o armazenamento de implantação ou recuperar uma implantação anterior, veja Criar e gerenciar aplicativos de funções no plano Flex Consumption.
Implantar um pacote
Aplicativos premium, dedicado e de planos de consumo usam a API de implantação zip. O serviço de implantação realiza as seguintes ações:
- Exclua arquivos que restam de implantações anteriores.
- Executar scripts de implantação e outras personalizações de implantação.
- Escreva os registros de implantação.
- A função de sincronização é acionada.
Importante
Em uma implantação zip, arquivos da implantação anterior são excluídos ou atualizados quando faziam parte dessa implantação. O processo de implantação mantém outros arquivos e diretórios no seu aplicativo de funções que não faziam parte da implantação anterior. Para detalhes de implementação, veja a referência de implantação zip.
Implantar usando a CLI do Azure
Use a CLI do Azure para acionar uma implantação push. Implante o arquivo .zip em seu aplicativo de funções usando o comando az functionapp deployment source config-zip. Para usar esse comando, você deve usar a CLI do Azure versão 2.0.21 ou posterior. Para ver qual versão da CLI do Azure você está usando, use o az --version comando.
No comando a seguir, substitua o espaço reservado <zip_file_path> pelo caminho para o local do seu arquivo .zip. Além disso, substitua <app_name> pelo nome exclusivo do seu aplicativo de funções 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>
Esse comando libera arquivos de projeto do arquivo .zip para o seu app de função no Azure e reinicia o app.
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. Quando você usa o Cloud Shell, você deve primeiro carregar seu arquivo .zip de implantação para a conta do Arquivos do Azure associada com o seu Cloud Shell. Nesse caso, <zip_file_path> é o local de armazenamento que a sua conta do Cloud Shell usa. Para obter mais informações, consulte Persistir arquivos no Azure Cloud Shell.
Implantar o arquivo ZIP com APIs REST
Você pode usar as APIs REST do serviço de implantação para implantar o arquivo .zip ao 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 implantação para seu aplicativo são fornecidas na solicitação usando a autenticação BÁSICA HTTP. Para obter mais informações, consulte a referência de implantação por push do .zip.
Para a autenticação HTTP BÁSICA, você precisa das credenciais de implantação do Serviço de Aplicativo. Para ver como definir as credenciais de implantação, consulte Definir e redefinir as credenciais de usuário.
Com o 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 pelo 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 dispara a implantação de envio do arquivo .zip carregado. Você pode examinar as implantações atuais e anteriores, usando o ponto de extremidade https://<app_name>.scm.azurewebsites.net/api/deployments, conforme mostrado no exemplo de cURL a seguir. Novamente, substitua <app_name> com o nome do seu aplicativo e <deployment_user> com o nome de usuário de suas credenciais de implantação.
curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments
Implantação da zip assíncrona
Ao implantar de forma síncrona, você pode receber erros relacionados aos 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 cabeçalho Location apontando para a URL de status de implantação consultável. Ao sondar a URL fornecida no Location cabeçalho, você recebe uma resposta HTTP 202 (Aceito) enquanto o processo está em andamento e uma resposta HTTP 200 (OK) depois que o arquivo foi expandido e a implantação é concluída com êxito.
autenticação do Microsoft Entra
Uma alternativa ao uso da autenticação HTTP BASIC para a implantação do zip é usar uma identidade do Microsoft Entra. A identidade do Microsoft Entra poderá ser necessária se a autenticação HTTP BASIC estiver desabilitada para o site do SCM.
Um token de acesso válido do Microsoft Entra para o usuário ou entidade de serviço que executa a implantação é necessário. Um token de acesso pode ser recuperado usando o comando az account get-access-token da CLI do Azure. O token de acesso é usado no cabeçalho autenticação 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 para 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 dispara a implantação de envio do arquivo .zip carregado.
Para examinar as implantações atuais e anteriores, execute os comandos a seguir. Novamente, substitua os espaços reservados <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
Implante usando Bicep ou um template do Azure Resource Manager
Você pode implantar um pacote para um aplicativo Flex Consumption como parte da implantação de um modelo do Bicep ou do Azure Resource Manager (ARM). Defina um recurso Microsoft.Web/sites/extensions que usa a extensão /onedeploy e fornece a URL remota do pacote na propriedade packageUri.
Você deve nomear o arquivo do pacote released-package.zip. O host Functions deve ser capaz de acessar tanto a URL remota do pacote quanto o contêiner de armazenamento de implantação. Fazer upload direto do pacote para o container de implantação não o implanta.
Para exemplos de modelos de Bicep e ARM, veja Definir o pacote de implantação Flex Consumption.
Faça deploy usando um template do Azure Resource Manager
Você pode usar a extensão ZipDeploy do template Azure Resource Manager (ARM) para enviar seu arquivo .zip para o aplicativo de funções.
Exemplo de modelo ZipDeploy ARM
Esse modelo inclui um slot de produção e de preparo e é implantado em um ou outro. Normalmente, você usa esse template para implantar no slot de staging e depois trocar para rodar seu novo pacote zip 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
}
}
]
}
Na implantação inicial, você faz a implantação diretamente no slot de produção. Para obter mais informações, confira Implantações de slot.
Executar funções do pacote de implantação
Executar diretamente do pacote de implantação ignora a cópia de arquivos para o diretório wwwroot. Em vez disso, o runtime do Functions monta o pacote como um diretório wwwroot somente leitura. Essa abordagem:
- Reduz problemas de travamento de cópias de arquivos.
- Verifica os arquivos que estão em execução no seu aplicativo.
- Melhora o desempenho da implantação do Azure Resource Manager.
- Pode reduzir o tempo de inicialização a frio, especialmente para aplicativos em JavaScript com grandes árvores de pacotes npm.
Configuração do pacote Flex Consumption
Os aplicativos Flex Consumption rodam por padrão a partir de um pacote. Não adicione a configuração do aplicativo WEBSITE_RUN_FROM_PACKAGE. As configurações de implantação, incluindo o contêiner de armazenamento e seu método de autenticação, são propriedades do recurso do aplicativo de funções. Para obter mais informações, consulte Implantação.
Configuração dos pacotes Premium e Dedicado
Defina WEBSITE_RUN_FROM_PACKAGE como 1 para executar diretamente do pacote implantado localmente. O runtime armazena o pacote na c:\home\data\SitePackages pasta no Windows ou /home/data/SitePackages na pasta no Linux.
Configuração do pacote de consumo
O valor suportado WEBSITE_RUN_FROM_PACKAGE depende do sistema operacional:
| Sistema operacional | Value | Behavior |
|---|---|---|
| Windows | 1 |
O app roda a partir de um pacote na c:\home\data\SitePackages pasta. |
| Linux | <URL> |
O aplicativo roda a partir do pacote na URL especificada. Use um contêiner privado do Armazenamento de Blobs do Azure acessado usando uma identidade gerenciada. |
Importante
Os Aplicativos de Função ainda executando o end-of-life v3 runtime no Linux em um plano Consumo deixarão de funcionar depois de 30 de setembro de 2026. Para evitar a interrupção do serviço, migre seu aplicativo para o runtime v4.
A opção de hospedar aplicativos de funções no Linux em um plano de consumo será desativada em 30 de setembro de 2028. O plano de consumo do Linux não está recebendo novos recursos ou versões de idioma. Os aplicativos em execução em Windows em um plano de consumo não são afetados no momento. Migre seus aplicativos para o plano de Consumo Flex antes da data de aposentadoria.
Considerações sobre implantação de pacotes
Mantenha esses requisitos e limitações em mente ao implantar e executar seu aplicativo de funções a partir de um pacote:
- O pacote deve usar .zip formato. Não há suporte para os formatos Tar nem gzip.
- O tamanho máximo do pacote é de 1 GB. A implantação usa armazenamento temporário ao descompactar arquivos do projeto, então o aplicativo também deve ter armazenamento temporário suficiente. O plano de Consumo oferece 500 MB de armazenamento temporário por plano.
- Quando você executa a partir de um pacote, os arquivos em
wwwrootsão somente para leitura, inclusive no portal do Azure. - Você não pode usar o cache local ao rodar a partir de um pacote.
- Não configure
WEBSITE_RUN_FROM_PACKAGEquando solicitar uma build remota. Em vez disso, definaSCM_DO_BUILD_DURING_DEPLOYMENT=true. No Linux, também definaENABLE_ORYX_BUILD=true. -
WEBSITE_RUN_FROM_PACKAGEnão funciona com MSDeploy. Use o zip deployment em vez disso.
Como adicionar a configuração WEBSITE_RUN_FROM_PACKAGE
Há várias maneiras de adicionar, atualizar e excluir configurações do aplicativo de funções:
As alterações nas configurações do aplicativo de funções exigem que o seu aplicativo de funções seja reiniciado.
Executar a partir de um pacote carregado por implantação por ZIP
Defina WEBSITE_RUN_FROM_PACKAGE para 1 antes de implantar o pacote. A API de implantação zip copia o pacote para a SitePackages pasta em vez de extrair seu conteúdo para wwwroot. A implantação também cria um arquivopackagename.txt que identifica o pacote a ser montado. Após a reinicialização do aplicativo, o pacote é montado como o diretório somente leitura wwwroot. Aplicativos Linux Consumption não suportam esse valor de configuração e devem ser executados a partir de uma URL de pacote externo.
Quando a implantação reinicia o aplicativo, as execuções de função em andamento são encerradas. Para informações sobre como escrever funções que lidam com reinicializações com segurança, veja Escrever funções para serem sem estado.
Executar a partir de uma URL de pacote externa
Use uma URL de pacote externa quando precisar gerenciar o armazenamento de pacotes por conta própria. Você precisa dessa opção para rodar um pacote construído localmente em um app Linux Consumption. Não é suportado no Flex Consumption.
Note
Você não pode alterar um aplicativo de função existente que usa WEBSITE_RUN_FROM_PACKAGE=1 para rodar a partir de uma URL de pacote externo. Para usar uma URL de pacote externa, crie um novo aplicativo de função e defina WEBSITE_RUN_FROM_PACKAGE a URL do pacote.
Use um container privado de Armazenamento de Blobs e conceda acesso à identidade gerenciada do aplicativo de funções ao pacote. Use identidade gerenciada porque tokens SAS expiram e exigem manutenção. Sempre que você publica um pacote atualizado, deve sincronizar manualmente os gatilhos. Se você atualizar o pacote diretamente sem alterar a URL, reinicie o aplicativo de função antes de sincronizar os gatilhos.
Enviar manualmente um pacote para o Armazenamento de Blobs do Azure
Crie um pacote de implantação .zip.
No portal do Azure, acesse sua conta de armazenamento.
Em Armazenamento de Dados, selecione Containers e então crie ou selecione um container privado.
Faça o upload do pacote para o contêiner.
Selecione o blob enviado e copie sua URL. Se você não usar uma identidade gerenciada, gere uma URL SAS em vez disso.
No seu app de função, expanda Configurações, selecione variáveis de Ambiente e depois selecione Adicionar na aba de configurações do App .
Adicione uma configuração nomeada
WEBSITE_RUN_FROM_PACKAGEcom a URL do pacote como seu valor.Aplique as mudanças, reinicie o app e sincronize manualmente os gatilhos.
Busque um pacote do Armazenamento de Blobs do Azure usando uma identidade gerenciada
Você pode configurar Armazenamento de Blobs do Azure para autorizar solicitações com Microsoft Entra ID. Essa configuração significa que, em vez de gerar uma chave SAS com uma expiração, você pode usar a identidade gerenciada do aplicativo.
Por padrão, será usada a identidade do aplicativo atribuída pelo sistema. Se você quiser especificar uma identidade atribuída pelo usuário, defina a configuração de aplicativo WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID como a ID do recurso dessa identidade. A configuração também pode aceitar SystemAssigned como um valor, o que equivale a omitir a configuração.
Para permitir que o pacote seja buscado usando a identidade:
Verifique se o blob está configurado para acesso privado.
Conceda à identidade à função Leitor de Dados do Blob do Armazenamento com escopo no blob do pacote. Confira Atribuir uma função do Azure para acesso aos dados do blob para obter detalhes sobre como criar a atribuição de função.
Defina a configuração de aplicativo
WEBSITE_RUN_FROM_PACKAGEcomo o URL do blob do pacote. Essa URL geralmente é do tipohttps://<storage-account-name>.blob.core.windows.net/<container-name>/<path-to-package>ou semelhante.Se você quiser especificar uma identidade atribuída pelo usuário, defina a configuração de aplicativo
WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_IDcomo a ID do recurso dessa identidade. A configuração também pode aceitar SystemAssigned como um valor, embora isso seja o mesmo que omitir a configuração completamente. Uma ID de recurso é uma representação padrão para um recurso no Azure. Para uma identidade gerenciada atribuída pelo usuário, isso será/subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name. O ID de recurso de uma identidade gerenciada atribuída pelo usuário pode ser obtido em Configurações>, Propriedades>, ID de identidade gerenciada atribuída pelo usuário.
Personalização da implantação
O processo de implantação presume que o arquivo .zip em que você efetua push contém um aplicativo pronto para execução. 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 para as configurações do aplicativo:
SCM_DO_BUILD_DURING_DEPLOYMENT=true
Quando você usar a implantação por push do .zip, essa configuração é falsa por padrão. O padrão é verdadeiro para implantações de integração contínua. Quando definido como verdadeiras, as configurações de implantação são usadas durante a implantação. Você pode configurar essas configurações como configurações de aplicativo ou em um arquivo de configuração de .deployment localizado na raiz do seu arquivo .zip. Para obter mais informações, consulte Repositório e configurações relacionadas à implantação na referência de implantação.
Baixe seus arquivos de aplicativo de funções
Se você precisar exatamente do pacote que seu app está executando atualmente, baixe-o do contêiner Armazenamento de Blobs configurado para as implantações do seu app:
Na página do seu aplicativo de funções no portal do Azure, expanda Configurações e então selecione Configurações de implantação.
Na localização do pacote de aplicação, observe a conta de armazenamento e o contêiner usados para implantações.
Vá até essa conta de armazenamento, expanda o armazenamento de dados e então selecione Containers.
Selecione o contêiner de implantação, selecione o pacote atual e então selecione Baixar.
O pacote baixado contém o conteúdo do app construído que você implantou, que pode diferir do seu projeto de origem. Cada implantação sobrescreve o pacote atual, e o contêiner de implantação não fornece histórico de implantação.
Para aplicativos implantados usando CI/CD, mantenha o projeto fonte no controle de versão e mantenha artefatos de compilação prontos para rodar de acordo com sua política de retenção de releases. Use um artefato retido para reimplantar uma versão específica. Use o pacote no container de implantação quando precisar exatamente do pacote que o app está executando atualmente ou quando o artefato original não estiver mais disponível.
Baixe seus arquivos de aplicativo de funções
Se você criou suas funções usando o editor no portal do Azure, você pode baixar seu projeto de aplicativo de funções existente como um arquivo. zip de uma das seguintes maneiras:
Conecte-se no Portal do Azure e, em seguida, vá para o seu aplicativo de funções.
Na guia Visão Geral, selecione Baixar conteúdo do aplicativo. Selecione as opções de download e, em seguida, selecione Baixar.
O arquivo .zip baixado está no formato correto para ser republicado no seu aplicativo de funções usando a implantação por push do .zip. O download do portal também pode adicionar os arquivos necessários para abrir o aplicativo de funções diretamente no Visual Studio.
Para aplicativos implantados usando CI/CD, mantenha o projeto fonte no controle de versão e mantenha artefatos de compilação prontos para rodar de acordo com sua política de retenção de releases. Um arquivo de origem baixado de um repositório não é um pacote de implantação. Use seu fluxo de trabalho de implantação para construir e lançar o projeto.