Skip to content

使用 .NET 管理 Azure Durable Task 调度器资源

解决 Azure 资源自动化部署问题:通过 .NET SDK 实现对 Azure Durable Task Scheduler 的管理平面操作,支持自动创建调度器、配置 SKU 规格及管理任务中心(Task Hub)。

为什么需要这个技能

在构建大规模分布式工作流时,Durable Task 提供了强大的编排能力。但通常开发者容易混淆“管理平面(Management Plane)”和“数据平面(Data Plane)”。

如果你需要通过代码动态创建调度器、调整实例容量(Capacity)、配置网络 IP 白名单或管理资源保留策略,而不是启动具体的编排实例,那么你就需要掌握 Azure.ResourceManager.DurableTask 这一管理平面 SDK。它允许你将基础设施的配置纳入到 .NET 自动化流水线中。

适用场景

  • 自动化运维:根据不同环境(开发/测试/生产)自动部署不同 SKU 的调度器。
  • 动态扩展:通过代码根据负载需求实时更新 Dedicated SKU 的实例容量。
  • 安全加固:自动化管理调度器的 IP 允许列表(IP Allowlist)。
  • 资源清理:在 CI/CD 流程末尾自动删除临时创建的任务中心和调度器。

核心工作流

1. 安装与认证

首先安装必要的 NuGet 包:

bash
dotnet add package Azure.ResourceManager.DurableTask
dotnet add package Azure.Identity

使用 DefaultAzureCredential 进行身份验证,这是 Azure SDK 的推荐做法,可自动处理本地开发环境与云端托管环境的凭据切换。

2. 创建调度器 (Scheduler)

调度器支持 Dedicated(固定容量,适用于生产)和 Consumption(无服务器,适用于开发)两种 SKU。

csharp
// 定义调度器配置
var schedulerData = new DurableTaskSchedulerData(AzureLocation.EastUS)
{
    Properties = new DurableTaskSchedulerProperties
    {
        Sku = new DurableTaskSchedulerSku(DurableTaskSchedulerSkuName.Dedicated)
        {
            Capacity = 1 
        },
        IPAllowlist = { "10.0.0.0/24" }
    }
};

// 执行创建(长时运行操作)
var schedulerCollection = resourceGroup.Value.GetDurableTaskSchedulers();
var operation = await schedulerCollection.CreateOrUpdateAsync(
    WaitUntil.Completed,
    "my-scheduler",
    schedulerData);

3. 管理任务中心 (Task Hub)

任务中心是调度器下的逻辑隔离单位,必须在调度器创建后才能创建。

csharp
var taskHubData = new DurableTaskHubData();
var taskHubCollection = scheduler.GetDurableTaskHubs();
var hubOperation = await taskHubCollection.CreateOrUpdateAsync(
    WaitUntil.Completed,
    "my-taskhub",
    taskHubData);

4. 资源清理顺序

由于资源之间存在依赖关系,删除时必须遵循从底层到顶层的顺序:先删除 Task Hub 后删除 Scheduler

下载和安装

下载 azure-resource-manager-durabletask-dotnet 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