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 de pagamento sem servidor 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çõ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 kubectl ) |
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. |
- 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.
- 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.
- 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.
- A paridade de recursos é uma meta de hospedagem integrada nos Aplicativos de Contêiner do Azure.
- 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.
- 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.
- 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.
- 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) |