You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

哪款Azure Function模板适合实现ADF自定义Lookup Activity

实现方案

第一步:选择合适的Azure Function模板

直接选择HTTP触发类型的Azure Function模板即可,不需要选择其他专用模板,该模板支持直接被Azure Data Factory调用并返回结构化数组数据,完全适配你的需求。你可以根据自己的技术栈选择.NET、Python、Node.js等任意运行时。
模板选择参考如下:
Azure Function模板选择示例

第二步:编写Azure Function逻辑

功能逻辑非常简单,只需要调用Cosmos DB SDK拉取指定数据库下的所有容器名,封装为数组返回即可,以下为C#语言的示例代码:

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.Cosmos;
using System.Collections.Generic;
using System.Threading.Tasks;

public static class GetCosmosContainersFunction
{
    [FunctionName("GetCosmosContainers")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req)
    {
        // 从应用配置读取Cosmos DB连接字符串和数据库名
        string cosmosConnString = Environment.GetEnvironmentVariable("CosmosDBConnectionString");
        string databaseName = Environment.GetEnvironmentVariable("CosmosDBDatabaseName");
        
        using CosmosClient client = new CosmosClient(cosmosConnString);
        Database database = await client.CreateDatabaseIfNotExistsAsync(databaseName);
        
        List<string> containerNames = new List<string>();
        using var iterator = database.GetContainerQueryIterator<ContainerProperties>();
        while (iterator.HasMoreResults)
        {
            foreach (var container in await iterator.ReadNextAsync())
            {
                containerNames.Add(container.Id);
            }
        }
        
        // 返回容器名称数组,格式和Lookup Activity输出一致
        return new OkObjectResult(containerNames);
    }
}

第三步:对接ADF的ForEach Activity

  • 在ADF中添加Azure Function Activity,配置调用你编写的上述HTTP触发Function
  • 将Azure Function Activity的输出数组,直接填入ForEach Activity的项目配置项
  • 后续ForEach的循环逻辑可以直接读取每个遍历项作为容器名,和Lookup Activity的使用方式完全一致。

内容的提问来源于stack exchange,提问作者Yuzuki Ayase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:24:03