你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure 逻辑应用处理和创建 Azure Cosmos DB 文档

适用范围:Azure 逻辑应用(消耗型 + 标准型)

通过 Azure 逻辑应用中的工作流,可以连接到 Azure Cosmos DB 并使用 Azure Cosmos DB 连接器处理文档。 此连接器提供触发器和操作供工作流用来执行 Azure Cosmos DB 操作。 例如,操作包括创建或更新、读取、查询和删除文档。

可以使用托管连接器操作从逻辑应用(消耗)和逻辑应用(标准)资源类型连接到 Azure Cosmos DB 。 对于逻辑应用(标准),Azure Cosmos DB 还提供内置操作,这些操作目前以预览版提供,提供不同的功能、更好的性能和更高的吞吐量。 例如,如果使用的是逻辑应用(标准)资源类型,则可以使用内置触发器来响应 Azure Cosmos DB 容器中的更改。 可将 Azure Cosmos DB 操作与逻辑应用工作流中的其他操作和触发器相结合,以启用事件源和常规数据处理等方案。

限制

  • 目前,只有逻辑应用(标准)资源中的有状态工作流既可使用托管连接器操作,也可使用内置操作。 无状态工作流只能使用内置操作。

  • Azure Cosmos DB 连接器仅支持使用 Azure Cosmos DB for NoSQL 创建的 Azure Cosmos DB 帐户。

先决条件

添加 Azure Cosmos DB 触发器

在 Azure 逻辑应用中,每个工作流都必须从触发器开始,该触发器在发生特定事件或特定条件得到满足的情况下触发。

如果使用的是逻辑应用(标准)资源类型,可以使用名为“创建或修改项时(预览版)”的内置触发器,该触发器基于Azure Cosmos DB 更改源模式 。 此触发器不可用于逻辑应用(消耗)资源类型。

逻辑应用(消耗)资源类型没有可用的 Azure Cosmos DB 触发器。

添加 Azure Cosmos DB 操作

在 Azure 逻辑应用中,操作是指工作流中紧跟在某个触发器或另一操作后面执行的一个步骤。 Azure Cosmos DB 连接器提供针对逻辑应用(消耗)和逻辑应用(标准)资源类型的操作 。 以下每个资源类型的示例演示如何使用创建或更新文档的操作。

若要将 Azure Cosmos DB 操作添加到多租户 Azure 逻辑应用中的逻辑应用工作流,请使用以下步骤:

  1. Azure 门户中,打开设计器的工作流。

  2. 如果工作流为空白,请添加所需的任何触发器。

    此示例从“收到 HTTP 请求时”触发器开始。

  3. 在要添加 Azure Cosmos DB 操作的触发器或操作下,选择“新建步骤”或在步骤之间选择“添加操作” 。

  4. 在设计器的搜索框中,输入 Azure Cosmos DB。 选择要使用的 Azure Cosmos DB 操作。

    此示例使用名为“创建或更新文档(V3)”的操作。

    Screenshot showing the designer for a Consumption logic app workflow with the available Azure Cosmos DB actions.

  5. 如果系统提示你提供连接详细信息,现在请创建与 Azure Cosmos DB 帐户的连接

  6. 提供操作的所需信息。

    属性 需要 描述
    Azure Cosmos DB 帐户名称 选择“使用连接设置 (<Azure-Cosmos-DB-account-name>)”,或手动输入名称。 Azure Cosmos DB 帐户名称。
    数据库 ID <database-ID> 要连接的数据库。
    容器 ID <container-ID> 要查询的容器。
    Document <JSON-document> 要创建的 JSON 文档。 此示例使用触发器输出中的请求正文。

    提示:如果 HTTP 触发器的“正文”令牌未显示在可供添加的动态内容列表中,请在触发器名称旁边选择“查看更多” 。

    注意:确保正文是格式标准的 JSON,并且至少包含 id 属性以及文档的分区键属性。 如果已存在具有指定 id 和分区键的文档,则更新该文档。 否则会创建一个新文档。

    下图显示了一个示例操作:

    Screenshot showing the designer for a Consumption logic app workflow with the Azure Cosmos DB 'Create or update documents (V3)' action and parameters configuration.

  7. 根据需要配置任何其他操作设置。

  8. 在设计器工具栏上选择“保存”。

  9. 测试逻辑应用,确保工作流在指定的容器中创建文档。

连接到 Azure Cosmos DB

当你添加连接到服务或系统的触发器或操作时,如果没有现有连接或活动连接,Azure 逻辑应用会提示你提供连接信息,这些信息因连接类型而异,例如:

  • 帐户凭据
  • 要用于连接的名称
  • 服务器或系统的名称
  • 要使用的身份验证类型
  • 一个连接字符串

需要连接到数据库帐户,然后才能配置 Azure Cosmos DB 触发器Azure Cosmos DB 操作

在逻辑应用(消耗)工作流中,Azure Cosmos DB 连接需要以下属性值:

属性 需要 说明
连接名称 <connection-name> 要使用的连接名称。
身份验证类型 <connection-type> 要使用的身份验证类型。 此示例使用“访问密钥”。

- 如果选择“访问密钥”,请提供创建连接所需的其余属性值。

- 如果选择 Microsoft Entra 集成,则无需其他属性值,但必须按照 Microsoft Entra 身份验证和 Azure Cosmos DB 连接器的步骤配置连接。

Azure Cosmos DB 帐户的访问密钥 <access-key> 用于此连接的 Azure Cosmos DB 帐户的访问密钥。 此值是读写密钥或只读密钥。

