Migrar aplicativos do plano de consumo para o plano Flex Consumption

Este artigo mostra-lhe como migrar as suas aplicações funcionais existentes do plano Consumption para o plano Flex Consumption. Para a maioria das aplicações, esta migração é simples. As aplicações que migram do Windows também devem ser compatíveis com Linux e podem exigir alterações de código.

Importante

O suporte para alojar aplicações funcionais no Linux num plano Consumption será retirado a 30 de setembro de 2028. Até hoje, não estão a ser feitas melhorias de funcionalidades e linguagem no plano Linux Consumption. Siga este artigo para migrar as suas aplicações de plano de Consumo para funcionarem no plano Flex Consumption. Para saber mais sobre as datas de fim de suporte do plano de consumo Linux, consulte Funções do Azure Alojamento do plano de consumo (legacy).

Métodos de migração

Este artigo suporta a migração para uma aplicação de funções Linux num plano Flex Consumption tanto para aplicações Linux como para Windows. O Functions oferece várias formas de simplificar a maioria dos passos de migração, especialmente para aplicações Linux.

A tabela seguinte mostra quais os métodos de migração disponíveis para cada sistema operativo e são abordados neste artigo.

Método de migração Descrição Linux Windows
Azure Skills no GitHub Copilot Deixe o Copilot guiar e automatizar a sua migração de forma interativa. ✅ ✅
Comando de migração CLI Uso az functionapp flex-migration para automatizar migração. ✅ ❌
Comandos CLI padrão Migração passo a passo usando comandos CLI do Azure. ➖ ✅
Portal do Azure Migração passo a passo no portal do Azure. ✅ ✅
Infraestrutura como código Crie código de migração repetível usando modelos ARM, ficheiros Bicep ou Terraform. ➖ ➖

✅ Suportado e em destaque | ➖ Suportado, não destacado | ❌ Não suportado

Para ver as instruções corretas para a sua aplicação, selecione o sistema operativo no topo do artigo.

Pode consultar o fluxo de trabalho de migração do Linux Consumption e o fluxo de trabalho de migração do Windows Consumption no repositório de competências do Azure.

O que esperar

Os passos específicos necessários para migrar a sua aplicação de plano de consumo dependem tanto do sistema operativo como do seu método de migração específico:

Configura o GitHub Copilot usando os pré-requisitos e depois usa o prompt em Iniciar a migração. O Copilot orienta-o na avaliação, preparação de código Windows para Linux, criação e configuração de destinos, implantação, validação e corte de produção. Pede a tua opinião ou aprovação quando necessário.

As secções seguintes explicam as verificações e as tarefas de migração a título de referência. Não precisas de realizar os passos manuais de CLI ou portal quando segues o fluxo de trabalho do Copilot.

O Copilot mantém a aplicação de origem em modo só de leitura durante a avaliação e replicação. Alterações aos gatilhos de origem, definições, estado da aplicação ou recursos requerem aprovação explícita para a ação específica.

Independentemente do seu método de migração, aqui estão os princípios gerais da migração:

  • Verifique a compatibilidade do código. As aplicações Linux numa versão de idioma suportada geralmente não precisam de alterações de código. As aplicações do Windows também devem remover dependências específicas do Windows antes de serem executadas no Linux. Este guia ajuda-te a verificar.
  • Tem de criar uma nova aplicação. O processo de migração cria uma nova aplicação Flex Consumption juntamente com a existente, para que possa testar antes de mudar.
  • Usa o mesmo grupo de recursos. A tua nova aplicação corre no mesmo grupo de recursos com acesso às mesmas dependências.
  • Tu controlas o tempo. Teste a sua nova aplicação cuidadosamente antes de redirecionar o tráfego e encerrar a antiga.

Observação

Se estiveres a usar o Azure Government, o Flex Consumption ainda não está disponível lá. Consulte esta orientação agora para estar preparado quando estiver disponível.

Vantagens de migrar para o Flex Consumption

Quando migra uma aplicação compatível, as suas funções recebem estes benefícios:

  • Arranques a frio mais rápidos: Instâncias sempre prontas significam que as suas funções respondem mais rapidamente.
  • Melhor escalabilidade: A escalabilidade por função e os controlos de concorrência dão-te mais controlo.
  • Suporte a redes virtuais: Ligue as suas funções a redes privadas e utilize endpoints privados.
  • Investimento ativo: O Consumo Flexível é o ponto onde as novas funcionalidades e melhorias surgem primeiro.

Para mais informações, consulte benefícios do plano Flex Consumption e comparação de planos de alojamento.

Implementações baseadas em recursos

Este artigo não mostra explicitamente como usar infrastructure-as-code (IaC) para migração. No entanto, pode seguir os mesmos passos de migração para converter os seus templates ARM, ficheiros Bicep e configurações do Terraform.

O plano Flex Consumption introduz uma nova secção functionAppConfig na definição de recursos Microsoft.Web/sites, que substitui várias definições legadas da aplicação. Para mais detalhes sobre estas alterações, consulte as descontinuidades do plano Flex Consumption.

Estes recursos podem ajudá-lo a começar com as implementações de recursos Flex Consumption:

Após uma migração bem-sucedida, atualize os seus ficheiros de implementação de recursos para corresponder à nova configuração do Flex Consumption.

Pré-requisitos

  • Aceder à subscrição do Azure que contém uma ou mais aplicações funcionais para migrar. A conta utilizada para realizar as tarefas de migração deve ter as seguintes permissões:

    • Crie e gerencie aplicativos funcionais e planos de hospedagem do Serviço de Aplicativo.
    • Atribua funções a identidades gerenciadas.
    • Crie e gerencie contas de armazenamento.
    • Crie e gerencie recursos do Application Insights.
    • Acede a todos os recursos dependentes da tua app, como Azure Key Vault, Azure Service Bus ou Hubs de Eventos do Azure.

    Atribuir os papéis de Proprietário ou Contribuinte ao seu grupo de recursos geralmente fornece permissões suficientes.

  • Para migrar usando o CLI do Azure ou GitHub Copilot:

    • CLI do Azure, versão 2.77.0 ou posterior. É obrigatório ao usar comandos CLI do Azure. Os scripts são testados usando CLI do Azure em Azure Cloud Shell.
    • Inicie sessão na CLI do Azure executando az login. Certifica-te de que estás ligado à subscrição que contém as aplicações funcionais que queres migrar.
    az extension add --name resource-graph
    
  • Para migrar usando o GitHub Copilot, configure o GitHub Copilot no modo desejado:

    1. Instalar Copilot CLI

    2. Inicie sessão no CLI do Azure se ainda não o fez:

      az login
      

      Certifica-te de que estás ligado à subscrição que contém as aplicações funcionais que queres migrar.

    3. Iniciar o CLI Copilot:

      copilot
      
    4. Adicione a fonte do marketplace (apenas pela primeira vez):

      /plugin marketplace add microsoft/azure-skills
      
    5. Instale o plugin:

      /plugin install azure@azure-skills
      
    6. Após a instalação, recarregar servidores do Model Context Protocol (MCP):

      /mcp reload
      
    7. Verifique a instalação:

      /mcp show
      

      Deverás ver o plugin Azure listado com uma marca de verificação. A functionapp ferramenta faz parte deste plugin.

    Sugestão

    Se o Copilot direcionar a subscrição errada, pede-lhe para usar um ID de subscrição específico. Pode encontrar o seu ID de subscrição ao executar az account show --query id -o tsv. Se o Copilot se ligar ao tenant Azure errado, peça ao Copilot para usar o seu ID de tenant específico ao fazer chamadas para o Azure. Pode encontrar o seu ID de inquilino ao executar az account show --query tenantId -o tsv.

Identificar potenciais aplicações para migrar

Sugestão

Já sabe qual aplicação migrar? Pode saltar esta secção e ir diretamente para Avaliar a sua aplicação existente.

Se tem várias aplicações funcionais e não tem a certeza de quais precisam de migrar, esta secção ajuda-o a encontrá-las. Recebes uma lista de nomes de aplicações, grupos de recursos, localizações e pilhas de runtime.

Para iniciar uma migração interativa que analisa a sua subscrição e o convida a escolher que aplicações migrar, use este prompt:

migrate my linux function apps in azure from consumption to flex consumption

O Copilot identifica as suas aplicações elegíveis para o Linux Consumption, permite-lhe escolher quais migrar e depois guia-o pela avaliação, criação de aplicações, configuração e implementação de cada aplicação. Continuar com os passos de migração.

Se só quiser ver quais as apps elegíveis sem iniciar a migração, use este prompt em vez disso:

list my linux consumption apps eligible for flex consumption migration

