你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
从 Azure 逻辑应用中的工作流调用 REST API 终结点
适用范围:Azure 逻辑应用(消耗型 + 标准型)
若要从 Azure 逻辑应用中的逻辑应用工作流调用 REST API 终结点,可以使用内置的 HTTP + Swagger 操作通过 Swagger 文件调用任何 REST API 终结点。 HTTP + Swagger 触发器和操作与 HTTP 触发器和操作的功能相同,但通过公开 Swagger 文件所述的 API 结构和输出,在工作流设计器中提供更好的体验。 若要实现轮询触发器,请遵循创建用于调用逻辑应用工作流中的其他 API、服务和系统的自定义 API 中所述的轮询模式。
限制
HTTP + Swagger 内置操作当前仅支持 OpenAPI 2.0,而不支持 OpenAPI 3.0。
先决条件
Azure 帐户和订阅。 如果没有 Azure 订阅,请注册一个免费 Azure 帐户。
Swagger 文件的 URL,描述要调用的目标 REST API 终结点
通常,REST 终结点必须满足以下条件,触发器或操作才能生效:
Swagger 文件必须托管在可公开访问的 HTTPS URL 上。
Swagger 文件必须包含定义中的每个操作的 operationID 属性。 如果未包含,则连接器只显示 Swagger 文件中的最后一个操作。
必须为 Swagger 文件启用跨域资源共享 (CORS)。
注意
若要引用未托管的或不满足安全性和跨域要求的 Swagger 文件,可将 Swagger 文件上传到 Azure 存储帐户中的 Blob 容器,并在该存储帐户上启用 CORS,以便可以引用该文件。
要从其中调用目标终结点的消耗或标准逻辑应用工作流。 若要开始使用 HTTP + Swagger 触发器,请创建一个具有空白工作流的逻辑应用资源。 若要使用 HTTP + Swagger 操作,请使用所需的任意触发器启动工作流。 此示例使用 HTTP + Swagger 触发器作为第一个操作。
添加 HTTP + Swagger 触发器
此内置触发器将 HTTP 请求发送到描述 REST API 的 Swagger 文件的 URL。 然后,此触发器返回一个包含该文件的内容的响应。
在 Azure 门户的设计器中,打开逻辑应用资源和空白工作流。
根据使用的是消耗工作流还是标准工作流,按照以下常规步骤添加名为“HTTP + Swagger”的 HTTP 触发器。
在“Swagger 终结点”框中,输入所需 Swagger 文件的 URL,然后选择“添加操作”。
以下示例使用非功能性 Swagger URL。 URL 可能使用其他格式。
当设计器显示 Swagger 文件描述的操作后,请选择要使用的操作。
提供要包含在终结点调用中的触发器参数的值(根据所选的操作而异)。
如果触发器要求指定触发计划,请指定重复周期,以确定触发器调用终结点的频率。
要添加其他可用参数,请打开“高级参数”列表,然后选择所需的参数。
要详细了解可用于 HTTP + Swagger 的身份验证类型,请参阅向出站调用添加身份验证。
使用触发器触发时要运行的操作继续构建工作流程。
完成后,保存工作流。 在设计器工具栏上选择“保存”。
添加 HTTP + Swagger 操作
此内置操作将 HTTP 请求发送到描述 REST API 的 Swagger 文件的 URL。 然后,此操作返回一个包含该文件的内容的响应。
在 Azure 门户的设计器中,打开你的逻辑应用资源和工作流。
根据使用的是消耗工作流还是标准工作流,按照以下常规步骤添加名为“HTTP + Swagger”的 HTTP 操作。
在“Swagger 终结点”框中,输入所需 Swagger 文件的 URL,然后选择“添加操作”。
以下示例使用非功能性 Swagger URL。 URL 可能使用其他格式。
当设计器显示 Swagger 文件描述的操作后,请选择要使用的操作。
提供要包含在终结点调用中的操作参数的值(根据所选的操作而异)。
要添加其他可用参数,请打开“高级参数”列表,然后选择所需的参数。
要详细了解可用于 HTTP + Swagger 的身份验证类型,请参阅向出站调用添加身份验证。
继续使用你想要运行的任何其他操作构建工作流程。
完成后,保存工作流。 在设计器工具栏上选择“保存”。
在 Azure 存储中托管 Swagger
你仍然可以引用非托管的或者不符合安全要求和跨域要求的 Swagger 文件。 请将 Swagger 文件上传到 Azure 存储帐户中的 Blob 容器,并在该存储帐户中启用 CORS。 若要在 Azure 存储中创建、设置和存储 Swagger 文件,请执行以下步骤:
现在,为 Blob 启用 CORS。 在存储帐户的菜单中选择“CORS”。 在“Blob 服务”选项卡上,指定以下值,然后选择“保存”。
属性 值 允许的源 *
允许的方法 GET
、HEAD
、PUT
允许的标头 *
公开的标头 *
最大期限(以秒为单位) 200
此示例使用 Azure 门户,不过,你也可以使用 Azure 存储资源管理器之类的工具,或使用此示例 PowerShell 脚本自动配置此设置。
创建 Blob 容器。 在容器的“概述”窗格中,选择“更改访问级别”。 在“公共访问级别”列表中,选择“Blob (仅限对 Blob 进行匿名读取访问)”,然后选择“确定”。
若要在 Blob 容器中引用该文件,请从 Azure 存储资源管理器获取采用以下格式(区分大小写)的 HTTPS URL:
https://<storage-account-name>.blob.core.windows.net/<blob-container-name>/<complete-swagger-file-name>?<query-parameters>
连接器技术参考
本部分提供有关 HTTP + Swagger 触发器和操作的输出的详细信息。
输出
HTTP + Swagger 调用返回以下信息:
属性名称 | 类型 | 说明 |
---|---|---|
headers | 对象 | 请求中的标头 |
body | 对象 | 包含请求中正文内容的对象 |
状态代码 | Integer | 请求中的状态代码 |
状态代码 | 说明 |
---|---|
200 | 确定 |
202 | 已接受 |
400 | 错误的请求 |
401 | 未授权 |
403 | 禁止 |
404 | 未找到 |
500 | 内部服务器错误。 发生未知错误。 |