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.
Ao criar um aplicativo de função no Azure, você deve escolher uma opção de hospedagem para seu aplicativo. O Azure fornece estas opções de hospedagem para seu código de função:
Opção de hospedagem | Serviço | Disponibilidade | Suporte de container |
---|---|---|---|
Plano de consumo Flex | Funções do Azure | Disponível de Forma Generalizada (GA) | Nenhuma |
Plano Premium | Funções do Azure | Assembleia Geral | Aplicações Linux |
Plano dedicado | Funções do Azure | Assembleia Geral | Aplicações Linux |
Aplicativos de contêiner | Aplicações de Contêiner Azure | Assembleia Geral | Aplicações Linux |
Plano de consumo | Funções do Azure | Assembleia Geral | Nenhuma |
As opções de hospedagem do Azure Functions são facilitadas pela infraestrutura do Serviço de Aplicativo do Azure em máquinas virtuais Linux e Windows. A opção de hospedagem escolhida dita os seguintes comportamentos:
- Como a sua aplicação de função é dimensionada.
- Os recursos disponíveis para cada instância do aplicativo de função.
- Suporte para funcionalidades avançadas, como conectividade de Rede Virtual do Azure.
- Suporte para contêineres Linux.
O plano escolhido também afeta os custos de execução do código de função. Para mais informações, veja Facturação.
Este artigo fornece uma comparação detalhada entre as várias opções de hospedagem. Para saber mais sobre como executar e gerenciar seu código de função em contêineres Linux, consulte Suporte a contêineres Linux no Azure Functions.
Visão geral dos planos
A seguir está um resumo dos benefícios das várias opções de hospedagem do Azure Functions:
Opção | Benefícios |
---|---|
Plano de consumo Flex | Obtenha escalonamento horizontal rápido com opções de computação, rede virtual e faturamento pré-pago. No plano Flex Consumption, as instâncias do host Functions são adicionadas e removidas dinamicamente com base na simultaneidade configurada por instância e no número de eventos de entrada. ✔ Reduza as partidas a frio ao especificar uma ou mais instâncias pré-provisionadas (sempre prontas). ✔ Suporta redes virtuais para maior segurança. ✔ Pague quando as suas funções estiverem em execução. ✔ Dimensiona automaticamente, mesmo durante períodos de carga elevada. |
Plano Premium | Dimensiona automaticamente com base na procura usando trabalhadores já preparados, que executam aplicações imediatamente após a inatividade, correm em instâncias mais potentes e ligam-se a redes virtuais. Considere o plano Azure Functions Premium nas seguintes situações: ✔ Seus aplicativos funcionais são executados continuamente ou quase continuamente. ✔ Você quer mais controle de suas instâncias e deseja implantar vários aplicativos de função no mesmo plano com dimensionamento controlado por eventos. ✔ Você tem um alto número de pequenas execuções e uma alta conta de execução, mas poucos segundos de GB no plano de consumo. ✔ Você precisa de mais opções de CPU ou memória do que as fornecidas pelos planos de consumo. ✔ Seu código precisa ser executado por mais tempo do que o tempo máximo de execução permitido no plano de consumo. ✔ Você precisa de conectividade de rede virtual. ✔ Você deseja fornecer uma imagem Linux personalizada para executar suas funções. |
Plano dedicado | Execute as suas funções dentro de um plano de Serviço de Aplicações às taxas regulares do plano de Serviço de Aplicações. Ideal para cenários de longa duração em que Durable Functions não podem ser usadas. Considere um plano do Serviço de Aplicativo nas seguintes situações: ✔ Você tem máquinas virtuais existentes e subutilizadas que já estão executando outras instâncias do Serviço de Aplicativo. ✔ Você deve ter faturamento totalmente previsível ou precisa dimensionar instâncias manualmente. ✔ Você deseja executar vários aplicativos Web e aplicativos funcionais no mesmo plano ✔ Você precisa ter acesso a opções de tamanho de computação maiores. ✔ Isolamento de computação completo e acesso seguro à rede fornecido por um Ambiente de Serviço de Aplicativo (ASE). ✔ Uso de memória muito alto e alta escala (ASE). |
Aplicativos de contêiner | Crie e implante aplicativos de função em contêineres em um ambiente totalmente gerenciado hospedado pelos Aplicativos de Contêiner do Azure. Use o modelo de programação do Azure Functions para criar aplicativos de função nativos da nuvem, sem servidor e orientados a eventos. Execute suas funções ao lado de outros microsserviços, APIs, sites e fluxos de trabalho como programas hospedados em contêiner. Considere hospedar suas funções em aplicativos de contêiner nas seguintes situações: ✔ Você deseja empacotar bibliotecas personalizadas com seu código de função para oferecer suporte a aplicativos de linha de negócios. ✔ Você precisa migrar a execução de código de aplicativos locais ou herdados para microsserviços nativos da nuvem executados em contêineres. ✔ Quando você quiser evitar a sobrecarga e a complexidade do gerenciamento de clusters Kubernetes e computação dedicada. ✔ Suas funções precisam de poder de processamento high-end fornecido por recursos de computação GPU dedicados. |
Plano de consumo | Pague pelos recursos de computação apenas quando as suas funções estiverem em execução (pay-as-you-go) com escala automática. No Plano de Consumo, as instâncias do host das Funções são adicionadas e removidas dinamicamente com base na quantidade de eventos que chegam. ✔ Plano de hospedagem padrão que fornece verdadeira hospedagem sem servidor. ✔ Pague apenas quando as suas funções estiverem em execução. ✔ Dimensiona automaticamente, mesmo durante períodos de carga elevada. |
As tabelas restantes neste artigo comparam as opções de hospedagem com base em vários recursos e comportamentos.
Suporte de sistema operativo
Esta tabela mostra o suporte do sistema operacional para as opções de hospedagem.
Alojamento | Implantação do Linux1 | Implantação do Windows2 |
---|---|---|
Plano de consumo Flex |
✅ Apenas código ❌ Contentor (não suportado) |
❌ Não suportado |
Plano Premium |
✅ Apenas código ✅ Contentor |
✅ Apenas código |
Plano dedicado |
✅ Apenas código ✅ Contentor |
✅ Apenas código |
Aplicativos de contêiner | ✅ Só contentores | ❌ Não suportado |
Plano de consumo |
✅ Apenas código ❌ Contentor (não suportado) |
✅ Apenas código |
- Linux é o único sistema operativo suportado para a pilha de tempo de execução do Python.
- As implantações do Windows são somente código. Atualmente, o Functions não suporta contêineres do Windows.
Duração do tempo limite da aplicação de função
A duração do tempo de espera para funções numa aplicação de funções é definida pela functionTimeout
propriedade no arquivo de projeto host.json. Esta propriedade aplica-se especificamente a execuções de funções. Depois que o gatilho inicia a execução da função, a função precisa retornar/responder dentro da duração do tempo limite. Para evitar tempos limites, é importante escrever robustas funções. Para obter mais informações, consulte Melhorar o desempenho e a confiabilidade do Azure Functions.
A tabela a seguir mostra os valores padrão e máximo (em minutos) para planos específicos:
Plano | Predefinido | Máximo1 |
---|---|---|
Plano de consumo Flex | 30 | Sem limites2 |
Plano Premium | 304 | Sem limites2 |
Plano dedicado | 304 | Sem limites3 |
Aplicativos de contêiner | 30 | Sem limites5 |
Plano de consumo | 5 | 10 |
- Independentemente da configuração de tempo limite do aplicativo de função, 230 segundos é a quantidade máxima de tempo que uma função acionada por HTTP pode levar para responder a uma solicitação. Isso ocorre devido ao tempo limite padrão de inatividade do Azure Load Balancer. Para tempos de processamento mais longos, considere usar o padrão assíncrono de Funções Duráveis ou adie o trabalho real e retorne uma resposta imediata.
- Não há uma duração máxima de tempo limite de execução imposta. No entanto, o período de carência dado à execução de uma função é de 60 minutos durante a redução de escala para os planos Flex Consumption e Premium, e um período de carência de 10 minutos é dado durante as atualizações da plataforma.
- Requer que o plano do Serviço de Aplicativo esteja definido como Sempre Ativado. Um período de carência de 10 minutos é dado durante as atualizações da plataforma.
- O tempo limite padrão para a versão 1.x do tempo de execução do host Functions é ilimitado.
- Quando o número mínimo de réplicas é definido como zero, o tempo limite padrão depende dos gatilhos específicos usados no aplicativo.
Suporte de idiomas
Para obter detalhes sobre o suporte atual à pilha de idiomas nativos no Functions, consulte Idiomas suportados no Azure Functions.
Escala
A tabela a seguir compara os comportamentos de dimensionamento dos vários planos de hospedagem.
As instâncias máximas são definidas por aplicação de função (Consumo) ou por plano (Premium/Dedicado), a menos que indicado de outra forma.
Plano | Aumentar horizontalmente | Máximo de # instâncias |
---|---|---|
Plano de consumo Flex | Escalonamento por função As decisões de dimensionamento orientadas por eventos são calculadas por função, o que fornece uma maneira mais determinística de dimensionar as funções em seu aplicativo. Com exceção de HTTP, armazenamento de Blob (Event Grid) e funções duráveis, todos os outros tipos de gatilho de função no seu aplicativo são dimensionados em instâncias independentes. Todos os gatilhos HTTP na sua aplicação são dimensionados juntos como um grupo nas mesmas instâncias, assim como todos os gatilhos de armazenamento de blobs (Event Grid). Todos os gatilhos de Funções Duráveis também compartilham instâncias e escalam em conjunto. | 10001 |
Plano Premium | Orientado por eventos. Expande automaticamente, mesmo durante períodos de carga elevada. A infraestrutura do Azure Functions dimensiona recursos de CPU e memória adicionando mais instâncias do host do Functions, com base no número de eventos nos quais suas funções são acionadas. |
Janelas: 1006 Linux: 20-1002,6 |
Plano dedicado | Manual/escalonamento automático | 10-303 100.º (ASE) |
Aplicativos de contêiner | Orientado por eventos. Expande automaticamente, mesmo durante períodos de carga elevada. A infraestrutura do Azure Functions dimensiona recursos de CPU e memória adicionando mais instâncias do host do Functions, com base no número de eventos nos quais suas funções são acionadas. | 300-10004 |
Plano de consumo | Orientado por eventos. Escalona-se automaticamente, mesmo durante períodos de carga elevada. A infraestrutura de funções dimensiona os recursos de CPU e memória adicionando mais instâncias do host Functions, com base no número de eventos de gatilho de entrada. |
Janelas: 200 Linux: 1005 |
- O plano Flex Consumption tem uma cota de assinatura regional que limita o uso total de memória de todas as instâncias em uma determinada região. Para obter mais informações, consulte Cotas de memória de assinatura regional. Atualmente, os planos Flex Consumption suportam apenas Linux.
- Em algumas regiões, os aplicativos Linux em um plano Premium podem ser dimensionados para 100 instâncias. Para obter mais informações, consulte o artigo do plano Premium.
- Para obter limites específicos para as várias opções do plano do Serviço de Aplicativo, consulte os limites do plano do Serviço de Aplicativo.
- Em Aplicativos de Contêiner, o padrão é 10 instâncias, mas você pode definir o número máximo de réplicas, que tem um máximo geral de 1000. Essa configuração é respeitada desde que haja cota de núcleos suficiente disponível. Para obter mais informações, consulte Quotas para aplicações de contentor do Azure. Ao criar seu aplicativo de função a partir do portal do Azure, você está limitado a 300 instâncias.
- Durante a expansão, atualmente há um limite de 500 instâncias por assinatura por hora para aplicativos Linux em um plano de consumo.
- Para gatilhos HTTP de ponto de extremidade privado restrito, o dimensionamento está limitado a, no máximo, 20 instâncias.
Comportamento de arranque a frio
Plano | Detalhes |
---|---|
Plano de consumo Flex | Suporta instâncias sempre prontas para reduzir o atraso ao provisionar novas instâncias. |
Plano Premium | Suporta instâncias sempre disponíveis para evitar partidas a frio, permitindo-lhe manter uma ou mais instâncias constantemente quentes. |
Plano dedicado | Ao executar em um plano dedicado, o host Functions pode ser executado continuamente em um número prescrito de instâncias, o que significa que o arranque a frio não é realmente um problema. |
Aplicativos de contêiner | Depende do número mínimo de réplicas: • Quando definido como zero: os aplicativos podem ser dimensionados para zero quando ociosos e algumas solicitações podem ter mais latências na inicialização. • Quando definido como um ou mais: o processo do host é executado continuamente, o que significa que o arranque a frio não é um problema. |
Plano de consumo | Os aplicativos podem ser dimensionados para zero quando ociosos, o que significa que algumas solicitações podem ter mais latências na inicialização. O plano de consumo tem algumas otimizações para ajudar a diminuir o tempo de inicialização a frio, incluindo a extração de funções pré-reservadas que já têm os processos de host e idioma em execução. |
Limites de serviço
Recurso | Plano de consumo Flex | Plano Premium | Plano dedicado/ASE | Aplicativos de contêiner | Plano de consumo |
---|---|---|---|---|---|
Duração padrão do tempo limite (min) | 30 | 30 | 301 | 3016 | 5 |
Duração máxima do tempo de espera (min) | ilimitado 9 | ilimitado 9 | ilimitado2 | ilimitado 17 | 10 |
Máximo de conexões de saída (por instância) | ilimitado | ilimitado | ilimitado | ilimitado | 600 ativos (1200 no total) |
Tamanho máximo da solicitação (MB)3 | 210 | 210 | 210 | 210 | 210 |
Comprimento máximo dacadeia de caracteres de consulta 3 | 4096 | 4096 | 4096 | 4096 | 4096 |
Comprimento máximo do URL desolicitação 3 | 8192 | 8192 | 8192 | 8192 | 8192 |
ACU por cada instância | 210-840 | 100-840/210-25010 | varia | 100 | varia |
Memória máxima (GB por instância) | 4 14 | 3.5-14 | 1.75-256/8-256 | varia | 1.5 |
Contagem máxima de instâncias (Windows | Linux)15 | n/a | 1000 | 20-100 | 10-30 (100 ASE)11 | 300-100018 | 200 | 100 |
Aplicações de função por plano13 | 1 | 100 | ilimitado 4 | ilimitado 4 | 100 |
Planos do Serviço de Aplicações | n/d | 100 por grupo de recursos | 100 por grupo de recursos | n/d | 100 por região |
Slots de implementação por aplicação12 | n/d | 3 | 1-2011 | não suportado | 2 |
Armazenamento (temporário)5 | 0,8 GB | 21-140 GB | 11-140 gigabytes (GB) | n/d | 0,5 GB |
Armazenamento (persistente) | 0 GB7 | 250 GB | 10-1000 GB11 | n/d | 1 GB6,7 |
Domínios personalizados por aplicativo | 500 | 500 | 500 | não suportado | 5007 |
Suporte a TLS/SSL de domínio personalizado | SNI SSL não limitado e uma conexão IP SSL incluída | SNI SSL não limitado e uma conexão IP SSL incluída | SNI SSL não limitado e uma conexão IP SSL incluída | não suportado | conexão SNI SSL não limitada incluída |
Notas sobre os limites de serviço:
- Por padrão, o tempo limite para o tempo de execução do Functions 1.x em um plano do Serviço de Aplicativo é ilimitado.
- Requer que o plano do Serviço de Aplicativo esteja definido como Sempre Ativado. Pague à taxa standard. Um período de carência de 10 minutos é dado durante as atualizações da plataforma.
- Esses limites são definidos no host.
- O número real de aplicativos de função que você pode hospedar depende da atividade dos aplicativos, do tamanho das instâncias da máquina e da utilização de recursos correspondente.
- O limite de armazenamento é o tamanho total do conteúdo em armazenamento temporário em todos os aplicativos no mesmo plano do Serviço de Aplicativo. Para planos de consumo no Linux, o armazenamento é atualmente de 1,5 GB.
- O plano de consumo usa uma partilha do Azure Files para armazenamento persistente. Quando você fornece seu próprio compartilhamento de Arquivos do Azure, os limites de tamanho de compartilhamento específicos dependem da conta de armazenamento definida para WEBSITE_CONTENTAZUREFILECONNECTIONSTRING.
- No Linux, você deve montar explicitamente seu próprio compartilhamento de Arquivos do Azure.
- Quando seu aplicativo de função é hospedado em um plano de consumo, somente a opção CNAME é suportada. Para aplicações de função num plano Premium ou num plano de Serviço de Aplicações, pode mapear um domínio personalizado usando um registo CNAME ou um registo A.
- Não há uma duração máxima de tempo limite de execução imposta. No entanto, o período de carência dado à execução de uma função é de 60 minutos durante a redução de escala e 10 minutos durante as atualizações da plataforma.
- Os trabalhadores são papéis que alojam aplicações de clientes. Os trabalhadores estão disponíveis em três tamanhos fixos: Uma vCPU/3,5 GB de RAM; Dois vCPU/7 GB de RAM; Quatro vCPU/14 GB de RAM.
- Consulte Limites do Serviço de Aplicativo para obter detalhes.
- Incluindo o intervalo de produção.
- Atualmente, há um limite de 5.000 aplicativos funcionais em uma determinada assinatura.
- Atualmente, os tamanhos de instância do plano Flex Consumption são definidos como 512 MB, 2.048 MB ou 4.096 MB. Para obter mais informações, consulte Memória de instância.
- Para obter detalhes, consulte Escala no artigo Comparação de hospedagem.
- Quando o número mínimo de réplicas é definido como zero, o tempo limite padrão depende dos gatilhos específicos usados no aplicativo.
- Quando o número mínimo de réplicas é definido como uma ou mais.
Funcionalidades de rede
Caraterística | Plano de consumo Flex | Plano de consumo | Plano Premium | Plano dedicado/ASE | Aplicativos de contêiner1 |
---|---|---|---|---|---|
Restrições de IP de entrada | ✔ | ✔ | ✔ | ✔ | ✔ |
Endereços Privados de Acesso | ✔ | ✔ | ✔ | ||
Integração da rede virtual | ✔ | ✔2º | ✔3º | ✔ | |
Restrições de IP de saída | ✔ | ✔ | ✔ | ✔ |
- Para obter mais informações, consulte Rede no ambiente de Aplicativos de Contêiner do Azure.
- Há considerações especiais ao trabalhar com gatilhos de rede virtual.
- Apenas o plano Dedicado/ASE suporta a integração de rede virtual exigida pelo gateway.
Faturação
Plano | Detalhes |
---|---|
Plano de consumo Flex | O faturamento é baseado no número de execuções, na memória das instâncias quando elas estão executando funções ativamente, além do custo de todas as instâncias sempre prontas. Para obter mais informações, consulte o Faturamento do plano Flex Consumption. |
Plano Premium | O plano Premium baseia-se no número de segundos principais e na memória utilizada nas instâncias necessárias e pré-aquecidas. Pelo menos uma instância por plano deve ser sempre mantida aquecida. Este plano fornece os preços mais previsíveis. |
Plano dedicado | Você paga o mesmo por aplicativos funcionais em um Plano do Serviço de Aplicativo como pagaria por outros recursos do Serviço de Aplicativo, como aplicativos Web. Para um ASE, há uma taxa mensal fixa que paga pela infraestrutura e não muda com o tamanho do ambiente. Há também um custo por vCPU do plano de Serviço de Aplicações. Todas as aplicações alojadas num ASE estão no SKU de preço Isolado. Para obter mais informações, consulte o artigo de visão geral do ASE. |
Aplicativos de contêiner | A cobrança nos Aplicativos de Contêiner do Azure é baseada no seu tipo de plano. Para obter mais informações, consulte Cobrança em aplicativos de contêiner do Azure. |
Plano de consumo | Pague apenas pelo tempo de execução das suas funções. A faturação baseia-se no número de execuções, no tempo de execução e na memória utilizada. |
Para obter uma comparação direta de custos entre planos de hospedagem dinâmica (Consumo, Consumo Flexível e Premium), consulte a página de preços do Azure Functions. Para obter os preços das várias opções de plano dedicado, consulte a página de preços do Serviço de Aplicativo. Para obter preços de hospedagem de Aplicativos de Contêiner, consulte Preços de Aplicativos de Contêiner do Azure.
Limitações para criar novos aplicativos de função em um grupo de recursos existente
Em alguns casos, ao tentar criar um novo plano de hospedagem para seu aplicativo de função em um grupo de recursos existente, você pode receber um dos seguintes erros:
- A camada de preços não é permitida neste grupo de recursos
- <SKU_name> trabalhadores não estão disponíveis no grupo de recursos <resource_group_name>
Isso pode acontecer quando as seguintes condições são atendidas:
- Você cria um aplicativo de função em um grupo de recursos existente que já continha outro aplicativo de função ou aplicativo Web. Por exemplo, os aplicativos de consumo do Linux não são suportados no mesmo grupo de recursos que os planos Linux Dedicated ou Linux Premium.
- Seu novo aplicativo de função é criado na mesma região do aplicativo anterior.
- A aplicação anterior é, de alguma forma, incompatível com a sua nova aplicação. Esse erro pode acontecer entre SKUs, sistemas operacionais ou devido a outros recursos no nível da plataforma, como suporte à zona de disponibilidade.
A razão pela qual isso acontece é devido à forma como os planos de aplicações de funções e aplicações Web são mapeados para diferentes grupos de recursos ao serem criados. SKUs diferentes exigem um conjunto diferente de recursos de infraestrutura. Quando você cria um aplicativo em um grupo de recursos, esse grupo de recursos é mapeado e atribuído a um pool específico de recursos. Se você tentar criar outro plano nesse grupo de recursos e o pool mapeado não tiver os recursos necessários, esse erro ocorrerá.
Quando esse erro ocorrer, em vez disso, crie seu aplicativo de função e plano de hospedagem em um novo grupo de recursos.