1

我在 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"] 未在自动化文档中定义。有关详细诊断信息,请参阅自动化服务故障排除指南。

4

1 回答 1

1

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

仅举几个例子:

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

而 List 类型与 Python list 相同。

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

于 2020-03-25T10:34:59.980 回答