Aws lambda SNS不触发Lambda
我创建了一个Lambda函数来执行curl函数,以便向slackwebhook发送消息。如果我在Lambda CLI中测试它,它会正常工作。我将SNS触发器链接到它,但它从未运行Lambda函数。我读过类似问题的帖子,它们大多导致触发权限。我认为我的还可以,因为你可以看到SNS触发器是在Lambda函数中设置的 为了测试SNS触发器,我还向它添加了订阅,以便向我发送电子邮件。当我使用“发布消息”测试SNS时,我确实收到了一封电子邮件,但Lambda没有被触发。我错过了什么 如图所示,SNS触发器是为Lambda函数添加的: 还有什么需要补充的吗 Lambda仪表板- SNS仪表板- Lambda代码-当我在CLI中运行test按钮时,它可以正常工作Aws lambda SNS不触发Lambda,aws-lambda,amazon-sns,Aws Lambda,Amazon Sns,我创建了一个Lambda函数来执行curl函数,以便向slackwebhook发送消息。如果我在Lambda CLI中测试它,它会正常工作。我将SNS触发器链接到它,但它从未运行Lambda函数。我读过类似问题的帖子,它们大多导致触发权限。我认为我的还可以,因为你可以看到SNS触发器是在Lambda函数中设置的 为了测试SNS触发器,我还向它添加了订阅,以便向我发送电子邮件。当我使用“发布消息”测试SNS时,我确实收到了一封电子邮件,但Lambda没有被触发。我错过了什么 如图所示,SNS触发器
import json
def lambda_handler(event, context):
import subprocess
# Send message to slack
message = event['text']
data = json.dumps({'text': 'test message'})
subprocess.call([
'curl',
'-X', 'POST',
'-H', 'Content-type: application/json',
'--data', data, 'https://hooks.slack.com/services/T0xxxxxxxx/BLxxxxxxx/ysSl5xxxxxxxxxxxxxxx'
])
职能政策:
{
"Version": "2012-10-17",
"Id": "default",
"Statement": [
{
"Sid": "sns-us-east-xxxxxxxxxxxxx-Ernie_dev-CodeDeploy-Successful",
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "lambda:invokeFunction",
"Resource": "arn:aws:lambda:us-east-xxxxxxxxxxxxx:function:Slack-CodeDeploy_ernie-dev_success",
"Condition": {
"ArnLike": {
"AWS:SourceArn": "arn:aws:sns:us-east-xxxxxxxxxxxxx:Ernie_dev-CodeDeploy-Successful"
}
}
}
]
}