O Copilot devolve uma lista de aplicações elegíveis e inelegíveis, juntamente com as razões de quaisquer incompatibilidades. Pode então migrar uma aplicação específica usando o prompt em Iniciar a migração para Linux.

Para identificar aplicações de Windows Consumption na sua subscrição sem iniciar uma migração, use este prompt:

What Windows Consumption Function Apps can I upgrade to Flex Consumption?

O Copilot descobre aplicações candidatas e verifica a sua região, runtime, configuração de implementação e outros requisitos de compatibilidade. A descoberta identifica candidatos, não garante que cada aplicação esteja pronta para migrar. Rever a avaliação antes de prosseguir.

Para migrar uma aplicação específica, use o prompt em Start the migration.

Avaliar seu aplicativo existente

A habilidade Azure realiza estas tarefas automaticamente por si. Ao usar a habilidade Azure, vai diretamente a Iniciar a migração.

Antes de migrar, percorra esta lista rápida para garantir que a sua aplicação está pronta. A maioria das aplicações passa nestas verificações sem problemas:

Ao usar o Copilot, peça uma avaliação sem criar uma aplicação de destino:

Assess whether my Windows Consumption Function App <APP_NAME> is ready to migrate to Flex Consumption.

Substitui <APP_NAME> pelo nome da tua aplicação de origem. O Copilot gera uma avaliação de compatibilidade e regista os bloqueadores e a preparação necessária. Para aplicações Windows, verifique também as dependências específicas de código do Windows.

Confirmar compatibilidade de região

Confirme se o plano Flex Consumption é atualmente suportado na mesma região que a aplicação Plano de consumo que pretende migrar.

Confirmado: Quando a saída do comando az functionapp flex-migration list ou a avaliação Copilot inclui a sua aplicação na lista eligible_apps, o plano Flex Consumption é suportado na mesma região usada pela sua aplicação Linux Consumption atual. Nesse caso, pode continuar a verificar a compatibilidade do stack de linguagem.

Ação necessária: Quando a saída incluir a sua aplicação na lista ineligible_apps, verá uma mensagem de erro a indicar The site '<name>' is not in a region supported in Flex Consumption. Please see the list of regions supported in Flex Consumption by running az functionapp list-flexconsumption-locations. Neste caso, o plano Flex Consumption não é suportado na região usada pela tua aplicação Linux Consumption atual.

O Copilot verifica se o Flex Consumption está disponível na região da aplicação de origem e regista o resultado na avaliação. Se a região não for suportada, resolve a escolha da localização antes de resolveres criar a aplicação de destino.

Se sua região não for suportada no momento e você ainda optar por migrar seu aplicativo funcional, seu aplicativo deverá ser executado em uma região diferente onde o plano Flex Consumption é suportado. No entanto, executar seu aplicativo em uma região diferente de outros serviços conectados pode introduzir latência extra. Certifique-se de que a nova região possa atender aos requisitos de desempenho do seu aplicativo antes de concluir a migração.

Verificar a compatibilidade do stack de linguagens

Os planos Flex Consumption não suportam todas as stacks de linguagem do Functions. Esta tabela indica quais pilhas de idiomas são suportadas no momento:

Configuração da pilha Nome da pilha Suportado
dotnet-isolated .NET (modelo de trabalhador isolado) ✅ Sim
node JavaScript/TypeScript ✅ Sim
java Java ✅ Sim
python Python ✅ Sim
powershell PowerShell ✅ Sim
go Go ✅ Sim
dotnet .NET (modelo em processo) ❌ Não
custom Manipuladores personalizados ✅ Sim

Confirmado: Se o comando az functionapp flex-migration list ou a avaliação do Copilot incluiram a sua aplicação na lista eligible_apps, a sua aplicação de Consumo do Linux já está a usar uma pilha de linguagens suportada pelo Flex Consumption e pode continuar a verificar a compatibilidade da versão da pilha.

Ação necessária: Se a saída incluiu a sua aplicação na ineligible_apps lista com uma mensagem de erro que indica Runtime '<name>' not supported for function apps on the Flex Consumption plan., a sua aplicação Linux Consumption não está a utilizar um runtime suportado pelo Flex Consumption.

Se a sua aplicação de funções estiver a utilizar uma pilha de tempo de execução sem suporte:

O Copilot lê o runtime de origem e a versão host das Funções durante a avaliação. Um runtime de trabalho não suportado ou uma versão host de Funções diferente da versão 4 requer preparação antes da migração.

Verificar a compatibilidade da versão da pilha

Antes de migrar, certifique-se de que a versão da stack em tempo de execução da sua aplicação é suportada ao correr num plano Flex Consumption na região atual.

Confirmado: Se o comando az functionapp flex-migration list ou a análise do Copilot incluir a sua aplicação na lista eligible_apps, a sua aplicação Linux Consumption já está a usar uma versão suportada do conjunto de tecnologias de linguagem do Flex Consumption e pode continuar a verificar a utilização dos slots de implantação.

Ação necessária: Se a saída incluir a sua aplicação na ineligible_apps lista com uma mensagem de erro indicando Invalid version {0} for runtime {1} for function apps on the Flex Consumption plan. Supported versions for runtime {1} are {2}., a sua aplicação Linux Consumption não está a executar um runtime suportado pelo Flex Consumption.

O Copilot compara a versão em língua de origem com as versões suportadas pelo Flex Consumption na região-alvo. Utiliza metadados do projeto ou do pacote de implementação quando a configuração do Azure está em falta ou é ambígua, e pede-lhe para selecionar uma versão alvo quando a evidência não identifica uma única versão suportada.

Se a sua app de funções usar uma versão de stack de linguagem não suportada, primeiro atualize o código da sua app para uma versão suportada antes de migrar para o plano Flex Consumption.

Verificar o uso de slots de implementação

Os aplicativos de plano de consumo podem ter um slot de implantação definido. Para mais informações, consulte Funções do Azure slots de implementação. No entanto, o plano Flex Consumption atualmente não suporta slots de implantação. Antes de migrar, verifique se a sua aplicação tem um slot de deployment. Se for o caso, defina uma estratégia para gerir a sua aplicação sem slots de implementação quando executado num plano Flex Consumption.

Confirmado: Quando a sua aplicação atual tem os slots de implementação ativados, o comando az functionapp flex-migration list ou a avaliação Copilot mostra a sua aplicação de funções na lista eligible_apps sem aviso. Continue a verificar o uso dos certificados.

Ação necessária: A tua aplicação atual tem os espaços de implementação ativados, e o resultado mostra a tua aplicação de funções na eligible_apps lista, mas adiciona um aviso que diz: The site '<name>' has slots configured. This condition doesn't block migration, but please note that slots aren't supported in Flex Consumption.

O Copilot deteta os slots de implementação de origem e regista-os na análise. Como o Flex Consumption não suporta slots, escolha como consolidar as respetivas funcionalidades ou usar aplicações separadas antes de continuar.

Se a sua aplicação de funções estiver atualmente a usar slots de implantação, não poderá reproduzir esta funcionalidade no plano Flex Consumption. Antes de migrar, considere as seguintes opções:

  • Rearquitetar a sua aplicação para usar aplicações funcionais separadas. Dessa forma, você pode desenvolver, testar e implantar seu código de função em um segundo aplicativo de não produção em vez de usar slots.
  • Migre qualquer novo código ou funcionalidades do slot de implementação para o slot principal (produção).

Verificar o uso de certificados

O plano Flex Consumption suporta certificados TLS/SSL através de um modelo de certificado com âmbito no site. Ao contrário de outros planos de alojamento onde os certificados são partilhados entre aplicações na mesma região e grupo de recursos, os certificados Flex Consumption são atribuídos a cada aplicação individual. Se a sua aplicação atual utiliza certificados, esteja ciente destas diferenças:

  • A definição da aplicação WEBSITE_LOAD_CERTIFICATES não é utilizada no plano Flex Consumption. Em vez disso, torna cada certificado acessível ao seu código usando a opção Acessível ao código da aplicação no portal. Para mais informações, consulte Tornar um certificado acessível ao seu código.
  • Como o Flex Consumption corre no Linux, o seu código tem de carregar certificados a partir dos caminhos dos ficheiros (/var/ssl/certs para público, /var/ssl/private para privado) em vez de a partir da Windows loja de certificados.
  • Cada aplicação suporta um máximo de três certificados privados e três certificados públicos (.cer).

Confirmado: Se o comando az functionapp flex-migration list ou a avaliação Copilot incluir a sua aplicação na lista eligible_apps, a sua aplicação Linux Consumption é compatível e pode continuar a Verificar os gatilhos de armazenamento do seu Blob. Se a sua aplicação usar certificados, precisa de os adicionar à nova aplicação após a migração.

