如何在Step Functions中扁平化数组?合并两个数组为非嵌套数组
合并两个数组为单层无嵌套数组的Step Functions实现
你之前使用States.Array()的方式会将两个数组作为子元素放入新数组,导致嵌套结构。要得到单层合并后的数组,需要改用Step Functions内置的States.ArrayMerge()函数,它会直接合并两个数组的所有元素。
修改后的Pass状态代码如下:
"MergeRules": { "Type": "Pass", "Parameters": { "LifecyclePolicy": { "rules.$": "States.ArrayMerge($.LifecyclePolicy.LifecyclePolicy.rules, $.updatedRules)" } }, "ResultPath": "$.LifecyclePolicy", "Next": "PutLifecyclePolicy" }
这样配置后,rules字段会得到你期望的单层数组:
{ "LifecyclePolicy": { "rules": [ { "rulePriority": 1, "description": "Retain only last N images", ... }, { "rulePriority": 2, "description": "Retain only N images since image pushed", ... } ] } }
如果后续需要合并更多数组,States.ArrayMerge()支持传入多个数组参数,例如States.ArrayMerge(arr1, arr2, arr3)。
内容的提问来源于stack exchange,提问作者Naveen M
相关产品推荐
相关产品推荐

