如何从AWS cloudwatch Input Transformer创建JSON

时间:2019-02-14 11:25:48

标签: amazon-web-services amazon-cloudwatch

目标:我想在代码构建中的任何相位变化时触发通知以使其松弛。 我有一个lambda可以满足我的要求,它希望发出如下请求:

{
"channel":"#XYZ",
"message":"TESTING <project_name> from <build-status> to <current-phase>"
}

所以我尝试根据cloudwatch事件创建一个事件并触发我的lambda:

所以我尝试使用Input Transformer

占位符是cloudwatch输入路径的值

{
    "project_name": "$.detail.project-name",
    "current-phase": "$.detail.current-phase",
    "build-status": "$.detail.build-status",
}

但是加上这个 我收到错误

  

保存规则input_transformer_test时出错。细节:   目标ID64936775145825的InputTemplate在其中包含占位符   引号..

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

<project_name>, <build-status>, <current-phase>需要作为单独的值传递。您不能将它们用于字符串插值。 [doc]

您将需要修改lambda输入格式,并在lambda函数中构造消息。

{
"channel":"#XYZ",
 "project_name": <project_name>,
 "current-phase": <current-phase>,
  "build-status": <build-status>
}

答案 1 :(得分:0)

由于这是json,因此您无需将值放在引号中。

仅字符串符号需要用引号引起来。