Ação necessária: Se a saída incluir a sua aplicação na lista ineligible_apps com um erro relacionado com certificados, reveja as considerações sobre certificados no âmbito do site e verifique se a sua aplicação pode funcionar dentro dos limites dos certificados.

O Copilot faz o inventário dos certificados usados pela aplicação de origem e verifica os limites de certificados no âmbito do site. Não transfere automaticamente os certificados. Adicione novamente os certificados necessários usando o processo de certificado com âmbito de site, e atualize o código que lê a loja de certificados do Windows para usar os caminhos dos ficheiros de certificados do Linux.

Se a sua aplicação usar certificados, planeie voltar a adicioná-los à nova aplicação Flex Consumption após a migração, utilizando o processo de certificado com âmbito do site. Certifique-se de que as necessidades de certificado da sua aplicação se enquadram nos limites definidos pelo site (3 privados + 3 públicos por aplicação).

Verificar os gatilhos do Blob Storage

Atualmente, o plano Flex Consumption suporta apenas gatilhos baseados em eventos para o armazenamento do Azure Blob, que são definidos com uma configuração Source de EventGrid. O plano não suporta gatilhos de armazenamento Blob que utilizam verificação de contentores e uma Source configuração de LogsAndContainerScan. Como o contentor polling é o padrão, deve determinar se algum dos seus gatilhos de armazenamento Blob usa a configuração de origem padrão LogsAndContainerScan . Para obter mais informações, consulte Gatilho num contentor de blobs.

Confirmado: Se o az functionapp flex-migration list comando ou a avaliação do Copilot incluir a sua aplicação na eligible_apps lista, a sua aplicação Linux Consumption não está a usar gatilhos de armazenamento Blob de sondagem. Você pode continuar a considerar serviços dependentes.

Ação necessária: Se a saída incluir a sua aplicação na lista com uma mensagem de erro a indicar ineligible_apps, a sua aplicação de "Linux Consumption" não é compatível com o "Flex Consumption".

O Copilot identifica as associações de acionador Blob pelo tipo e assinala qualquer acionador cuja origem não esteja explicitamente EventGrid. Orienta a alteração de código necessária e a configuração da subscrição de eventos antes da implementação.

Se a sua aplicação tiver gatilhos de armazenamento de Blob que não tenham uma fonte de Grelha de Eventos, deve mudar para uma fonte de Grelha de Eventos antes de migrar para o Plano de Consumo Flex.

Importante

Antes de converter um gatilho Blob de sondagem, verifique se o Event Grid consegue chegar ao endpoint de entrega de eventos da aplicação de função alvo. A entrega push do Event Grid não suporta a entrega através de endpoints privados. Se o destino for apenas privado, resolve-se a arquitetura de entrega de eventos antes da migração; a integração de rede virtual sozinha não fornece conectividade de entrada a partir do Event Grid.

As etapas básicas para alterar um gatilho de armazenamento de Blob existente para uma origem do Event Grid são:

  1. Adicione ou atualize a propriedade na definição de gatilho do seu armazenamento de Blob para source e reimplante a aplicação.

  2. Crie a URL do ponto de extremidade em seu aplicativo de função usado para ser usado pela assinatura do evento.

  3. Crie uma assinatura de evento em seu contêiner de armazenamento de Blob.

Para mais informações, veja Tutorial: Acionar Funções do Azure em contentores de blob usando uma subscrição para eventos.

Verifique dependências de código específicas do Windows

O Flex Consumption corre no Linux. Revise a sua aplicação para APIs exclusivas do Windows, pacotes, binários nativos, caminhos específicos do Windows e pressupostos de distinção entre maiúsculas e minúsculas, módulos PowerShell e acesso à loja de certificados do Windows. Aplicações direcionadas para o .NET Framework ou publicadas para um identificador de runtime do Windows também requerem preparação.

O Flex Consumption não suporta dependências geridas por PowerShell. Antes da migração, empacota todos os módulos PowerShell necessários com a tua aplicação na sua pasta raiz Modules e verifica se esses módulos suportam Linux. Um requirements.psd1 ficheiro sozinho não instala módulos na aplicação de destino. Para mais informações, consulte Gestão de dependências do PowerShell.

Durante a avaliação, o Copilot oferece uma varredura heurística de dependência. Forneça um diretório de origem local ou um repositório com checkout efetuado sempre que possível. Se a fonte não estiver disponível, o Copilot pode recuperar o pacote implementado, mas os artefactos compilados podem limitar a cobertura da varredura. A análise não é exaustiva e és responsável por verificar a compatibilidade com Linux.

Construa e valide quaisquer alterações de código necessárias antes de implementar para a nova aplicação. Se não conseguir remover as dependências obrigatórias do Windows, considere o plano Premium no Windows em vez do Flex Consumption.

Considerar serviços dependentes

Sugestão

Aplicação simples só para HTTP? Se as tuas funções só usarem triggers HTTP e não se ligarem a outros serviços do Azure, provavelmente podes saltar a maior parte desta secção. Lembra-te apenas de atualizar quaisquer clientes para apontarem para o URL da tua nova aplicação após a migração.

Como o Funções do Azure é um serviço de computação, considere o efeito da migração nos dados e serviços, tanto a montante como a jusante da sua aplicação.

Estratégias de proteção de dados

Para proteger tanto os dados a montante como a jusante durante a migração, utilize estas estratégias:

  • Idempotência: Certifique-se de que suas funções podem processar com segurança a mesma mensagem várias vezes sem efeitos colaterais negativos. Para mais informações, consulte Designar Funções do Azure para entrada idêntica.
  • Registo e monitorização: Para acompanhar o processamento de mensagens, ative o registo detalhado em ambas as aplicações durante a migração. Para mais informações, consulte Monitorar execuções em Funções do Azure.
  • Ponto de Verificação: Para gatilhos de streaming, como o gatilho do Hubs de Eventos, implemente comportamentos corretos de ponto de verificação para monitorar a posição de processamento. Para mais informações, consulte Funções do Azure processamento fiável de eventos.
  • Processamento paralelo: considere executar temporariamente ambos os aplicativos em paralelo durante a substituição. Certifique-se de monitorar e validar cuidadosamente como os dados são processados a partir do serviço upstream. Para obter mais informações, consulte Soluções personalizadas de várias regiões para resiliência.
  • Transferência gradual: para sistemas de alto volume, considere implementar uma substituição gradual redirecionando partes do tráfego para o novo aplicativo. Pode gerir o encaminhamento dos pedidos a montante das suas aplicações usando serviços como API Management do Azure ou Gateway de Aplicação do Azure.

Atenuações por tipo de gatilho

Planeie estratégias de mitigação para proteger os dados dos triggers de funções específicas na sua app:

Acionador Risco para os dados Estratégia
Azure Blob Storage Alto Crie um contêiner separado para o gatilho baseado em evento no novo aplicativo.
Com o novo aplicativo em execução, alterne os clientes para usar o novo contêiner.
Permita que o contêiner original seja processado completamente antes de parar o aplicativo antigo.
Azure Cosmos DB Alto Crie um contêiner de concessão dedicado especificamente para o novo aplicativo.
Defina este novo contentor de leasing como a configuração leaseCollectionName na sua nova aplicação.
Requer que as tuas funções sejam idempotentes ou que sejas capaz de lidar com os resultados do processamento de feed de alterações duplicado.
Defina a StartFromBeginning configuração como false no novo aplicativo para evitar o reprocessamento de todo o feed.
Azure Event Grid Médio Recrie a mesma assinatura de evento no novo aplicativo.
Requer que suas funções sejam idempotentes ou você deve ser capaz de lidar com os resultados do processamento de eventos duplicados.
Hubs de Eventos do Azure Médio Crie um novo grupo de consumidores para uso pelo novo aplicativo. Para obter mais informações, consulte Estratégias de migração para gatilhos de grade de eventos.
Azure Service Bus Alto Crie um novo tópico ou fila para uso pelo novo aplicativo.
Atualize os remetentes e os clientes para usarem o novo tópico ou fila.
Depois que o tópico original estiver vazio, desligue o aplicativo antigo.
Fila do Armazenamento do Azure Alto Crie uma nova fila para uso pelo novo aplicativo.
Atualize todos os remetentes e clientes para utilizarem a nova fila.
Depois que a fila original estiver vazia, desligue o aplicativo antigo.
HTTP Baixo Lembre-se de alternar clientes e outros aplicativos ou serviços para direcionar os novos pontos de extremidade HTTP após a migração.
Temporizador Baixo Durante a transição, certifique-se de compensar a programação do temporizador entre as duas aplicações para evitar execuções simultâneas de ambas as aplicações.
Desative o gatilho de temporizador no aplicativo antigo depois que o novo aplicativo for executado com êxito.

