【发布时间】:2018-04-06 17:14:26
【问题描述】:
我在使用 serverless 在本地调用时遇到了一些问题。
使用 Python3.6 运行时
serverless.yml中的函数是:
functions:
myFunction:
events:
- sns: arn:aws:sns:us-east-1:123456789:myTopic
我的命令是
sls invoke local -f myFunction -s dev -r us-east-1 -p events/myMockedSnsMessage.json
Serverless 不喜欢 myMockedSnsMessage.json 上的语法
当我在我的 lambda 函数中记录事件时,我得到如下信息:
{
'Records': [
{
'Sns': {
'Message': '{"version":"0","id":"a965ce94-fcb2-ad15-319d-04adab1072d0","detail-type":"AWS API Call via CloudTrail",...}'
}
}
]
}
即SNS消息是一个字符串,里面有有效的JSON
我应该如何为 SNS 消息存储模拟事件并且仍然具有有效的 JSON,这样 serverless 才不会因为 JSON 语法错误而对我大喊大叫?
【问题讨论】:
-
myMockedSnsMessage.json中的代码是什么?我敢打赌它是无效的。请将其包含在您的问题中。 -
json直接来自Lambda收到的sns event source。
Message属性是一个 JSON 字符串 -
请将其包含在您的问题中。它看起来像下面特伦特答案中的 JSON 吗?
标签: python python-3.x amazon-web-services amazon-sns serverless-framework