Azure Logic App 输出结构为 json 格式

Azure Logic App output structure into json format

我正在尝试从 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"
    ]
  }
}

在逻辑应用程序中使用以下代码。

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

根据您的要求,您可以使用"liquid"来转换您的json数据,您可以参考这个tutorial

下面我post的解决方法供大家参考:

1.您需要create an integration account and then 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. 转到你的逻辑应用程序并创建一个 "Transform JSON to JSON" 操作,选择我们上面上传的 "testMap" (如下面的屏幕截图所示) :

上面截图中的"Content"就是您当前得到的json数据

在"Transform JSON to JSON"动作之后,它会响应你所期望的json结构。

希望对你有帮助~