Как создать JSON из AWS cloudwatch Input Transformer - PullRequest
0 голосов
/ 14 февраля 2019

Цель: я хочу, чтобы уведомление замедлялось при любом изменении фазы в codebuild.У меня есть лямбда, которая делает для меня, и он ожидает запрос следующим образом:

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

Поэтому я пытаюсь создать событие из событий cloudwatch и вызвать мою лямбду:

Поэтому я пытаюсь использоватьInput Transformer

, в котором заполнителями являются значения входного пути из cloudwatch

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

Но при добавлении этого я получаю ошибку

Произошла ошибкаошибка при сохранении правила input_transformer_test.Подробности: InputTemplate для цели Id64936775145825 содержит заполнитель в кавычках ..

Что я здесь не так делаю?

Ответы [ 2 ]

0 голосов
/ 16 июля 2019

Поскольку это json, вам не нужно указывать значения в кавычках.

Только кавычки должны быть заключены в кавычки.

0 голосов
/ 15 февраля 2019

<project_name>, <build-status>, <current-phase> необходимо передавать как отдельные значения.Вы не можете использовать их для интерполяции строк. [doc]

Вам нужно будет изменить свой формат лямбда-ввода и создать свое сообщение внутри лямбда-функции.

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