Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 em um aplicativo de funções do Linux, seu código é executado em um contêiner que é criado para você automaticamente e integra-se perfeitamente às ferramentas de gerenciamento do 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, você precisará 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 regulares incluem as atualizações de versão secundária mais recentes e as correções de segurança para o runtime e os idiomas do Functions. Você deve atualizar regularmente o seu contêiner da imagem base mais recente e reimplantar a versão atualizada do seu contêiner. Para obter mais informações, consulte Manter contêineres personalizados.
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. Essa integração 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 o contêiner do aplicativo de funções no mesmo ambiente que outros microsserviços, APIs, sites, fluxos de trabalho ou outros 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 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. Para obter mais informações, consulte Trabalhar com contêineres e Azure Functions. |
Azure Functions | Você pode hospedar seus aplicativos de funções em contêineres no Azure Functions executando o contêiner em um plano Elástico Premium ou um Serviço de Aplicativo (Dedicado ). Utilize a hospedagem de Container Apps para oferecer suporte rico a contêineres de Container Apps. 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. Importante: A hospedagem do Kubernetes de seus aplicativos de funções em contêineres, usando KEDA ou por implantação direta, é um esforço de software livre que você pode usar gratuitamente. O suporte de melhor esforço para esse cenário de hospedagem é fornecido apenas por colaboradores e pela comunidade. Você é responsável por manter seus próprios contêineres de aplicativo de funções em um cluster, mesmo ao implantá-los 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 | Não | Não | Sim | Sim | Não |
Escala orientada por eventos | Sim5 | Sim (regras de escala) | Sim | Não | Não |
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 | Não | KEDA |
Limite de tempo de execução | Não associado6 | Não associado6 | Não associado7 | Não associado8 | Nenhum |
Implantação do Core Tools | Não | Não | Não | Não | func kubernetes |
Revisões | Sim | 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 ao console | Sim | 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 | Sim | Sim | Sim | Sim | Não |
Nomes de domínio personalizados | Sim | Sim | Sim | Sim | Não |
Certificados de chave privada | Sim | Sim | Sim | Sim | Não |
Redes virtuais | Sim | Sim | Sim | Sim | Sim |
Zonas de disponibilidade | Sim | Sim | Sim | Sim | Sim |
Diagnósticos | Sim | 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 |
Memória configurável/contagem de CPU | Sim | Sim | Não | Não | Sim |
Opção “Concessão gratuita” | Sim | Sim | Não | Não | Não |
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.
- 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.
Manutenção de contêineres personalizados
Ao criar seus próprios contêineres, você precisará 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 regulares incluem as atualizações de versão secundária mais recentes e as correções de segurança para o runtime e os idiomas do Functions. Você deve atualizar regularmente o seu contêiner da imagem base mais recente e reimplantar a versão atualizada do seu contêiner.
Quando a imagem base é gerenciada pelo Functions, como em uma implantação padrão no Linux, seu aplicativo é mantido atualizado automaticamente pelas atualizações regulares de imagem base lançadas pela equipe do Functions. Para esses contêineres não personalizados, seu aplicativo é atualizado para ser executado na imagem base que possui a nova versão menor ou versão corrigida do ambiente de execução do host.
Ao criar ou implantar seu próprio aplicativo em contêineres usando uma imagem personalizada, você será responsável por garantir que sua imagem personalizada fique atualizada com nossas imagens base lançadas. Além de novos recursos e melhorias, essas atualizações de imagem base também podem incluir atualizações de segurança que são essenciais para seu aplicativo. Para garantir que seu aplicativo esteja protegido, verifique se você está atualizado.
Em alguns casos, é necessário fazer alterações no nível da plataforma que possam significar que um aplicativo em um contêiner personalizado usando uma imagem base antiga pode parar de funcionar corretamente. Para essas alterações importantes, distribuimos imagens atualizadas com bastante antecedência para que os aplicativos que fazem atualizações regulares não sejam afetados negativamente. Para evitar possíveis problemas com seus aplicativos em execução em contêineres personalizados, verifique se você não está muito atrás da versão secundária mais recente lançada. Durante um caso de suporte, devemos determinar que seu aplicativo está enfrentando problemas porque ele está em uma versão mais antiga ou sem suporte, solicitamos que você atualize seu contêiner para a versão mais recente da imagem base antes de continuar com o suporte.
Introdução
Use estes links para começar a trabalhar com o Azure Functions em contêineres do Linux:
Eu desejo... | 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 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 | Criar seu primeiro Azure Functions em contêineres |