Compartilhar via


Suporte a contêineres do Linux no Azure Functions

Ao planejar e desenvolver suas funções individuais para execução no Azure Functions, você normalmente está focado no próprio código. O Azure Functions facilita a implantação apenas do seu projeto de código em um aplicativo de funções no Azure. Quando você implanta seu projeto de código em um aplicativo de funções executado no Linux, o projeto é executado em um contêiner criado automaticamente para você. Esse contêiner é gerenciado pelo Functions.

O Functions também dá suporte a implantações de aplicativo de funções em contêineres. Em uma implantação em contêineres, você cria sua própria instância de aplicativo de funções em um contêiner local do Docker a partir de uma imagem baseada com suporte. Em seguida, você pode implantar esse aplicativo de funções em contêineres em um ambiente de hospedagem no Azure. Criar seu próprio contêiner do aplicativo de funções permite personalizar ou controlar o ambiente de runtime imediato do código de função.

Importante

Ao criar seus próprios contêineres, será necessário manter a imagem base do contêiner atualizada para a imagem base com suporte mais recente. As imagens base com suporte para o Azure Functions são específicas a uma linguagem e encontradas nos repositórios de imagem base do Azure Functions.

A equipe do Functions está comprometida em publicar atualizações mensais para essas imagens base. As atualizações regularem incluem as atualizações de versão secundária mais recentes e as correções de segurança para linguagens e runtime do Functions. Você deve atualizar regularmente o seu contêiner a partir da imagem base mais recente e reimplantar a versão atualizada do seu contêiner.

Opções de hospedagem de contêiner

Há várias opções para hospedar seus aplicativos de funções em contêineres no Azure:

Opção de hospedagem Benefícios
Aplicativos de Contêiner do Azure O Azure Functions fornece suporte integrado para desenvolver, implantar e gerenciar aplicativos de funções conteinerizadas nos Aplicativos de Contêiner do Azure. Isso permite que você gerencie seus aplicativos usando as mesmas ferramentas e páginas do Functions no portal do Azure. Use os Aplicativos de Contêiner do Azure para hospedar seus contêineres de aplicativo de funções quando precisar executar suas funções controladas por eventos no Azure no mesmo ambiente que outros microsserviços, APIs, sites, fluxos de trabalho ou programas hospedados em contêiner. A hospedagem de Aplicativos de Contêiner permite que você execute suas funções em um ambiente baseado em Kubernetes gerenciado com suporte interno para monitoramento de código aberto, mTLS, Dapr e KEDA. Dá suporte à escala para zero e fornece um modelo de hospedagem sem servidor de pagamento apenas pelo uso. Você também pode solicitar hardware dedicado, até mesmo GPUs, usando perfis de carga de trabalho. Opção de hospedagem recomendada para executar aplicativos de funções em contêineres no Azure.
Clusters do Kubernetes habilitados para Azure Arc (versão prévia) Você pode hospedar seus aplicativos de funções em clusters do Kubernetes habilitados para Azure Arc como uma implantação somente código ou em um contêiner do Linux personalizado. O Azure Arc permite anexar clusters do Kubernetes para que você possa gerenciá-los e configurá-los no Azure. A hospedagem dos contêineres do Azure Functions em clusters do Kubernetes habilitados para Azure Arc está atualmente em versão prévia.
Azure Functions Você pode hospedar seus aplicativos de funções em contêineres no Azure Functions executando o contêiner em um plano Elastic Premium ou em um Plano dedicado. A hospedagem de plano Premium oferece os benefícios da escala dinâmica. Talvez você queira usar a hospedagem de plano dedicado para aproveitar os recursos existentes do Plano do Serviço de Aplicativo não utilizado.
Kubernetes Como o runtime do Azure Functions fornece flexibilidade na hospedagem onde e como você deseja, você pode hospedar e gerenciar os contêineres do aplicativo de funções diretamente em clusters do Kubernetes. KEDA (dimensionamento automático controlado por eventos baseado em Kubernetes) funciona perfeitamente com o tempo de execução e as ferramentas do Azure Functions a fim de fornecer um dimensionamento controlado por eventos em Kubernetes. Porém, tenha em mente que executar seus aplicativos de funções em contêineres no Kubernetes, usando KEDA ou implantação direta, é um esforço de código aberto que você pode usar gratuitamente, com o suporte de melhor esforço fornecido por colaboradores e da comunidade. Você é responsável por manter seus próprios contêineres do aplicativo de funções em um cluster, mesmo ao implantar no AKS (Serviço de Kubernetes do Azure).

Comparação de suporte a recursos

O nível de suporte a vários recursos e comportamentos do Azure Functions ao executar seu aplicativo de funções em um contêiner depende da opção de hospedagem de contêiner escolhida.

