簡體   English   中英

如何使用 JSONPath 創建 JSON object 供 AWS Step Functions 使用?

[英]How can I use JSONPath to create a JSON object for use by AWS Step Functions?

使用 AWS 步驟 function,我試圖 select 僅來自任務結果的某些數據。 出於某些深不可測的原因,AWS 選擇不允許在步驟函數中Query ,所以我使用ResultsSelector 但是,我正在努力處理所需的 JSONPath。

我如何使用ResultsSelector構造我想要的 JSON object?

拿這個結果 -

{
    "IsTruncated": false,
    "KeyMarker": "",
    "MaxKeys": 1000,
    "Name": "some-bucket-name",
    "Prefix": "some/prefix/",
    "VersionIdMarker": "",
    "Versions": [
        {
            "ETag": "\"02e9c20b7cd36fcf6e47926c26f0b39e\"",
            "IsLatest": true,
            "Key": "some/prefix/my.file",
            "LastModified": "2021-09-30T15:34:59Z",
            "Owner": {
                "Id": "1fd170056d1480a7c1c9b43f5bf0603d91cbabc4ec77eefdcaa10218c3a920f6"
            },
            "Size": 69606,
            "StorageClass": "STANDARD",
            "VersionId": "y6XzRsCUZcXMPHqwwnhAGLwTlmPoj9dj"
        },
        {
            "ETag": "\"01bc5b65afe6b0cc0722fc5da32a8a44\"",
            "IsLatest": false,
            "Key": "some/prefix/my.file",
            "LastModified": "2021-09-30T15:34:21Z",
            "Owner": {
                "Id": "1fd170056d1480a7c1c9b43f5bf0603d91cbabc4ec77eefdcaa10218c3a920f6"
            },
            "Size": 69407,
            "StorageClass": "STANDARD",
            "VersionId": "jPdKeUqnYlf0_eNXzHaYCvDfdHLOvRX7"
        }
    ]
}

我想要的是使用ResultsSelector來構建這個 JSON object -

{
    "Objects": [
        {
            "Key": "some/prefix/my.file",
            "VersionId": "y6XzRsCUZcXMPHqwwnhAGLwTlmPoj9dj"
        },
        {
            "Key": "some/prefix/my.file",
            "VersionId": "jPdKeUqnYlf0_eNXzHaYCvDfdHLOvRX7"
        }
    ]
}

然而,到目前為止我能得到的最接近的是使用這個 -

{
  "Key.$": "$.Versions[*].Key",
  "VersionId.$": "$.Versions[*].VersionId"
}

這讓我明白了 -

{
  "VersionId": [
    "y6XzRsCUZcXMPHqwwnhAGLwTlmPoj9dj",
    "jPdKeUqnYlf0_eNXzHaYCvDfdHLOvRX7",
  ],
  "Key": [
    "some/prefix/my.file",
    "some/prefix/my.file"
  ]
}

Jayway JsonPath實現為 output 提供了密鑰。 您需要驗證 AWS Step function 是否支持以下jsonpath

工具: https://jsonpath.herokuapp.com/

$.Versions[*].['Key','VersionId']

在此處輸入圖像描述

如果它有效,那么你可以做類似的事情

"Objects.$": "$.Versions[*].['Key','VersionId']",

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM