Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo 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 e o teu código não precisa de mudar.
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 Habilidades no GitHub Copilot. | Deixe o Copilot guiar e automatizar a sua migração de forma interativa (recomendado para Linux). | ✅ | ❌ |
| 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.
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:
A funcionalidade do Azure automatiza a maior parte da migração para si. Os seus passos principais são:
Sugestão
Para impulsionar a sua migração baseada em GitHub Copilot, veja Quickstart: Migrar aplicações Linux Consumption para Flex Consumption usando GitHub Copilot.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
Independentemente do seu método de migração, aqui estão os princípios gerais da migração:
- O teu código mantém-se igual. Não precisas de reescrever as tuas funções se estiveres numa versão de linguagem suportada pelo Flex Consumption. 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, as suas funções obtêm estes benefícios sem alterar o seu código:
- 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:
- A implementação automatizada de recursos cobre todos os detalhes da configuração dos recursos.
- Exemplos prontos a usar estão disponíveis para modelos ARM, Bicep e Terraform.
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.
- A extensão resource-graph , que você pode instalar usando o
az extension addcomando:
az extension add --name resource-graph- A
jqferramenta, que é usada para trabalhar com saída JSON.
Para migrar usando o GitHub Copilot, configure o GitHub Copilot no modo desejado:
Inicie sessão no CLI do Azure se ainda não o fez:
az loginCertifica-te de que estás ligado à subscrição que contém as aplicações funcionais que queres migrar.
Iniciar o CLI Copilot:
copilotAdicione a fonte do marketplace (apenas pela primeira vez):
/plugin marketplace add microsoft/azure-skillsInstale o plugin:
/plugin install azure@azure-skillsApós a instalação, recarregar servidores do Model Context Protocol (MCP):
/mcp reloadVerifique a instalação:
/mcp showDeverás ver o plugin Azure listado com uma marca de verificação. A
functionappferramenta 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 executaraz 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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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:
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 listou a avaliação Copilot inclui a sua aplicação na listaeligible_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 indicarThe 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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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 do Flex Consumption ainda não suportam todas as pilhas 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 |
dotnet |
.NET (modelo em processo) | ❌ Não |
custom |
Manipuladores personalizados | ✅ Sim |
Confirmado: Se o comando
az functionapp flex-migration listou a avaliação do Copilot incluiram a sua aplicação na listaeligible_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_appslista com uma mensagem de erro que indicaRuntime '<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:
- Para aplicações C# que correm em processo com o ambiente de execução (
dotnet), deve primeiro migrar a sua aplicação para o ambiente isolado do .NET. Para obter mais informações, consulte Migrar aplicativos C# do modelo em processo para o modelo de trabalho isolado.
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 listou a análise do Copilot incluir a sua aplicação na listaeligible_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_appslista com uma mensagem de erro indicandoInvalid 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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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 listou a avaliação Copilot mostra a sua aplicação de funções na listaeligible_appssem 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_appslista, 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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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
Os certificados de Segurança da Camada de Transporte (TLS), anteriormente conhecidos como certificados da Camada Secure Sockets (SSL), ajudam a proteger ligações à internet. O plano Flex Consumption atualmente não suporta certificados TLS/SSL, que incluem certificados geridos pelo sistema, certificados fornecidos pelo próprio utilizador (BYOC) ou certificados de chave pública.
Confirmado: Se o comando
az functionapp flex-migration listou a avaliação Copilot incluir a sua aplicação na listaeligible_apps, a sua aplicação Linux Consumption não está a usar certificados, e pode continuar a Verificar os gatilhos de armazenamento do seu Blob.
Ação necessária: Se a saída incluir a sua aplicação na
ineligible_appslista com uma mensagem de erro a indicarThe site '<name>' is using TSL/SSL certificates. TSL/SSL certificates are not supported in Flex Consumption.ouThe site '<name>' has the WEBSITE_LOAD_CERTIFICATES app setting configured. Certificate loading is not supported in Flex Consumption., a sua aplicação Linux Consumption não é compatível com Flex Consumption.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
Se a sua aplicação atualmente depende de certificados TLS/SSL, não prossiga com a migração até que o suporte para certificados seja adicionado ao plano Flex Consumption.
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 comando
az functionapp flex-migration listou a avaliação do Copilot incluir a sua aplicação na listaeligible_apps, a sua aplicação Linux Consumption não utiliza gatilhos de armazenamento Blob comEventGridcomo fonte. Você pode continuar a considerar serviços dependentes.
Ação necessária: Se a saída incluir a sua aplicação na lista
ineligible_appscom uma mensagem de erro a indicarThe site '<name>' has blob storage triggers that don't use Event Grid as the source: <list> Flex Consumption only supports Event Grid-based blob triggers. Please convert these triggers to use Event Grid or replace them with Event Grid triggers before migration., a sua aplicação de "Linux Consumption" não é compatível com o "Flex Consumption".
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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.
As etapas básicas para alterar um gatilho de armazenamento de Blob existente para uma origem do Event Grid são:
Adicione ou atualize a propriedade na definição de gatilho do seu armazenamento de Blob para
sourcee reimplante a aplicação.Crie a URL do ponto de extremidade em seu aplicativo de função usado para ser usado pela assinatura do evento.
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.
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.
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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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 | clientCertEnabledclientCertModeclientCertExclusionPaths |
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. |
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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
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.
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-releasesna 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_PACKAGEconfiguraçã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. |
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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: Os certificados TLS/SSL ainda não são suportados no Flex Consumption.
- 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
- Criar uma aplicação no plano Flex Consumption
- Aplicar configurações migradas do aplicativo no novo aplicativo
- Aplicar outras configurações de aplicativo
- Definir configurações de escala e simultaneidade
- Configurar quaisquer domínios personalizados e acesso CORS
- Configurar identidades gerenciadas e atribuir funções
- Configurar restrições de acesso à rede
- Habilitar monitoramento
- Configurar autenticação interna
- Implemente o código da sua aplicação no novo recurso Flex Consumption
Revisão final do plano
Antes de prosseguir com o processo de migração, reserve um momento para executar estas últimas etapas preparatórias:
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 |
|---|---|
| CLI do Azure | Criar um aplicativo Flex Consumption |
| Azure portal | 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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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, veja Tutorial: Criar uma aplicação de funções que se ligue a Azure serviços usando identidades em vez de segredos.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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.
A competência de migração do GitHub Copilot só é atualmente suportada na migração de aplicações Linux. Para migrar uma aplicação Windows Consumption, use o CLI do Azure ou o Azure portal.
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.
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.
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 na sua nova aplicação começam 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.
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
Verifique se o novo aplicativo está sendo executado em um plano Flex Consumption:
A competência de migração Copilot para Linux valida automaticamente a sua nova aplicação após a implementação, incluindo a verificação de que a aplicação está acessível e a correr no plano Flex Consumption. Se precisares de revalidar, usa este prompt:
verify my flex consumption app <APP_NAME> is running correctlyUse 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:
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.
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 importou faz referência a recursos existentes no Bicep.
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 planouaz deployment group what-if) para confirmar que não ocorreram alterações inesperadas.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 habilidade de migração do Copilot para Linux pode remover a aplicação original quando estiveres pronto. 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:
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.
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.
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 descNessas consultas, substitua
<APP_NAME>pelo nome do seu novo aplicativo. Essas consultas verificam se há erros no dia anterior (where timestamp > ago(1d)).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.
Selecione Definições>Identidade e confirme se as identidades esperadas existem e se estão atribuídas aos papéis corretos.
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.
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>Se criou novas filas, tópicos ou contentores, certifique-se de que os clientes são redirecionados de volta para os recursos originais.
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:
Obtenha ajuda em Microsoft Q& A - Cria um problema no repositório Funções do Azure
- Fornecer feedback sobre o produto
- Criar um pedido de suporte