【问题标题】:ECS task changeECS 任务变更
【发布时间】:2020-10-12 20:13:46
【问题描述】:

我正在尝试检查 ECS 任务的最后状态,如果它已停止,那么它必须使用 cloudwatch 事件触发 lambda。我在验证 JSON 事件时收到以下错误消息。 错误信息: 事件模式包含无效元素(只能是用引号、数字和不带引号的关键字 true、false 和 null 括起来的字符串)

    **Code**:
    {
  "source": [
    "aws.ecs"
  ],
  "detail-type": [
    "ECS Task State Change"
  ],
  "detail": {
    "clusterArn": [
      "arn:aws:ecs:us-west-2:17025:cluster/ecs-w2"
    ],
    "lastStatus": [
      "STOPPED"
    ],
    "overrides": {
      "containerOverrides":
        {
          "environment": 
            {
              "name": ["job_grp_nm"],
              "value": ["QA_INTEGRATION"]
            },
            {
              "name": ["secrets_targetdb"],
              "value": ["7034908/Snowflake/facilitiesNDI/QA"]
            },
        "name": ["suite-dev"]
        }
    }
  }
}
    

请告诉我代码有什么问题。

【问题讨论】:

    标签: arrays amazon-web-services amazon-ecs amazon-cloudwatch


    【解决方案1】:

    有两点错误

    1. 值应表示为字符串数组,例如[“价值”]
    2. 您的environment 可以是对象数组。

    应该是这样的:

    {
      "source": [
        "aws.ecs"
      ],
      "detail-type": [
        "ECS Task State Change"
      ],
      "detail": {
        "clusterArn": [
          "arn:aws:ecs:us-west-2:17025:cluster/ecs-w2"
        ],
        "lastStatus": [
          "STOPPED"
        ],
        "overrides": {
          "containerOverrides":
            {
              "environment": 
                {
                  "name": ["job_grp_nm"],
                  "value": ["QA_INTEGRATION"]
                },
            "name": ["suite-dev"]
            }
        }
      }
    }
    

    以上内容应被接受,但我无法验证这是否与您的活动正确匹配。

    【讨论】:

    • 非常感谢,Marcin。我有两个这样的环境变量。{ "source": [ "aws.ecs"], "detail-type": [ "ECS Task State Change"], "detail": {"clusterArn": [ "arn:aws :ecs:us-west-2:17025:cluster/ecs-w2"],"lastStatus": "STOPPED],"overrides": {"containerOverrides":{ "environment": {"name": ["job_grp_nm" ],“值”:[“QA_INTEGRATION”] },{“名称”:[“secrets_target”],“值”:[“SnowflakeI/QA”]},“名称”:[“suite-dev”] } } }} 。我是新手。请帮忙
    • 您好,我已经更新了问题,您可以检查一下吗?
    • @E.Manju 我不认为你可以这样使用environment。在您的规则中可能无法具有这种粒度级别。您可能只需要删除 environment 并稍后过滤您的目标。
    猜你喜欢
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2020-07-22
    • 2018-02-11
    • 1970-01-01
    • 2022-01-27
    相关资源
    最近更新 更多