Tarefas de pré-migração

Antes de criar a sua nova aplicação Flex Consumption, recolha algumas informações sobre a sua aplicação atual. Este passo garante que não perdes nenhuma definição durante a transição.

Quando usas o Copilot, a competência regista esta configuração como parte do fluxo de trabalho de migração. Revise as suas conclusões e decisões em vez de executar novamente os comandos manuais.

Sugestão

Este passo é maioritariamente trabalho de copiar e colar. Recolhe as definições da sua aplicação existente para as poder aplicar à nova aplicação.

Complete estas tarefas antes de migrar:

Coletar configurações do aplicativo

Se planeia usar as mesmas fontes de gatilho, associações e outras definições das configurações da aplicação, primeiro anote as definições atuais da aplicação no seu plano de Consumo existente.

O Copilot analisa nomes de definição de aplicações sem mostrar valores secretos. Pergunta se deves copiar as definições de origem filtradas ou adiá-las para que possas configurar dependências de alvo isoladas. Se adiar as definições, a implementação espera até que a configuração alvo necessária esteja pronta.

Atenção

As definições da aplicação contêm frequentemente chaves e outros segredos partilhados. Guarda sempre as definições da aplicação de forma segura, idealmente encriptadas. Para melhorar a segurança, utilize autenticação Microsoft Entra ID com identidades geridas na nova aplicação do plano Flex Consumption em vez de segredos partilhados.

Coletar configurações de aplicativos

Existem outras configurações de aplicações para além das definições. Capture estas configurações da sua aplicação existente para que possa recriá-las corretamente na nova aplicação.

Reveja estas definições. Se algum deles existir na aplicação atual, decida se os recria na nova aplicação do plano Flex Consumption:

Configuração Configurações Comentário
Configurações do CORS cors Determina quaisquer configurações existentes de compartilhamento de recursos entre origens (CORS) que seus clientes possam precisar.
Domínios personalizados Se a sua aplicação atualmente usa um domínio diferente de *.azurewebsites.net, precisa de substituir esse mapeamento personalizado por um mapeamento para a nova aplicação.
Versão HTTP http20Enabled Determina se HTTP 2.0 é exigido pelo seu aplicativo.
Apenas HTTPS httpsOnly Determina se o TSL/SSL é necessário para acessar seu aplicativo.
Certificados de cliente recebidos clientCertEnabled
clientCertMode
clientCertExclusionPaths
Define requisitos para solicitações de cliente que usam certificados para autenticação.
Limite máximo de expansão WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT Define o limite de instâncias escaladas. O valor máximo padrão é 200. Esse valor é encontrado nas configurações do seu aplicativo, mas em um aplicativo do plano Flex Consumption ele é adicionado como uma configuração de site (maximumInstanceCount).
Versão mínima de entrada do TLS minTlsVersion Define uma versão mínima do TLS exigida pelo seu aplicativo.
Cifra TLS mínima de entrada minTlsCipherSuite Define um requisito mínimo de codificação TLS para seu aplicativo.
Partilhas de Ficheiros do Azure Montadas azureStorageAccounts Determina se existem compartilhamentos de arquivos montados explicitamente em seu aplicativo (somente Linux).
Credenciais de publicação de autenticação básica do SCM scm.allow Determina se o site descm publicação está ativado. Embora não seja recomendado para segurança, alguns métodos de publicação o exigem.

O Copilot inventaria definições do site, limites de escala, CORS, domínios personalizados e outras configurações. Regista itens não suportados ou manipulados manualmente na avaliação. Os metadados explícitos de montagem do Ficheiros do Azure são apenas de inventário para esta migração do Windows.

Identificar identidades gerenciadas e acesso baseado em função

Antes de migrar, documente se a sua aplicação depende da identidade gerida atribuída pelo sistema ou de quaisquer identidades geridas atribuídas pelo utilizador. Determine as permissões de controlo de acesso baseado em funções (RBAC) concedidas a estas identidades. Você deve recriar a identidade gerenciada atribuída ao sistema e todas as atribuições de função em seu novo aplicativo. Pode reutilizar as suas identidades geridas atribuídas pelo utilizador na sua nova aplicação.

O Copilot inventaria identidades geridas atribuídas ao sistema e ao utilizador, bem como as suas atribuições de funções. Utiliza este inventário para configurar as identidades do alvo e recriar o acesso necessário aos recursos apropriados.

Identificar configurações de autenticação internas

Antes de migrar para o Flex Consumption, recolha informações sobre quaisquer configurações de autenticação incorporadas. Se quiser que a sua aplicação use os mesmos comportamentos de autenticação do cliente, deve recriá-los na nova aplicação. Para mais informações, consulte Autenticação e autorização em Funções do Azure.

Preste especial atenção aos URIs de redirecionamento, redirecionamentos externos permitidos e configurações de token para garantir uma transição suave para usuários autenticados.

O Copilot inventaria os fornecedores ativados e o comportamento de autenticação sem expor segredos dos fornecedores. Identifica URIs de callback específicos do destino e orienta a configuração do provedor antes da implementação do código. Não copia automaticamente registos de fornecedores ou segredos.

Rever as restrições de acesso entrante

Pode definir restrições de acesso de entrada nas aplicações num plano de Consumo. Talvez você queira manter essas restrições em seu novo aplicativo. Para cada restrição que definir, certifique-se de captar estas propriedades:

  • Endereços IP ou intervalos CIDR
  • Valores de prioridade
  • Tipo de ação (Permitir/Negar)
  • Nomes das regras

O Copilot inventaria e recria restrições de acesso compatíveis. Não enfraquece automaticamente essas restrições para que as verificações de saúde da implantação ou a validação HTTP sejam bem-sucedidas.

Ao executar no plano Flex Consumption, você pode recriar essas restrições baseadas em IP de entrada. Você pode proteger ainda mais seu aplicativo implementando outras restrições de rede, como integração de rede virtual e pontos de extremidade privados de entrada. Para obter mais informações, consulte Integração de rede virtual.

Iniciar a migração

Importante

Se o acesso à Chave Partilhada estiver desativado no host selecionado ou na conta de armazenamento de implementação, ou se a sua organização necessitar de acesso a armazenamento sem chave, configure a autenticação de identidade gerida e as atribuições de funções necessárias tanto para o armazenamento do host como para o armazenamento de implementação. Os fluxos básicos de criação baseados em CLI descritos neste artigo utilizam strings de ligação de armazenamento. Criar a aplicação com chaves e convertê-la depois não satisfaz o requisito de proibir a autenticação por Chave Partilhada durante o provisionamento. Para mais informações, consulte Ligações de armazenamento baseadas em identidade e Configurar definições de implementação.

Se utilizou o prompt de descoberta na secção Identificar, a capacidade já avaliou, criou e configurou a sua nova aplicação Flex Consumption. Pode saltar esta secção e continuar para os passos de Migração.

Se já sabe qual a aplicação a migrar, use este prompt:

migrate my app <APP_NAME> to flex consumption

A competência gere automaticamente a avaliação, criação de aplicações e migração de configuração — equivalente ao az functionapp flex-migration start comando e aos seus passos de verificação.

Depois de iniciar a migração com sucesso, continue a obter o pacote de implementação de código.

Se já sabe qual a aplicação a migrar, use este prompt:

Migrate my Windows Consumption Function App <APP_NAME> to Flex Consumption.

Substitui <APP_NAME> pelo nome da tua aplicação de origem. O Copilot apresenta o plano de migração, realiza a avaliação, inventaria a configuração e cria uma nova aplicação Flex Consumption juntamente com a origem.

Por defeito, o fluxo de trabalho propõe <APP_NAME>-flex para o nome da aplicação de destino. O Copilot pede para escolher se reutiliza a conta de armazenamento de origem, cria uma nova ou usa uma conta existente específica antes de criar a aplicação de destino. Pode pedir um nome do destino diferente ou indicar a sua preferência de armazenamento no prompt. Revê a escolha de armazenamento porque dependências partilhadas permitem que ambas as aplicações processem os mesmos eventos.

O Copilot verifica se as contas de armazenamento selecionadas permitem autenticação por Chave Partilhada e pergunta sobre os requisitos da política apenas de identidade. Se a criação baseada em chaves não for permitida, o Copilot pausa antes de criar a aplicação alvo. Crie uma aplicação Flex Consumption vazia dedicada a esta migração na mesma subscrição, usando infraestrutura como código com prioridade à identidade. Configurar o acesso de identidade gerida tanto para o armazenamento do anfitrião como para o da implementação, as atribuições de funções necessárias e a monitorização. Ainda não faças o deployment do código da função. Para exemplos de provisionamento, veja os exemplos de infraestrutura como código Flex Consumption.