Recurso/comportamento Aplicativos de Contêiner (integrado) Aplicativos de Contêiner (direto) Plano Premium Plano dedicado Kubernetes
Suporte ao produto Sim Não Sim Sim Não
Integração do portal do Functions Sim Nenhum Sim Sim Nenhum
Escala orientada por eventos Sim5 Sim (regras de escala) Sim Não No
Escala máxima (instâncias) 10001  10001  1002  10-303  Varia de acordo com o cluster
Instâncias de escala para zero Sim Sim Não No KEDA
Limite de tempo de execução Não associado6 Não associado6 Não associado7 Não associado8 Nenhuma
Implantação do Core Tools func azurecontainerapps Não No No func kubernetes 
Revisões Nenhum Sim Nenhum Nenhum Nenhum
Slots de implantação  Nenhum Nenhum Sim Sim Nenhum
Logs de streaming  Sim Sim  Sim Sim Nenhum
Acesso ao console  Não disponível no momento4  Sim Sim (usando o Kudu) Sim (usando o Kudu) Sim (em pods usando kubctl)
Mitigação de inicialização a frio Réplicas mínimas Regras de escala  Instâncias sempre prontas/pré-aquecidas  N/D n/d
Autenticação do Serviço de Aplicativo  Não disponível no momento4  Sim Sim Sim Nenhum
Personalizar os nomes de domínios  Não disponível no momento4  Sim Sim Sim Nenhum
Certificados de chave privada  Não disponível no momento4  Sim Sim Sim Nenhum
Redes virtuais Sim Sim Sim Sim Sim
Zonas de disponibilidade Sim Sim Sim Sim Sim
Diagnósticos Não disponível no momento4  Sim Sim  Sim  Nenhum
Hardware dedicado Sim (perfis de carga de trabalho) Sim (perfis de carga de trabalho) Nenhum Sim Sim
GPUs dedicadas Sim (perfis de carga de trabalho) Sim (perfis de carga de trabalho) Nenhum Não Sim
Memória configurável/contagem de CPU Sim Sim Não Nenhum Sim
Opção “Concessão gratuita” Sim Sim Não No No
Detalhes de preço Cobrança dos Aplicativos de Contêiner Cobrança dos Aplicativos de Contêiner Cobrança do plano Premium Cobrança do plano dedicado Preços do AKS
Requisitos do nome de serviço 2 a 32 caracteres: limitado a letras minúsculas, números e hifens. Deve começar com uma letra e terminar com um caractere alfanumérico. 2 a 32 caracteres: limitado a letras minúsculas, números e hifens. Deve começar com uma letra e terminar com um caractere alfanumérico. Menos de 64 caracteres: limitado a caracteres alfanuméricos e hifens. Não pode começar ou terminar com um hífen. Menos de 64 caracteres: limitado a caracteres alfanuméricos e hifens. Não pode começar ou terminar com um hífen. Menos de 253 caracteres: limitado a caracteres alfanuméricos e hifens. Deve começar e terminar com um caractere alfanumérico.
  1. 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. Ao criar seu aplicativo de funções no portal do Azure, você está limitado a 300 instâncias.
  2. Em algumas regiões, os aplicativos Linux em um plano Premium podem ser escalados para 100 instâncias. Para mais informações, confira o artigo do plano Premium.
  3. Para obter limites específicos para as várias opções de plano do Serviço de Aplicativo, confira os limites do plano do Serviço de Aplicativo.
  4. A paridade de recursos é uma meta de hospedagem integrada nos Aplicativos de Contêiner do Azure.
  5. Requer KEDA; compatível com a maioria dos gatilhos. Para saber quais gatilhos dão suporte à escala orientada por eventos, consulte Considerações para hospedagem dos Aplicativos de Contêiner.
  6. Quando o número mínimo de réplicas for definido como zero, o tempo limite padrão dependerá dos gatilhos específicos usados no aplicativo.
  7. Não há duração máxima de tempo limite de execução imposta. No entanto, o período de cortesia dado a uma execução de função é de 60 minutos durante a redução horizontal e um período de cortesia de 10 minutos é dado durante as atualizações de plataforma.
  8. Exige que o plano do Serviço de Aplicativo seja definido como Always On. Um período de cortesia de 10 minutos é dado durante as atualizações da plataforma.

Introdução

Use estes links para começar a trabalhar com o Azure Functions em contêineres do Linux:

Eu quero… Consulte o artigo:
Criar minhas primeiras funções em contêineres Criar um aplicativo de funções em um contêiner local do Linux
Criar e implantar funções em Aplicativos de Contêiner do Azure Criar sua primeira função em contêineres nos Aplicativos de Contêiner do Azure
Criar e implantar funções em contêineres no Azure Functions Criar seu primeiro Azure Functions em contêineres
Criar e implantar funções no Kubernetes habilitado para Azure Arc Criar seu primeiro Azure Functions em contêineres no Azure Arc (versão prévia)