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.
Este artigo ajuda-o a decidir entre os dois modelos de alojamento de Tarefas Duráveis — Durable Functions (Funções do Azure) e os SDKs de Tarefas Duráveis independentes (auto-hospedados) — com base na sua plataforma de alojamento, necessidades de escalabilidade e requisitos operacionais.
Sugestão
Já conhece a sua plataforma de alojamento? Vai para a tabela de consulta de plataformas para uma resposta rápida.
Como descrito em O que é a Tarefa Durável?, a Tarefa Durável suporta dois modelos de alojamento:
- Funções do Azure (via Durable Functions)
- Autogerido (através dos SDKs de Tarefas Duráveis independentes).
Ambos os modelos de alojamento oferecem as mesmas capacidades de execução duradouras (orquestrações, atividades, temporizadores, eventos externos e mais), mas diferem na forma como a sua aplicação é alojada, escalada e implementada.
De um modo geral, o local onde a sua aplicação corre determina que modelo de alojamento utiliza. Se estás a construir com Funções do Azure, usas Durable Functions. Se estiver a desenvolver numa outra plataforma de computação, utilize os SDKs de Tarefas Duráveis independentes.
Escolha com base na plataforma de alojamento
Se já conhece a plataforma de alojamento da sua aplicação, a tabela seguinte pode ajudá-lo a determinar qual o modelo de alojamento a utilizar:
| Plataforma de alojamento | Modelo de hospedagem |
|---|---|
| Funções do Azure (Consumo, Consumo Flexível, Premium) | Durable Functions |
| Azure Container Apps (com Funções do Azure tempo de execução) | Ambas |
| Serviço de Aplicações do Azure (com Funções do Azure tempo de execução) | Ambas |
| Azure Kubernetes Service (AKS) | SDKs de Tarefas Duráveis Independentes |
| Máquinas virtuais ou on-premises | SDKs de Tarefas Duráveis Independentes |
Observação
Serviço de Aplicações do Azure e Azure Container Apps podem ambos hospedar o runtime do Funções do Azure, seja através da integração totalmente gerida do Funções do Azure ou implementando diretamente o runtime das Funções. Assim, ambas as plataformas suportam qualquer um dos modelos de alojamento. Para mais informações sobre modelos de alojamento Funções do Azure, consulte Funções do Azure planos de alojamento.
Compare os modelos de alojamento
A tabela seguinte resume as principais diferenças entre os dois modelos de alojamento:
| Funções Duráveis do Azure (Funções do Azure) | SDKs de Tarefas Duráveis Autónomas (auto-hospedados) | |
|---|---|---|
| Hospedagem | Funções do Azure (Consumption, Flex Consumption, Premium), App Service e Container Apps (com runtime de Functions) | Qualquer plataforma: Azure Container Apps, AKS, App Service, VMs, nas instalações |
| Dimensionamento | Automático, gerido pela infraestrutura de escala gerida da Funções do Azure | Geres tu próprio a escalabilidade, ou usas o autoscaling nativo da plataforma (por exemplo, KEDA no Kubernetes) |
| Acionadores | Suporte incorporado para HTTP, Fila, Temporizador, Grelha de Eventos e outros gatilhos das Funções do Azure | Define os seus próprios pontos de entrada (por exemplo, interfaces HTTP, consumidores de mensagens, etc.) |
| Armazenamento de estado | Durable Task Scheduler (recomendado), Armazenamento do Azure, MSSQL, Netherite | Agendador de tarefas durável |
| Idiomas | .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell | .NET (C#/F#), JavaScript/TypeScript, Python, Java |
| Monitorização | Integração integrada com o portal Azure, Application Insights | Configuras a tua própria solução de monitorização (por exemplo, Azure Monitor, Prometheus ou Grafana) |
Observação
O arranque a frio ocorre quando uma aplicação de funções começa depois de estar inativa. Os planos de alojamento premium e dedicado mantêm as instâncias quentes para reduzir a latência de arranque a frio.
O plano de alojamento Flex Consumption oferece um conceito de "instâncias sempre prontas" como mitigação do arranque a frio.
Saiba mais sobre modelos de alojamento Funções do Azure.
APIs HTTP integradas
O Funções do Azure fornece endpoints HTTP para a sua aplicação functions, que a extensão Durable Functions aproveita para fornecer suporte incorporado para gestão de instâncias via HTTP.
Ao usar os Durable Task SDKs, precisa de implementar os seus próprios endpoints HTTP dependendo do seu ambiente de hospedagem.
| Feature | Durable Functions | SDKs de Tarefas Duráveis |
|---|---|---|
| APIs HTTP de Gestão | ✅ Integrado | ❌ Implementa o teu próprio |
| URLs de estado automáticos | ✅ Integrado | ❌ Implementa o teu próprio |
Durable Functions Recursos HTTP
O Durable Functions expõe automaticamente os endpoints HTTP para iniciar orquestrações, consultar status, levantar eventos e terminar instâncias. Estas APIs seguem o padrão de polling HTTP assíncrono, facilitando a integração com sistemas externos.
Observação
Durable Functions suporta usar a classe DurableTaskClient diretamente, se preferires do que usar as APIs HTTP integradas.
Saiba mais: Funcionalidades HTTP nas Durable Functions | Referência da API HTTP
Gestão de SDKs de Tarefas Duráveis
Com os Durable Task SDKs, usas a DurableTaskClient classe diretamente para gerir instâncias de orquestração. Se precisar de endpoints HTTP, você próprio os implementa usando o framework web que preferido.
Saiba mais: Gerir instâncias de orquestração
Backends de armazenamento
Ambos os modelos de alojamento utilizam o Durable Task Scheduler — um serviço de Azure totalmente gerido para persistência e execução do estado de orquestração (preço). O Durable Functions suporta adicionalmente backends de armazenamento personalizados (Armazenamento do Azure, MSSQL e Netherite). Os SDKs de Tarefas Duráveis utilizam exclusivamente o Agendador de Tarefas Duráveis.
Saiba mais: Fornecedores de armazenamento
Configuração do hub de tarefas
Durable Functions configura os centros de tarefas no ficheiro host.json. Os SDKs de Tarefas Duráveis configuram os hubs de tarefas em código e variáveis de ambiente (cadeia de conexão/ponto de extremidade).
Saiba mais: Centros de tarefas
Diagnóstico e versionamento
| Feature | Durable Functions | SDKs de Tarefas Duráveis |
|---|---|---|
| Painel do Agendador de Tarefas Durable | ✅ Sim | ✅ Sim |
| Informações sobre aplicativos | ✅ Integrado | Configuração manual |
| Implantação sem tempo de inatividade | ✅ Espaços de funções | Específico da plataforma |
Saiba mais: Diagnósticos | Versionamento
Quando escolher cada modelo
Ao escolher entre os dois modelos de alojamento, considere os seguintes fatores:
| Escolhe Durable Functions se... | Escolha SDKs de Tarefas Duráveis independentes se... |
|---|---|
| Queres triggers incorporados no Funções do Azure (HTTP, Queue, Timer, etc.). | Deseja ter controlo total sobre o seu contentor e os respetivos pontos de entrada. |
| Já conheces o modelo de alojamento do Funções do Azure. | Preferes um SDK leve sem a sobrecarga de runtime do Funções do Azure. |
| Queres integração com o portal Azure para gestão de funções. | Quer que o mesmo código seja portátil entre plataformas de contentores (AKS, App Service, etc.). |
| Tens de escolher entre múltiplos backends de armazenamento. | Já tens código de aplicação não-Functions para integrar. |
| Precisas de aplicações serverless e orientadas a eventos que escalem até zero. | Precisas de cargas de trabalho de baixa latência sempre ligadas, sem atrasos de arranque a frio. |
| Pretende preços por execução com o plano de consumo. | Precisas de cenários de alto rendimento otimizados para processamento em lote. |
| Precisas de prototipagem rápida com gatilhos declarativos e bindings. | Tem aplicações containerizadas ou Kubernetes existentes. |
Migração
Se já estiver a usar Durable Functions e quiser migrar para uma implementação baseada em contentores ou aproveitar a flexibilidade de alojamento dos SDKs Durable Task, a migração é simples. O código de orquestração é muito semelhante entre ambos os frameworks.
Para orientações detalhadas sobre migração, consulte Migrar de Durable Functions para os SDKs de Tarefas Duradouras.
Observação
Durable Task Framework (DTFx): O Durable Task Framework é uma biblioteca de .NET open-source mantida pela comunidade para orquestração duradoura. É usado internamente como uma dependência do Durable Functions, mas não vem com suporte oficial da Microsoft. Se estiver a começar um novo projeto, use os modernos Durable Task SDKs ou Durable Functions em vez disso.
Passos seguintes
Comece com a estrutura que escolheu:
Depois, saiba mais sobre o fornecedor de backend do Durable Task Scheduler.