Devolva o ID completo do recurso Azure do alvo e o caminho do ficheiro de progresso guardado. O Copilot verifica o alvo existente e, após a sua aprovação, retoma a configuração e implementação sem criar outra aplicação. Use este prompt:

Resume the Flex Consumption migration for <APP_NAME> using progress at <PROGRESS_FILE_PATH>.
I provisioned a keyless target at <TARGET_RESOURCE_ID>. Use that existing target; do not create another app.

Antes da implantação, o Copilot orienta a preparação do código Windows-para-Linux, a configuração do alvo, a autenticação incorporada e a segurança de accionadores não HTTP. Depois, oferece implantação através de um pipeline atualizado, um projeto local ou um pacote de implantação compatível.

Por defeito, o Copilot regista o progresso em .azure-upgrade/<SOURCE_APP_NAME>/upgrade-status.md. Para retomar, use este prompt:

Resume the Flex Consumption migration for <APP_NAME>.

Obtenha o pacote de implantação de código

Para redistribuir a sua aplicação, precisa dos ficheiros fonte do seu projeto ou do pacote de implementação. Idealmente, manténs os ficheiros do teu projeto em controlo de versões para poderes facilmente redistribuir código de funções na tua nova aplicação. Se você tiver seus arquivos de código-fonte, poderá ignorar esta seção e continuar para Capturar benchmarks de desempenho (opcional).

Se já não tiver acesso aos ficheiros fonte do seu projeto, pode descarregar o pacote de implementação atual a partir da aplicação Consumption Plan existente no Azure. A localização do pacote de implementação depende de correr em Linux ou Windows.

Os aplicativos de plano de consumo no Linux mantêm o arquivo de pacote zip de implantação em um destes locais:

  • Um contentor de armazenamento Blob Azure chamado scm-releases na conta de armazenamento padrão do host (AzureWebJobsStorage). Esse contêiner é a fonte de implantação padrão para um aplicativo de plano de consumo no Linux.

  • Se o seu aplicativo tiver uma WEBSITE_RUN_FROM_PACKAGE configuração que seja uma URL, o pacote estará em um local acessível externamente que você mantém. Um pacote externo deve ser hospedado em um contêiner de armazenamento de blob com acesso restrito. Para obter mais informações, consulte URL do pacote externo.

Sugestão

Se restringir o acesso da sua conta de armazenamento apenas à identidade gerida, pode ser necessário conceder à sua conta Azure acesso de leitura ao contentor de armazenamento, adicionando-a à função Storage Blob Data Reader.

O pacote de implementação é comprimido usando o squashfs formato. Para ver o que está dentro do pacote, você deve usar ferramentas que possam descompactar esse formato.

Use estas etapas para baixar o pacote de implantação do seu aplicativo atual:

A competência de migração do Copilot tenta descarregar e redistribuir o seu projeto de código existente para a nova aplicação. Se não for bem-sucedido, ele orienta-o na obtenção e implementação do seu pacote de código como parte do fluxo de trabalho de migração. Pode saltar esta secção e continuar para os Passos de Migração.

O local dos arquivos de origem do projeto depende da configuração do WEBSITE_RUN_FROM_PACKAGE aplicativo da seguinte maneira:

WEBSITE_RUN_FROM_PACKAGE valor Local do arquivo de origem
1 Os ficheiros estão num pacote zip que é armazenado na partilha Ficheiros do Azure da conta de armazenamento definido pelo parâmetro WEBSITE_CONTENTAZUREFILECONNECTIONSTRING. A WEBSITE_CONTENTSHARE definição define o nome da partilha de ficheiros.
URL de endpoint Os arquivos estão em um pacote zip em um local acessível externamente que você mantém. Um pacote externo deve ser hospedado em um contêiner de armazenamento de blob com acesso restrito. Para obter mais informações, consulte URL do pacote externo.

O Copilot pede primeiro um diretório de origem local. Se a fonte não estiver disponível, é possível recuperar o pacote implementado a partir da partilha de conteúdo da aplicação de origem ou do URL do pacote externo. Verifica se o pacote é adequado para Linux e Flex Consumption; Compilações específicas para Windows requerem preparação em vez de nova implementação direta.

Capturar benchmarks de desempenho (opcional)

Se planeia validar a melhoria de desempenho na sua aplicação com base na migração para o plano Flex Consumption, considere capturar os parâmetros de desempenho do seu plano atual. Depois, pode compará-los com os mesmos benchmarks da sua aplicação a correr num plano Flex Consumption.

Sugestão

Compare sempre o desempenho em condições semelhantes, como hora do dia, dia da semana e carga de clientes. Tente executar os dois benchmarks o mais simultaneamente possível.

Aqui estão algumas referências a serem consideradas para seus testes de desempenho estruturados:

Benchmark sugerido Comentário
Arranque a frio Meça o tempo desde a primeira solicitação até a primeira resposta após um período ocioso.
Vazão Meça o número máximo de pedidos por segundo usando ferramentas de teste de carga para determinar como a aplicação lida com pedidos simultâneos.
Latência Acompanhe os tempos de resposta de P50, P95 e P99 sob várias condições de carga. Você pode monitorar essas métricas no Application Insights.

Use esta consulta Kusto para rever os tempos de resposta de latência sugeridos em Application Insights:

requests
| where timestamp > ago(1d)
| summarize percentiles(duration, 50, 95, 99) by bin(timestamp, 1h)
| render timechart

Etapas de migração

Para migrar as suas funções de uma aplicação de plano de consumo para uma aplicação de plano de consumo flexível, siga estes passos principais:

Verificar se o aplicativo Flex Consumption foi criado e configurado

Depois de executar o comando az-functionapp flex-migration start, verifique se a sua nova aplicação Flex Consumption foi criada com sucesso e corretamente configurada. Aqui estão algumas etapas para validar os resultados da migração:

A competência de migração do Copilot verifica automaticamente a nova aplicação como parte da migração. Se iniciaste a migração usando um pedido ao Copilot em iniciar a migração para Linux, a habilidade já verificou que a aplicação foi criada e configurada corretamente. Pode saltar esta secção e continuar a Configurar autenticação incorporada.

Revisão do resumo de migração

O comando de migração automática transfere a maioria das configurações. No entanto, verifique manualmente se estes itens foram migrados. Pode ser necessário configurá-los manualmente:

  • Certificados: Adicione novamente os certificados TLS/SSL na aplicação Flex Consumption através do processo de certificados com âmbito do site.
  • Espaços de implementação: Não suportados no Flex Consumption.
  • Definições de autenticação integradas: Precisa de reconfigurar estas definições manualmente.
  • Definições CORS: Pode ser necessário verificar estas definições manualmente, dependendo da sua configuração.

Se alguma configuração crítica estiver em falta ou incorreta, configure-a manualmente utilizando os passos descritos nas secções do processo de migração Windows deste artigo.

Revisão final do plano

Antes de prosseguir com o processo de migração, reserve um momento para executar estas últimas etapas preparatórias:

Quando usar o Copilot, reveja a avaliação, inventário de configuração, alterações de código, escolha de implantação e decisões de segurança relativas ao acionador antes de aprovar a criação e implantação do destino. Uma migração bem-sucedida apenas por validação não significa que o tráfego de produção ou os gatilhos sejam redirecionados.

  • Revise todas as informações coletadas: examine todas as anotações, detalhes de configuração e configurações do aplicativo que você documentou nas seções de avaliação e pré-migração anteriores. Se algo não estiver claro, reexecute novamente os comandos da CLI do Azure ou obtenha a informação no portal.

  • Defina seu plano de migração: com base em suas descobertas, crie uma lista de verificação para sua migração que destaque:

    • Todas as configurações que precisam de atenção especial
    • Gatilhos e ligações ou outras dependências que podem ser afetadas durante a migração
    • Estratégia de teste para validação pós-migração
    • Plano de reversão se houver problemas inesperados
  • Planeamento do tempo de inatividade: Considere quando parar a aplicação de função original para evitar tanto a perda de dados como o processamento duplicado de eventos, e como esta migração pode afetar os seus utilizadores ou sistemas a jusante. Em alguns casos, pode ser necessário desativar funções específicas antes de parar todo o aplicativo.

Uma revisão final cuidadosa ajuda a garantir um processo de migração mais suave e minimiza o risco de ignorar configurações importantes.

Criar uma aplicação no plano Flex Consumption

