逻辑应用程序和 CosmosDB

Logic Apps and CosmosDB

所以我正在尝试做一些我认为很简单的事情 - 使用 Logic App 将 json object 插入 Cosmos DB。

我创建了一个 CosmosDB(基于 Core SQL API)并创建了一个名为 Archive 的容器,分区键为 /username(在我的 json object).

现在到逻辑应用程序。

首先,我使用了简单的 YOLO 方法。

这给了我错误:“输入内容无效,因为缺少所需的属性 - 'id; '” 但是我的 json object 没有 id 字段。也许使用 IsUpsert 参数?我不想操纵我的输入文档来添加一个名为 'id' 的字段。

这给了我错误:“指定的输入之一无效” 好的 - 感觉更糟。

我现在尝试使用其他逻辑应用连接器(不是 V2,而是原始连接器)。

这给了我错误:“x-ms-partitionkey header 中提供的分区键的组件少于 collection 中定义的组件。”

我看到这个连接器(与 V2 不同)有一个来自 UI 的分区键值参数,我添加它是为了传递我的用户名

的值

这给了我错误 “输入内容无效,因为缺少必需的属性 - 'id; '”.

在这一点上我想,让我给这该死的机器它想要的,所以我在我的 json object. 中添加了“id”

是的,确实有效。

所以问题是

  1. 使用 Logic Apps 连接器,您是否只能将 json object 插入 Cosmos DB 而消息负载中没有魔法字段“id”?
  2. 如果需要分区键。为什么它在 V2 连接器参数 UI 中不可用?

谢谢。

这个东西的 v1 版本没有分区键,因为它太旧了,Cosmos 没有分区容器。您将需要使用 v2 预览版。我认为它很快就会在某个时候正式发布,因为它已经预览了一段时间了。

是的,使用 Cosmos DB 时,如果没有它的 ID,您将无法插入任何内容,因此您需要从任何调用端点的内容生成并将其传递到 http 请求的正文中。