Suporte a contêineres Linux no Azure Functions
Quando você planeja e desenvolve suas funções individuais para serem executadas no Azure Functions, normalmente está focado no código em si. O Azure Functions facilita a implantação apenas do seu projeto de código em um aplicativo de função no Azure. Quando você implanta seu projeto de código em um aplicativo de função que é executado no Linux, o projeto é executado em um contêiner que é criado para você automaticamente. Esse contêiner é gerenciado pelo Functions.
O Functions também oferece suporte a implantações de aplicativos de função em contêineres. Em uma implantação em contêiner, você cria sua própria instância de aplicativo de função em um contêiner Docker local a partir de uma imagem baseada em suporte. Em seguida, você pode implantar esse aplicativo de função em contêiner em um ambiente de hospedagem no Azure. Criar seu próprio contêiner de aplicativo de função permite que você personalize ou, de outra forma, controle o ambiente de tempo de execução imediato do seu código de função.
Importante
Ao criar seus próprios contêineres, é necessário manter a imagem base do contêiner atualizada para a imagem base suportada mais recente. As imagens de base com suporte para o Azure Functions são específicas do idioma e são encontradas nos repositórios de imagem base do Azure Functions.
A equipa do Functions está empenhada em publicar atualizações mensais para estas imagens base. As atualizações regulares incluem as últimas atualizações de versões secundárias e correções de segurança para o tempo de execução e os idiomas do Functions. Você deve atualizar regularmente seu contêiner a partir da imagem base mais recente e reimplantar a versão atualizada do contêiner.
Opções de hospedagem de contêiner
Há várias opções para hospedar seus aplicativos de função em contêiner 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ção em contêineres em 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ção quando precisar executar suas funções controladas por eventos no Azure no mesmo ambiente que outros microsserviços, APIs, sites, fluxos de trabalho ou quaisquer programas hospedados em contêiner. A hospedagem de aplicativos de contêiner permite que você execute suas funções em um ambiente gerenciado baseado em Kubernetes com suporte integrado para monitoramento de código aberto, mTLS, Dapr e KEDA. Suporta escalabilidade até zero e fornece um modelo de hospedagem de pagamento sem servo para o que você usa. 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ção em contêineres no Azure. |
Clusters Kubernetes habilitados para Azure Arc (visualização) | Você pode hospedar seus aplicativos de função em clusters Kubernetes habilitados para Azure Arc como uma implantação somente de código ou em um contêiner Linux personalizado. O Azure Arc permite anexar clusters Kubernetes para que você possa gerenciá-los e configurá-los no Azure. A hospedagem de contêineres do Azure Functions em clusters Kubernetes habilitados para Azure Arc está atualmente em visualização. |
Funções do Azure | Você pode hospedar seus aplicativos de função em contêineres no Azure Functions executando o contêiner em um plano Elastic Premium ou em um plano dedicado. A hospedagem de planos Premium oferece os benefícios do dimensionamento dinâmico. Talvez você queira usar a hospedagem de plano dedicado para aproveitar os recursos existentes do plano do Serviço de Aplicativo não utilizados. |
Kubernetes | Como o tempo de execução do Azure Functions fornece flexibilidade na hospedagem onde e como você deseja, você pode hospedar e gerenciar seus contêineres de aplicativo de função diretamente em clusters do Kubernetes. O KEDA (Event Driven Autoscaling baseado em Kubernetes) combina perfeitamente com o tempo de execução e as ferramentas do Azure Functions para fornecer escala orientada a eventos no Kubernetes. Apenas tenha em mente que executar seus aplicativos de função em contêineres no Kubernetes, seja usando KEDA ou por implantação direta, é um esforço de código aberto que você pode usar gratuitamente, com suporte de melhor esforço fornecido por colaboradores e da comunidade. Você é responsável por manter seus próprios contêineres de aplicativo de função em um cluster, mesmo ao implantar no Serviço Kubernetes do Azure (AKS). |
Comparação de suporte a recursos
O grau em que vários recursos e comportamentos do Azure Functions são suportados ao executar seu aplicativo de função em um contêiner depende da opção de hospedagem de contêiner escolhida.
Característica/comportamento | Aplicativos de contêiner (integrado) | Aplicativos de contêiner (direto) | Plano Premium | Plano dedicado | Kubernetes |
---|---|---|---|---|---|
Suporte ao produto | Sim | No | Sim | Sim | Não |
Integração do portal de funções | Sim | Não | Sim | Sim | Não |
Dimensionamento controlado por eventos | Sim 5 | Sim (regras de escala) | Sim | No | Não |
Escala máxima (instâncias) | 10001 | 10001 | 1002 | 10-303 | Varia de acordo com o cluster |
Instâncias de dimensionamento para zero | Sim | Sim | No | Não | KEDA |
Prazo de execução | Sem limites6 | Sem limites6 | Sem limites7 | Sem limites8 | Nenhum |
Implantação de ferramentas principais | func azurecontainerapps |
No | No | Não | func kubernetes |
Revisões | Não | Sim | Não | Não | Não |
Slots de implantação | Não | Não | Sim | Sim | Não |
Logs de streaming | Sim | Sim | Sim | Sim | Não |
Acesso à consola | Não disponívelno momento 4 | Sim | Sim (usando Kudu) | Sim (usando Kudu) | Sim (em pods usando kubctl ) |
Mitigação do arranque a frio | Mínimo de réplicas | Regras de escala | Instâncias sempre prontas/pré-aquecidas | n/d | n/a |
Autenticação do Serviço de Aplicações | Não disponívelno momento 4 | Sim | Sim | Sim | Não |
Nomes de domínio personalizados | Não disponívelno momento 4 | Sim | Sim | Sim | Não |
Certificados de chave privada | Não disponívelno momento 4 | Sim | Sim | Sim | Não |
Redes virtuais | Sim | Sim | Sim | Sim | Sim |
Zonas de disponibilidade | Sim | Sim | Sim | Sim | Sim |
Diagnóstico | Não disponívelno momento 4 | Sim | Sim | Sim | Não |
Hardware dedicado | Sim (perfis de carga de trabalho) | Sim (perfis de carga de trabalho) | Não | Sim | Sim |
GPUs dedicadas | Sim (perfis de carga de trabalho) | Sim (perfis de carga de trabalho) | Não | Não | Sim |
Contagem configurável de memória/CPU | Sim | Sim | Não | Não | Sim |
Opção "Subvenção gratuita" | Sim | Sim | No | No | Não |
Detalhes dos preços | Faturação de Aplicações de Contentor | Faturação de Aplicações de Contentor | Faturação do plano Premium | Faturação do plano dedicado | Preços AKS |
Requisitos de nome de serviço | 2-32 caracteres: limitado a letras minúsculas, números e hífenes. Deve começar com uma letra e terminar com um caractere alfanumérico. | 2-32 caracteres: limitado a letras minúsculas, números e hífenes. Deve começar com uma letra e terminar com um caractere alfanumérico. | Menos de 64 caracteres: limitado a caracteres alfanuméricos e hífenes. Não é possível começar com ou terminar com um hífen. | Menos de 64 caracteres: limitado a caracteres alfanuméricos e hífenes. Não é possível começar com ou terminar com um hífen. | Menos de 253 caracteres: limitado a caracteres alfanuméricos e hífenes. Deve começar e terminar com um caractere alfanumérico. |
- 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ção a partir do portal do Azure, você está limitado a 300 instâncias.
- 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.
- A paridade de recursos é um objetivo de hospedagem integrada em Aplicativos de Contêiner do Azure.
- Requer KEDA, suportado pela maioria dos gatilhos. Para saber quais gatilhos oferecem suporte ao dimensionamento controlado por eventos, consulte Considerações sobre hospedagem de aplicativos de contêiner.
- 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.
- 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 escala 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.
Introdução
Use estes links para começar a trabalhar com o Azure Functions em contêineres do Linux:
Eu quero... | Ver artigo: |
---|---|
Criar minhas primeiras funções em contêineres | Criar um aplicativo de função em um contêiner Linux local |
Criar e implantar funções em Aplicativos de Contêiner do Azure | Crie suas primeiras funções em contêineres nos Aplicativos de Contêiner do Azure |
Criar e implantar funções em contêineres no Azure Functions | Crie seu primeiro Azure Functions em contêiner |
Criar e implantar funções no Kubernetes habilitado para Azure Arc | Criar o seu primeiro Azure Functions em contentores no Azure Arc (pré-visualização) |