Pode criar uma aplicação de funções no plano Flex Consumption juntamente com outros recursos Azure necessários de várias formas:

Criar opção Artigos de referência
GitHub Copilot Use o prompt do Windows em Iniciar a migração. O Copilot confirma os recursos alvo e cria a aplicação como parte do fluxo de trabalho guiado.
CLI do Azure Criar um aplicativo Flex Consumption
portal do Azure Criar uma aplicação de funções no portal Azure
Infraestrutura como código Modelo ARM
azd
Bicep
Terraforma
Visual Studio Code Visual Studio Code implantação
Visual Studio Visual Studio implantação

Sugestão

Sempre que possível, utilize o Microsoft Entra ID para autenticação em vez de strings de ligação, que contêm chaves partilhadas. O uso de identidades gerenciadas é uma prática recomendada que melhora a segurança, eliminando a necessidade de armazenar segredos compartilhados diretamente nas configurações do aplicativo. Se a sua aplicação original usava strings de ligação, o plano Flex Consumption suporta identidades geridas. A maioria desses links mostra como habilitar identidades gerenciadas em seu aplicativo de função.

Aplicar configurações migradas do aplicativo no novo aplicativo

Antes de implementar o seu código, configure a nova aplicação com as definições relevantes do plano Flex Consumption da sua aplicação de funções original.

Importante

Nem todas as configurações do aplicativo Plano de consumo são suportadas quando executadas em um plano Flex Consumption. Para obter mais informações, consulte Descontinuações do plano Flex Consumption.

Após a aprovação, o Copilot copia as definições suportadas da aplicação sem mostrar ou persistir valores secretos brutos. Preserva o armazenamento pertencente ao alvo e as definições do Application Insights. Também revê : as __ conversões de nomes necessárias no Linux e para se os nomes de origem forem mapeados de forma ambígua.

Aplicar outras configurações de aplicativo

Encontre a lista de outras configurações de aplicações da sua aplicação antiga que recolheu durante a pré-migração e defina-as na nova aplicação.

O Copilot aplica a configuração compatível do site a partir do inventário e verifica o destino. Definições não suportadas e itens que requerem manuseamento manual continuam a ser trabalho de seguimento explícito em vez de serem copiados silenciosamente.

Definir configurações de escala e simultaneidade

O plano Flex Consumption utiliza escalabilidade por função. Cada função dentro da sua aplicação escala de forma independente com base na sua carga de trabalho. A escalabilidade está mais estritamente relacionada com as definições de concorrência. Estas definições ajudam-te a tomar decisões de escalonamento com base nas execuções concorrentes atuais. Para obter mais informações, consulte Dimensionamento por função e Simultaneidade no artigo Plano de consumo flexível.

Se quiser que a sua nova aplicação escale como a original, considere as definições de concorrência. A definição de valores de simultaneidade mais altos pode resultar na criação de menos instâncias para lidar com a mesma carga.

Se definires um limite personalizado de scale-out na tua aplicação original, podes aplicá-lo à tua nova aplicação. Caso contrário, salta para a secção seguinte.

O número máximo padrão de instâncias é 100. Define um valor entre 1 e 1.000.

Observação

Reduzir o número máximo de instâncias abaixo de 40 para aplicações com função HTTP pode causar falhas frequentes nos pedidos e janelas prolongadas de limitação quando o tráfego ultrapassa a capacidade. Esta configuração destina-se apenas a cenários avançados onde a escala limitada é aceitável e está totalmente testada.

O Copilot verifica qualquer definição de escalabilidade horizontal máxima da origem com o intervalo suportado do Flex Consumption antes de a aplicar. Se a fonte não definiu um limite personalizado, mantém o valor predefinido do destino. Reveja o ajuste da concorrência específico da carga de trabalho após a migração.

Configurar quaisquer domínios personalizados e acesso CORS

Se a sua aplicação original tinha domínios personalizados vinculados ou definições de CORS, recrie-as na nova aplicação. Para mais informações sobre domínios personalizados, consulte Configurar um domínio personalizado existente em Serviço de Aplicações do Azure.

O Copilot recria uma configuração CORS compatível e orienta a configuração de domínio personalizado. Qualquer alteração nas ligações de origem, DNS ou encaminhamento de produção requer aprovação separada; criar a aplicação alvo não completa o corte de tráfego.

Configurar identidades gerenciadas e atribuir funções

A forma como configura as identidades geridas na sua nova aplicação depende do tipo de identidade gerida:

Tipo de identidade gerida Criar identidade Atribuições de funções
Atribuída pelo utilizador Opcional Você pode continuar a usar as mesmas identidades gerenciadas atribuídas pelo usuário com o novo aplicativo. Você deve reatribuir essas identidades ao seu aplicativo Flex Consumption e verificar se elas ainda têm as atribuições de função corretas nos serviços remotos. Se você optar por criar novas identidades para o novo aplicativo, deverá atribuir as mesmas funções que as identidades existentes.
Atribuído pelo sistema Sim Como cada aplicativo de função tem sua própria identidade gerenciada atribuída ao sistema, você deve habilitar a identidade gerenciada atribuída ao sistema no novo aplicativo e reatribuir as mesmas funções que no aplicativo original.

Recriar corretamente as atribuições de funções é fundamental para garantir que a tua aplicação de funções tenha o mesmo acesso aos recursos do Azure após a migração.

Sugestão

Se a sua aplicação original usava cadeias de ligação ou outros segredos partilhados para autenticação, esta é uma excelente oportunidade para melhorar a segurança da sua aplicação ao mudar para a autenticação Microsoft Entra ID com identidades geridas. Para mais informações, consulte Configurar ligações a serviços remotos no Funções do Azure.

O Copilot permite uma identidade atribuída pelo sistema no destino e recria as atribuições de funções necessárias para a sua nova identidade. Verifica o acesso em relação aos recursos de destino em vez de reutilizar a identidade principal de origem.

Configurar restrições de acesso à rede

Se a tua aplicação original tinha restrições de acesso inbound baseadas em IP, recria as mesmas regras de acesso inbound que queres manter na nova app.

Sugestão

O plano Flex Consumption suporta totalmente a integração de rede virtual. Devido a este suporte, também pode usar endpoints privados de entrada após a migração. Para obter mais informações, consulte Endereços privados.

O Copilot recria restrições de acesso à origem compatíveis e verifica-as. Se essas restrições impedirem testes HTTP diretos, regista a validação como diferida em vez de abrir o acesso automaticamente.

Ativar monitorização

Antes de iniciar seu novo aplicativo no plano Flex Consumption, verifique se o Application Insights está habilitado. Ao configurar o Application Insights, pode resolver quaisquer problemas que surjam durante a implementação e arranque do código.

Implemente uma estratégia de monitoramento abrangente que abranja métricas, logs e custos do aplicativo. Ao utilizar esta estratégia, pode validar o sucesso da sua migração, identificar rapidamente quaisquer problemas e otimizar o desempenho e o custo da sua nova aplicação.

Se planeia comparar esta nova aplicação com a sua aplicação atual, certifique-se de que o seu esquema também recolhe os parâmetros de referência necessários para comparação. Para obter mais informações, consulte Configurar monitoramento.

Ao usar o Copilot, a capacidade verifica a configuração do Application Insights do alvo antes da implantação. Preserva a ingestão autenticada pelo Microsoft Entra quando a fonte a utilizou e valida a telemetria após a implementação.

Configurar autenticação interna

Se a sua aplicação original usava autenticação de cliente incorporada (por vezes chamada de Autenticação Fácil), recrie-a na nova aplicação. Se quiser reutilizar o mesmo registo de cliente, certifique-se de configurar os endpoints autenticados da nova aplicação no provedor de autenticação.

A competência de migração do Copilot para Linux não automatiza a configuração de autenticação incorporada. Use os separadores CLI do Azure ou Azure portal para recriar manualmente as suas definições de autenticação.

O Copilot orienta a configuração e a verificação, fornecedor a fornecedor, no destino. Deve configurar os segredos do fornecedor diretamente através do portal, de uma configuração existente com segredo ou de uma referência Key Vault, e registar o URI de callback alvo. Se a autenticação for adiada, o Copilot para antes de implementar o código para que o destino não exponha endpoints previamente protegidos sem autenticação.

Implemente o código da sua aplicação no novo recurso Flex Consumption

Depois de configurar a sua nova aplicação do plano Flex Consumption com base nas definições da aplicação original, implemente o seu código nos novos recursos da aplicação no Azure.

Atenção

