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