【问题标题】:Azure Logic App output structure into json formatAzure Logic App 输出结构转换为 json 格式
【发布时间】:2020-02-12 21:24:08
【问题描述】:

我正在尝试从 Azure Logic App 的输出结构中获取 Azure 日志分析详细信息,如下所示。但走上不同的路。 需要建议更改代码。提前致谢。

预期结构:

{
    "id": "logAnalyticsId",
    "workspaces": [
        {
                "location": {
                "workspaceId": "hjbffe8a-7560-410f-b92b-30d65f9e4c0d",
                "workspaceKey": "Gy+me/auFCuWQ+s8bVq1Wdr25djtGQmoazh9fxGvRRNpkAWdkFPAcDXi5wEsVZk4aox2aCsoBlYgAx3l9ksHUQ==",
                "workspaceName": "demo-law-1"
            }
        },
            {
                "location": {
                "workspaceId": "f24ty93e-0063-450a-ab4a-11785af7eceb",
                "workspaceKey": "DhdsVwBtX8wniL34jGn8clFqNYT10N1DclfluAlb0pCNiv4R6hKfRv4OSY+MKCiCSrtkIELx8cKr9/g3Zf57Lg==",
                "workspaceName": "demo-law-2"
            }
        }
    ]
}

得到如下结构:

{
  "id": "logAnalyticsId",
  "location": {
    "workspaceId": [
      "hjbffe8a-7560-410f-b92b-30d65f9e4c0d",
      "f24ty93e-0063-450a-ab4a-11785af7eceb"
    ],
    "workspaceKey": [
      "Gy+me/auFCuWQ+s8bVq1Wdr25djtGQmoazh9fxGvRRNpkAWdkFPAcDXi5wEsVZk4aox2aCsoBlYgAx3l9ksHUQ==",
      "DhdsVwBtX8wniL34jGn8clFqNYT10N1DclfluAlb0pCNiv4R6hKfRv4OSY+MKCiCSrtkIELx8cKr9/g3Zf57Lg=="
    ],
    "workspaceName": [
      "demo-law-1",
      "demo-law-2"
    ]
  }
}

在 Logic App 中使用以下代码。

https://github.com/prannoy47/azure-logic-app/blob/master/logic-app

【问题讨论】:

  • Hi Prannoy,我已经提供了下面的解决方案,请参考。如果它对您的问题有帮助,请您accept 将其作为答案(单击我的答案旁边的复选标记,将其从灰色切换为已填充)。谢谢~
  • 它解决了我的问题。但我还有一个疑问。如果位置是动态的,是否可能如下:https://github.com/prannoy47/azure-logic-app/edit/master/dynamic-env

标签: azure azure-logic-apps


【解决方案1】:

对于你的需求,你可以使用“liquid”来转换你的json数据,你可以参考这个tutorial

下面我贴出解决方案供大家参考:

1.你需要create一个集成帐户,然后link这个集成帐户到你的逻辑应用。

2.创建液体模板,请参考下面我的液体模板:

{% assign ids = content.location.workspaceId %}
{% assign keys = content.location.workspaceKey %}
{% assign names = content.location.workspaceName %}

{
    "id":"{{content.id}}",
    "workspaces":[
        {%- for item in ids -%}
            {%- if forloop.Last == true -%}
                {
                    "location": {
                        "workspaceId": "{{ids[forloop.index0]}}",
                        "workspaceKey": "{{keys[forloop.index0]}}",
                        "workspaceName": "{{names[forloop.index0]}}"
                    }
                }
            {%- else -%}
                {
                    "location": {
                        "workspaceId": "{{ids[forloop.index0]}}",
                        "workspaceKey": "{{keys[forloop.index0]}}",
                        "workspaceName": "{{names[forloop.index0]}}"
                    }
                },
            {%- endif -%}
        {%- endfor -%}
    ]
}

3. 将此模板保存为“.liquid”类型(如“testMap.liquid”)并上传到您的集成帐户,请参考此page上的步骤。

4. 转到您的逻辑应用并创建“将 JSON 转换为 JSON”操作,选择我们上面上传的“testMap”(如下图所示):

上面截图中的“内容”就是你当前获取的json数据。

在“将 JSON 转换为 JSON”操作之后,它将响应您期望的 json 结构。

希望对你有帮助~

【讨论】:

  • 我还有一个疑问。如果位置是动态的,是否可能如下:https://github.com/prannoy47/azure-logic-app/edit/master/dynamic-env
  • 嗨@PrannoySeal 您提供的json数据似乎是无效的json。你能不能更新一下。我觉得这个要求是可以实现的,明天下班我会尽量帮你解决这个问题。当然,您可以创建另一个帖子,也许其他人会帮助您解决它。
  • 我会更新 json。另外,我是液体语言的新手,如果您提供任何有用的指南链接
  • 我已按要求更新。非常感谢初始阶段的帮助。
  • @PrannoySeal 抱歉我现在看不到 json 数据,打开你提供的 github 链接,它显示页面未找到。
猜你喜欢
  • 2022-07-05
  • 2021-07-18
  • 2019-10-29
  • 2018-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多