注意:若要查找密钥,请转到 Azure Cosmos DB 帐户页。 在导航菜单中的“设置”下,选择“密钥” 。 复制其中一个可用的密钥值。

帐户 ID <acccount-ID> 用于此连接的 Azure Cosmos DB 帐户的名称。

下图显示了一个示例连接:

Screenshot showing an example Azure Cosmos DB connection configuration for a Consumption logic app workflow.

注意

创建连接后,如果要改用不同的现有 Azure Cosmos DB 连接,或者要创建另一个新连接,请在触发器或操作详细信息编辑器中选择“更改连接”。

连接器参考

有关 Azure Cosmos DB 托管连接器操作的参考信息(例如触发器、操作和限制),请查看连接器的参考页

Azure Cosmos DB 内置操作没有相应的参考页。 对于这些操作,请查看下表中的详细信息:

类型 名称 parameters
触发器 创建或修改项时 - 数据库 ID:必需。 包含受监视容器和租用容器的数据库的名称。
- 受监视容器 ID:必需。 要监视的容器的名称。
- 租用容器 ID:必需。 用于存储租约的容器的名称。
- 创建租用容器:必需。 如果为 true,则创建租用容器(如果尚不存在)。
- 租用容器吞吐量:可选。 创建租用容器时要分配的请求单位数。
操作 创建或更新项 - 数据库 ID:必需。 数据库的名称。
- 容器 ID:必需。 容器的名称。
- 项:必需。 要创建或更新的项。
- 分区键:可选。 所请求项的分区键值。
- 是更新插入:可选。 如果为 true,则替换该项(如果存在)。 否则创建项。
操作 批量创建或更新多个项 此操作已针对高吞吐量方案进行优化,它在提交要在 Azure Cosmos DB 容器中创建的项之前会完成额外的处理。 如果项数很大,这种额外处理可以缩短总请求时间。 如果项数较小,与使用多个创建项操作相比,这种额外的开销可能会导致性能降低。

- 数据库 ID:必需。 数据库的名称。
- 容器 ID:必需。 容器的名称。
- :必需。 要创建或更新的项的数组。
- 是更新插入:可选。 如果为 true,则替换项(如果存在)。 否则创建项。

操作 读取项 - 数据库 ID:必需。 数据库的名称。
- 容器 ID:必需。 容器的名称。
- 项 ID:必需。 所请求项的 id 值。
- 分区键:必需。 所请求项的分区键值。
操作 删除项 - 数据库 ID:必需。 数据库的名称。
- 容器 ID:必需。 容器的名称。
- 项 ID:必需。 所请求项的 id 值。
- 分区键:必需。 所请求项的分区键值。
操作 查询项 - 数据库 ID:必需。 数据库的名称。
- 容器 ID:必需。 容器的名称。
- Sql 查询:必需。 Azure Cosmos DB SQL 查询文本。
- 分区键:可选。 请求的分区键值(如果有)。
- 延续令牌:可选。 此查询的延续令牌(如果有),由 Azure Cosmos DB 服务提供。
- 最大项计数:可选。 查询的要返回的最大项数。

Azure Cosmos DB 内置操作最佳做法

从查询项操作中获取可迭代结果

“逻辑应用(标准)”工作流中的内置查询项操作具有许多可用于后续操作的动态内容输出 。 若要获取可迭代对象形式的查询结果项或项元数据,请遵循以下步骤:

  1. Azure 门户中,打开设计器的工作流。

  2. 如果工作流为空白,请添加所需的任何触发器。

    此示例开始使用“定期”触发器

  3. 在要添加 Azure Cosmos DB 操作的触发器或操作下,选择“插入新步骤”(+) >“添加操作”。

  4. 在设计器中,确保已选择“添加操作”。 在打开的“添加操作”窗格中,在“选择操作”搜索框下,选择“内置”找到“Azure Cosmos DB”操作 。

  5. 在搜索框中输入 Azure Cosmos DB。 选择“查询项(预览版)”操作。

  6. 如果系统提示你提供连接详细信息,请创建与 Azure Cosmos DB 帐户的连接

  7. 提供操作的所需信息。

    属性 必须 描述
    数据库 ID <database-ID> 要连接的数据库。
    容器 ID <container-ID> 要查询的容器。
    SQL 查询 <sql-query> 请求的 SQL 查询。

    下图显示了一个示例操作:

    Screenshot showing the designer for a Standard logic app workflow with the Azure Cosmos DB 'Query items' action and parameters configuration.

  8. 根据需要配置任何其他操作设置。

  9. 在操作下,选择“插入新步骤”(+) >“添加操作”。 在打开的“添加操作”窗格中,选择要对所有查询结果项运行的操作。

此示例使用名为“删除项(预览版)”的 Azure Cosmos DB 内置操作。

  1. 在之前添加的操作中,你可以访问查询操作输出中的数据。 单击该操作中的任意输入字段,此时会显示动态内容列表。 选择任何可用的响应项,或选择“查看更多”以获取更多选项。

这个示例使用“项 ID”字段中的“响应项 ID”以基于查询结果填充 ID。

Screenshot showing the designer for a Standard logic app workflow with the Azure Cosmos DB **Query items** action dynamic content outputs.

  1. 选择响应项后,将自动添加“For each”操作,以迭代所有查询结果。 “对每一个”循环包含之前添加的操作。 你可以向循环中添加其他任何想要添加的操作。

  2. 在设计器工具栏上选择“保存”。

  3. 测试逻辑应用,确保工作流返回预期的输出。

后续步骤