В Node реализована лямбда-функция AWS, которая отправляет сообщение на канал Slack. Я создал SlackApp, с включенной функцией входящего webhook. Я отправляю сообщение на крючок через https. Лямбда вызывает следующую функцию, которая форматирует сообщение:
function slackConvertFromSNSMessage(sns_event) {
let slack_message;
let slack_message_text;
const slack_message_user = 'foo';
const slack_use_markdown = true;
const sns_message_raw = sns_event.Records[0].Sns.Message;
const sns_message_date_epoc = new Date(sns_message_raw.StateChangeTime).getTime();
slack_message_text = `
*Alert:* One or more errors were report by ${sns_message_raw.AlarmName}
*Date:* <!date^${sns_message_date_epoc}^{date_num} at {time_secs}^|${sns_message_raw.StateChangeTime}>
*Region:* ${sns_message_raw.Region}
*Queue:* ${sns_message_raw.Trigger.Dimensions[0].value}
`
// "*bold* `code` _italic_ ~strike~"
slack_message = {
text: slack_message_text,
username: slack_message_user,
mrkdwn: slack_use_markdown,
}
return JSON.stringify(slack_message);
}
Сообщение в слабом виде выглядит следующим образом:
Переменная не отображается. Я просто вижу утверждение, которое передаю слабому API. Я ожидаю увидеть указанную дату в формате местного часового пояса пользователя.
ОБНОВЛЕНИЕ: Был хороший комментарий, заметивший морковку перед трубкой в декларации. Я удалил это. Я все еще получаю проблему, но эта строка в коде теперь выглядит следующим образом:
*Date:* <!date^${sns_message_date_epoc}^{date_num} at {time_secs}^|${sns_message_raw.StateChangeTime}>