azure - 调用 API 管理 API 时为逻辑应用创建触发器的方法

标签 azure azure-logic-apps azure-api-management

我有一个 Azure API 管理 API,在调用时应该执行一些逻辑,并基于该逻辑将执行 2 个新 API 或 3 个新 API,并从逻辑应用返回结果。我假设逻辑应用程序应该能够做到这一点。我需要一种方法来做到这一点,或者至少需要一些建议我如何才能继续

我不确定如何在调用 API 时触发逻辑应用程序,它应该连接到逻辑应用程序

最佳答案

要将逻辑应用与 Azure API 管理 (APIM) 集成,请创建 HTTP endpoint in Logic Apps 。接下来,generate a SAS token for the Logic App 。这将用于保护端点。阅读有关 IP 进一步限制的文档。

要触发逻辑应用,请在 APIM 中设置 API 定义的后端 URL,或者如果编写多个后端调用,请使用如下所示的自定义 XML 策略:

<send-request mode="new" response-variable-name="[resultVariableName]" timeout="20" ignore-error="true">
  <set-url>https://prod-23.centralus.logic.azure.com:443/workflows/0c9def69700c4b2995e2e587123306f7/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=ORQeXlFZxBeF7xmF9pO73sgYl_-w0v6V9uugi8bhHeA</set-url>
  <set-method>POST</set-method>
  <set-header name="Content-Type" exists-action="override">
    <value>application/json</value>
  </set-header>
  <set-body>@($"token={(string)context.Variables["someVariable"]}")</set-body>
</send-request>

虽然我提供了答案,但实际上我不会推荐这个解决方案。这是可靠性的反模式。如果HTTP调用链中的任何一点发生超时或失败,就会造成难以验证程序正确性的情况。

关于azure - 调用 API 管理 API 时为逻辑应用创建触发器的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56278348/

相关文章:

azure - "az network public-ip create"和"az network public-ip list"显示两个不同的IP

java - 如何从azure keyvault获取证书链

azure-logic-apps - 逻辑应用将 "null"替换为 "",反之亦然

azure - 如何接入IoT数字孪生服务

Azure APi 管理在多个 ARM 模板中拆分架构定义

azure - 过滤 API 管理请求中的 header

Azure Web 应用程序不使用 GZip 压缩

powershell - 使用 cmdets 将文件上传到 Azure 上的存储

azure - 从 Azure 队列插入逻辑应用程序中包含 Json 的不需要的字符串

Azure API管理: What is a good practise to handle different environments?