Após uma implementação bem-sucedida, os gatilhos ativados na sua nova aplicação podem começar imediatamente a processar dados dos serviços conectados. Para minimizar dados duplicados e evitar perda de dados ao iniciar a nova aplicação e encerrar a aplicação original, reveja as estratégias que definiu nas mitigações por tipo de gatilho.

Antes da implementação, o Copilot classifica todos os gatilhos e oferece desativar funções não HTTP que podem processar eventos de produção ou executar tarefas agendadas. Se aprovares a desativação, as definições de desativação são escritas e verificadas antes da implementação, e depois verifica-se o estado efetivo da função após a implementação. As funções HTTP permanecem ativadas porque os clientes têm de ser redirecionados para o novo nome de host.

Nomes de funções que contenham um hífen (-) não podem ser desativados no Linux através das definições de aplicação por função. Para estas funções, o Copilot requer uma decisão de segurança separada: isolar dependências, renomear e reempacotar, aprovar uma comutação com prioridade à origem ou aceitar explicitamente o processamento ativo. Não trata uma flag de desativação ineficaz como proteção.

Planeie o tratamento da tecla de função antes da transição HTTP. A nova aplicação tem as suas próprias teclas de anfitrião e de função. Para os chamadores que usam estas chaves, preserve as chaves de anfitrião de origem e de função HTTP compatíveis ou atualize os chamadores para usarem as chaves da aplicação de destino antes de redirecionar o tráfego. O Copilot pergunta qual a estratégia a usar e, se escolher preservação, copia e verifica as chaves selecionadas após a implantação. Valide os pedidos autenticados em relação ao endpoint de destino antes da entrada em produção.

O Copilot não copia a _master tecla nem as teclas do sistema geridas pela extensão. Atualize as integrações de webhooks que exijam chaves de sistema geradas pelo destino separadamente. Preservar as chaves do cliente significa que essas credenciais autorizam ambas as aplicações enquanto coexistem.

Ao usar o Copilot, escolha se atualiza o seu pipeline CI/CD, publica um projeto local preparado ou implementa um pacote recuperado compatível. Após a validação, o Copilot orienta a transição para produção e pede aprovação explícita antes de alterar a aplicação de origem.

O Functions fornece várias maneiras de implantar seu código, seja a partir do projeto de código ou como um pacote de implantação pronto para ser executado.

Sugestão

Se mantém o código do seu projeto num repositório de código-fonte, agora é o momento perfeito para configurar um pipeline de implementação contínua. A implantação contínua permite implantar automaticamente atualizações de aplicativos com base em alterações em um repositório conectado.

Atualize os seus fluxos de trabalho de implementação existentes para implementar o seu código-fonte na nova aplicação:

Você também pode criar um novo fluxo de trabalho de implantação contínua para seu novo aplicativo. Para mais informações, consulte Implementação contínua para Funções do Azure.

Tarefas pós-migração

🎉 Parabéns! A sua aplicação está agora a correr com Flex Consumption. Para tirar o máximo partido do seu novo plano, considere estas tarefas opcionais de seguimento:

Verificar a funcionalidade básica

  1. Verifique se o novo aplicativo está sendo executado em um plano Flex Consumption:

    A capacidade de migração do Copilot valida a sua nova aplicação após a implementação, incluindo o seu plano de alojamento e o estado da função. Os testes HTTP podem permanecer por resolver quando restrições de acesso intencionais os impedem. Revise quaisquer testes diferidos e valide o processamento não HTTP antes do corte de produção. Se precisares de revalidar, usa este prompt:

    verify my flex consumption app <APP_NAME> is running correctly
    
  2. Use um cliente HTTP para invocar pelo menos um endpoint de gatilho HTTP no seu novo aplicativo para garantir que ele responda conforme o esperado.

Capturar medições de desempenho

Com a sua nova aplicação a funcionar, execute os mesmos benchmarks de desempenho que recolheu da sua aplicação original, tais como:

Benchmark sugerido Comentário
Arranque a frio Meça o tempo desde a primeira solicitação até a primeira resposta após um período ocioso.
Vazão Meça o número máximo de pedidos por segundo usando ferramentas de teste de carga para determinar como a aplicação lida com pedidos simultâneos.
Latência Acompanhe os tempos de resposta de P50, P95 e P99 sob várias condições de carga. Você pode monitorar essas métricas no Application Insights.

Use esta consulta Kusto para rever os tempos de resposta de latência sugeridos em Application Insights:

requests
| where timestamp > ago(1d)
| summarize percentiles(duration, 50, 95, 99) by bin(timestamp, 1h)
| render timechart

Observação

As métricas do plano de consumo flexível diferem das métricas do plano de consumo. Ao comparar o desempenho antes e depois da migração, lembre-se de que você deve usar métricas diferentes para acompanhar características de desempenho semelhantes. Para obter mais informações, consulte Configurar monitoramento.

Criar painéis personalizados

Utilizando métricas Azure Monitor e Application Insights, pode criar painéis no portal Azure que mostram gráficos tanto das métricas da plataforma como dos registos de execução e análises.

Considere configurar dashboards e alertas sobre as suas métricas-chave no portal do Azure. Para mais informações, consulte Monitorize a sua aplicação em Azure.

Ajustar configurações do plano

As melhorias reais de desempenho e as implicações de custo da migração podem variar com base nas cargas de trabalho e na configuração específicas do aplicativo. O plano Flex Consumption fornece várias configurações que você pode ajustar para refinar o desempenho do seu aplicativo. Talvez você queira fazer ajustes para corresponder melhor ao comportamento do aplicativo original ou para equilibrar custo versus desempenho. Para obter mais informações, consulte Ajustar seu aplicativo no artigo Consumo flexível.

Atualize os seus ficheiros de implementação de recursos

Se gerir a infraestrutura da sua aplicação de funções usando Bicep ou Terraform, atualize os seus ficheiros de implementação de forma a direcionarem agora o plano Flex Consumption. Esta secção mostra as principais diferenças entre as definições de recursos dos planos de Consumo e Consumo Flexível.

Importante

Não é possível converter uma aplicação de um plano de consumo existente para Flex Consumption no local. Precisas de criar novos recursos com um novo nome ou eliminar os recursos existentes antes de implementares os equivalentes Flex Consumption.

Diferenças principais

Ao migrar as suas implementações de recursos de Consumo para Consumo Flexível, considere estas mudanças importantes:

Aspeto Plano de consumo Plano de consumo Flex
Plano de alojamento SKU Y1 (Dinâmica) FC1 (FlexConsumption)
Plano necessário Opcional (auto-criado) Obrigatório (deve ser explícito)
Sistema operativo Windows ou Linux Apenas Linux
Configuração Configurações do aplicativo functionAppConfig seção
Partilha de conteúdo de armazenamento Configuração WEBSITE_CONTENTSHARE deployment.storage no functionAppConfig

Os exemplos seguintes demonstram as principais diferenças entre as definições de recursos do plano de Consumo e do plano de Consumo Flexível. Eles usam uma identidade gerida atribuída pelo sistema, mas não está completa. Não incluem todos os recursos necessários, como contas de armazenamento, Application Insights ou todas as atribuições de papéis necessárias. Para exemplos completos e prontos para produção, reveja as amostras de Flex Consumption IaC.

Plano de consumo (antes):

// Consumption plan (optional - auto-created if omitted)
resource hostingPlan 'Microsoft.Web/serverfarms@2022-03-01' = {
  name: hostingPlanName
  location: location
  sku: {
    name: 'Y1'
    tier: 'Dynamic'
  }
  properties: {
    reserved: true // Linux
  }
}

