是否有 Azure Data factory activity 获取 cosmos 集合列表?

Is there any Azure Data factory activity to get cosmos collection list?

Azure 数据工厂中是否有任何选项可以了解 Azure cosmos 帐户中特定数据库中可用的集合列表?

想要在每次执行 Azure 数据工厂管道时执行特定的 activity - cosmos 数据库中的 returns 集合列表。

确切要求: 想要从 cosmos db 的所有集合中复制数据,但 cosmos db 中的集合列表可能会随着时间的推移而变化。如果任何新集合已添加到 cosmos db,则动态地需要将该新集合视为副本的一部分 activity,无需任何外部干预。

在Azure数据工厂中使用Azure函数activity查询cosmos集合列表时,returns输出如下,

{
"Response": "[{\"source\": 
 {\"collectionName\":\"model1\"},\"destination\": 
 {\"fileName\":\"model1.txt\"}},{\"source\": 
{\"collectionName\":\"model2\"},\"destination\": 
{\"fileName\":\"model2.txt\"}}]"
}

预期产出

{
"Response": [
    {
     source:{collectionName:model1},
     destination: {fileName:model1.txt}
    },
  {
  source:{collectionName:model2},
  destination:{fileName:model2.txt}}]
  }
 ]
}

为什么 Azure 函数 activity returns 数组对象作为字符串?

p.s:当我 运行 azure 函数与 V22017 或 azure 门户分开时,它 returns 数组对象作为数组

我不确定是否存在直接方法,但您可以找到解决方法

  1. 对此 API Get List of Collections 进行 HTTP 调用。进行 REST API 调用将确保您始终拥有最新数据。
  1. 解析 JSON 响应以获取集合。接下来可能是 For-Each Activity。

编辑- 在答案的评论中添加讨论

  1. 制作一个可以被Web调用的Http Trigger函数Activity。
  2. 在该函数内获取 AAD 令牌
  3. 调用 REST Api 获取 cosmos 集合列表
  4. Return json-数组作为响应
  5. 在 ADF 中添加 For-each activity 以遍历集合列表。