Я пытаюсь настроить Webhook для Amazon SNS.SNS отправит объект JSON в webhook.На основании документации KRL я могу получить параметры события, используя event: param ('name').Это работает для данных, закодированных в форме, но как насчет JSON?
Я отправил вызов на postbin.org, и вот что сообщил postbin:
body {
"Message": "You have ...",
"MessageId": "958....",
"Signature": "vo3v5f....",
...
}
Вот что я хотел бы написатьв KRL:
rule sns_webhook {
select when webhook sometopic Type "SubscriptionConfirmation"
pre {
topic_arn = event:param("TopicARN");
signature = event:param("Signature");
message = event:param("Message");
subscribe_url = event:param("SubscribeURL");
}
if valid_signature(signature) then {
confirm_subscription(subscribe_url);
}
}
Это, вероятно, будет работать для данных, закодированных в форме HTTP, но с JSON я ожидаю, что потребуется следующее:
rule sns_json {
select when webhook sometopic
pre {
body = event:param('body').decode();
msg_type = body.pick("Type");
signature = body.pick("Signature");
...
}
if msg_type eq "SubscriptionConfirmation" && valid(signature) then
{
confirm_subscription(...);
}
}
Нужно ли использовать второй методописано здесь?Будет ли событие: param ('body') получать данные JSON из сообщения SNS?