Как создать JSON из AWS cloudwatch Input Transformer

Цель: я хочу вызвать уведомление, чтобы ослабить любое изменение фазы в 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 содержит заполнитель в кавычках.

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

1 ответ

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

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

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

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

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

Другие вопросы по тегам