如何在 SSM 文档中使用 StringMap 参数?

Posted

技术标签:

【中文标题】如何在 SSM 文档中使用 StringMap 参数?【英文标题】:How to use StringMap parameters in SSM documents? 【发布时间】:2020-02-24 17:05:53 【问题描述】:

我在 SSM 文档中有以下步骤。调用的结果是一个 Json,所以我想将它解析为一个 stringMap(这似乎是它的正确类型),而不是为我想要引用的每个变量创建一个输出

我尝试将其作为两者来引用:

 GetLoadBalancerProperties.Description.Scheme 

 GetLoadBalancerProperties.Description[\"LoadBalancerName\"] 

在这两种情况下,我都会收到一条错误消息,指出从未定义变量


      "name": "GetLoadBalancerProperties",
      "action": "aws:executeAwsApi",
      "isCritical": true,
      "maxAttempts": 1,
      "onFailure": "step:deleteParseCloudFormationTemplate",
      "inputs": 
        "Service": "elb",
        "Api": "describe-load-balancers",
        "LoadBalancerNames": [
          " ResourceId "
        ]
      ,
      "outputs": [
        
          "Name": "Description",
          "Selector": "$.LoadBalancerDescriptions[0]",
          "Type": "StringMap"
        
      ]
    

这是实际的消息:

步骤在验证和解析步骤输入时失败。无法解析输入:GetLoadBalancerProperties.Description["LoadBalancerName"] 键入字符串。自动化文档中未定义 GetLoadBalancerProperties.Description["LoadBalancerName"]。有关详细诊断信息,请参阅自动化服务故障排除指南。

【问题讨论】:

【参考方案1】:

我相信您正在寻找的答案在这里: https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-plugins.html#top-level-properties-type

仅举几个例子:

Map 类型是 Python 字典,因此如果您的输出是字典,您应该在 SSM 文档中使用 StringMap。

List 类型与 Python 列表相同。

因此,如果您的输出是字典列表,那么您要使用的类型是 MapList。

【讨论】:

以上是关于如何在 SSM 文档中使用 StringMap 参数?的主要内容,如果未能解决你的问题,请参考以下文章

SSM Controller 页面之间跳转 重定向,有参 无参问题

类型“订阅”缺少类型“可观察<StringMap<any>>”中的以下属性

SSM框架——整合搭建流程

SSM-Spring-04:Spring的DI的构造注入,P命名注入,和集合注入

如何用tcl脚本替换字符串中的特殊字符?

查看String Map中是否存在键