resource functionApp 'Microsoft.Web/sites@2022-03-01' = {
  name: functionAppName
  location: location
  kind: 'functionapp,linux'
  properties: {
    serverFarmId: hostingPlan.id
    siteConfig: {
      linuxFxVersion: 'DOTNET-ISOLATED|8.0'
      appSettings: [
        { name: 'FUNCTIONS_EXTENSION_VERSION', value: '~4' }
        { name: 'FUNCTIONS_WORKER_RUNTIME', value: 'dotnet-isolated' }
        { name: 'AzureWebJobsStorage__accountName', value: storageAccount.name }
        { name: 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING__accountName', value: storageAccount.name }
        { name: 'WEBSITE_CONTENTSHARE', value: functionAppName }
        { name: 'APPLICATIONINSIGHTS_CONNECTION_STRING', value: appInsights.properties.ConnectionString }
        { name: 'APPLICATIONINSIGHTS_AUTHENTICATION_STRING', value: 'Authorization=AAD' }
      ]
    }
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Plano de Consumo Flexível (depois):

// Flex Consumption plan (required)
resource hostingPlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: hostingPlanName
  location: location
  sku: {
    name: 'FC1'
    tier: 'FlexConsumption'
  }
  kind: 'functionapp'
  properties: {
    reserved: true
  }
}

// Deployment storage container (required)
resource deploymentContainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2023-05-01' = {
  name: '${storageAccount.name}/default/deployments'
}

resource functionApp 'Microsoft.Web/sites@2023-12-01' = {
  name: functionAppName
  location: location
  kind: 'functionapp,linux'
  properties: {
    serverFarmId: hostingPlan.id
    functionAppConfig: {
      deployment: {
        storage: {
          type: 'blobContainer'
          value: '${storageAccount.properties.primaryEndpoints.blob}deployments'
          authentication: {
            type: 'SystemAssignedIdentity'
          }
        }
      }
      scaleAndConcurrency: {
        maximumInstanceCount: 100
        instanceMemoryMB: 2048
      }
      runtime: {
        name: 'dotnet-isolated'
        version: '8.0'
      }
    }
    siteConfig: {
      appSettings: [
        { name: 'AzureWebJobsStorage__accountName', value: storageAccount.name }
        { name: 'APPLICATIONINSIGHTS_CONNECTION_STRING', value: appInsights.properties.ConnectionString }
        { name: 'APPLICATIONINSIGHTS_AUTHENTICATION_STRING', value: 'Authorization=AAD' }
      ]
    }
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Observação

Quando utilizar APPLICATIONINSIGHTS_AUTHENTICATION_STRING com Authorization=AAD, deve também atribuir a função de Publicador de Métricas de Monitorização à identidade gerida da aplicação de função no recurso do Application Insights.

Para exemplos completos de Bicep, veja as amostras Flex Consumption Bicep.

Reconciliação de implementações de recursos após migração

Se usar infraestrutura como código para gerir as suas implementações de recursos no Azure, atualize os ficheiros de implementação após migrar para o Flex Consumption para evitar desvios de configuração. Aqui está uma abordagem recomendada:

  1. Não misture implementações manuais e baseadas em recursos: Se usou o CLI do Azure ou portal para criar a sua aplicação Flex Consumption durante a migração, atualize os seus ficheiros de recursos antes da próxima implementação. Caso contrário, as tuas implementações podem tentar recriar os antigos recursos do plano de consumo.

  2. Atualize os nomes dos recursos ou use a gestão do ciclo de vida: Como não pode converter uma aplicação de Consumo para Consumo Flexível, tem duas opções:

    • Novos nomes de recursos: Atualize o seu código de implementação para usar novos nomes para o plano de alojamento e a aplicação de funções. Esta abordagem mantém os seus recursos antigos intactos até ter a certeza de que a migração foi bem-sucedida.
    • Importa recursos existentes: Se quiseres manter os mesmos nomes, elimina primeiro os recursos antigos e depois deixa a tua implementação criar os novos recursos Flex Consumption. Alternativamente, importa os recursos criados manualmente para o teu estado Terraform usando terraform import ou faz referência a recursos existentes no Bicep.
  3. Verificar o alinhamento do estado: Após atualizar os ficheiros de implementação, execute um plano ou uma operação de pré-visualização (terraform plan ou az deployment group what-if) para confirmar que não ocorreram alterações inesperadas.

  4. Atualize os pipelines CI/CD: Se os seus pipelines de implementação estiverem a referenciar a configuração antiga do plano de consumo, atualize-os para utilizar as novas definições de recursos e métodos de implementação do Flex Consumption.

Sugestão

Para minimizar a perturbação, considere executar em paralelo tanto a antiga aplicação Consumption como a nova Flex Consumption durante um período de transição. Atualize a sua implementação para gerir a nova aplicação Flex Consumption, verifique se funciona corretamente e depois remova os antigos recursos da aplicação Consumption tanto do Azure como dos seus ficheiros de implementação.

Remover a aplicação original (opcional)

Sugestão

Não há pressa aqui. Mantém a tua aplicação original durante alguns dias ou semanas enquanto verificas que tudo funciona. O plano de Consumo cobra apenas pelo uso real, por isso manter a aplicação antiga (com os gatilhos desativados) custa pouco.

Quando tiveres a certeza de que a nova aplicação está a funcionar corretamente, podes limpar a original. Este passo é opcional – algumas equipas mantêm a aplicação antiga como referência ou opção de recuo.

Importante

Esta ação exclui seu aplicativo de função original. O plano de Consumo mantém-se intacto se outras aplicações o utilizarem. Antes de prosseguir, certifique-se de que:

  • Migrar com sucesso todas as funcionalidades para a nova aplicação Flex Consumption.
  • Verifique se nenhum tráfego é direcionado para a aplicação original.
  • Fiz cópias de segurança de quaisquer registos, configurações ou dados relevantes que possam ser necessários para referência.

A capacidade de migração do Copilot pode remover a aplicação original após o corte de produção e a validação do alvo estarem concluídas. Se o trabalho de prontidão continuar adiado ou se a origem ainda processar cargas de trabalho de produção, mantenha a aplicação de origem. O Copilot pede sempre a tua confirmação explícita antes de apagar qualquer coisa. Use este prompt:

delete my original consumption app <ORIGINAL_APP_NAME>

Resolução de problemas e estratégias de recuperação

A maioria das migrações termina sem problemas. Se algo não funcionar como esperado, experimente estas soluções para problemas comuns:

Questão Solução
Problemas de desempenho no arranque a frio • Revise as configurações de simultaneidade
• Verifique se há dependências ausentes
Ligações em falta • Verificar pacotes de extensão
• Atualizar configurações de vinculação
Erros de permissão • Verificar atribuições de identidade e permissões de função
Problemas de conectividade de rede • Validar restrições de acesso e configurações de rede
Conhecimentos em Falta sobre a Aplicação • Recrie a conexão do Application Insights
Falha ao iniciar o aplicativo Consulte Etapas gerais de solução de problemas
Os gatilhos não processam eventos Consulte Etapas gerais de solução de problemas

Se tiver problemas na migração de uma aplicação de produção, considere reverter a migração para a aplicação original enquanto resolve o problema.

Passos de resolução de problemas gerais

Use estas etapas para casos em que o novo aplicativo não é iniciado ou os gatilhos de função não estão processando eventos:

  1. Na sua nova página da aplicação no portal Azure, selecione Diagnosticar e resolver problemas no painel esquerdo da página da aplicação. Selecione Disponibilidade e Desempenho e revise o detetor Function App Inativo ou a Relatar Erros. Para mais informação, consulte visão geral de diagnósticos do Funções do Azure.

  2. Na página do aplicativo, selecione Monitoring>Application Insights>Exibir dados do Application Insights e, em seguida, selecione Investigar> falhas e verifique se há eventosde falha.

  3. Selecione Logs de monitoramento> e execute esta consulta Kusto para verificar se há erros nessas tabelas:

    traces
        | where severityLevel == 3
        | where cloud_RoleName == "<APP_NAME>"
        | where timestamp > ago(1d)
        | project timestamp, message, operation_Name, customDimensions
        | order by timestamp desc
    

    Nessas consultas, substitua <APP_NAME> pelo nome do seu novo aplicativo. Essas consultas verificam se há erros no dia anterior (where timestamp > ago(1d)).

  4. De volta à página da aplicação, selecione Definições>Variáveis de Ambiente e verifique se todas as definições críticas da aplicação foram configuradas corretamente. Procure por definições obsoletas que possam estar migradas incorretamente ou por erros de digitação ou cadeias de ligação incorretas. Verifique a conexão de armazenamento do host padrão.

  5. Selecione Definições>Identidade e confirme se as identidades esperadas existem e se estão atribuídas aos papéis corretos.

  6. No seu código, verifique se todas as configurações de vinculação estão corretas, prestando especial atenção aos nomes das cadeias de conexão, nomes das filas de armazenamento e dos contentores, e às definições dos grupos de consumidores nos gatilhos do Event Hubs.

Passos de reversão para aplicações críticas de produção

Se não conseguir resolver o problema, considere voltar à sua aplicação original enquanto continua a tentar a resolução.

  1. Se a aplicação original estiver parada, reinicie-a:

    Pedir ao Copilot para reiniciar a Aplicação original e reverter a migração.

    restart my original consumption app <ORIGINAL_APP_NAME>
    
  2. Se criou novas filas, tópicos ou contentores, certifique-se de que os clientes são redirecionados de volta para os recursos originais.

  3. Se você modificou o DNS ou domínios personalizados, reverta essas alterações para apontar para o aplicativo original.

Fornecer comentários

Se você encontrar problemas com sua migração usando este artigo ou quiser fornecer outros comentários sobre essas diretrizes, use um destes métodos para obter ajuda ou fornecer seus comentários: