调用 API-Management API 时为逻辑应用程序创建触发器的方法

Way to create a trigger for logic apps when a API-Management API gets called

我有一个 Azure API 管理 API 在被调用时应该执行一些逻辑并且基于它会执行 2 个新的 API 或 3 个新的 API的基于逻辑和 return 来自逻辑应用程序的结果。我假设逻辑应用程序应该能够做到这一点。我需要一种方法或者至少需要一些建议我该如何继续

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

要将逻辑应用程序与 Azure API 管理 (APIM) 集成,请创建一个 HTTP endpoint in Logic Apps. Next, 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>

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