要解决 AWS Lambda SNS Destinations 在失败或成功时不起作用的问题,您可以按照以下步骤进行操作:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "*"
}
]
}
import boto3
def lambda_handler(event, context):
try:
# 执行您的业务逻辑
result = process_data(event)
# 在成功时发布 SNS 消息
sns = boto3.client('sns')
sns.publish(
TopicArn='arn:aws:sns:us-west-2:123456789012:my-topic',
Message='Lambda function executed successfully.'
)
return result
except Exception as e:
# 在失败时发布 SNS 消息
sns = boto3.client('sns')
sns.publish(
TopicArn='arn:aws:sns:us-west-2:123456789012:my-topic',
Message='Lambda function encountered an error: {}'.format(str(e))
)
raise e
请确保将 arn:aws:sns:us-west-2:123456789012:my-topic 替换为您实际的 SNS 主题 ARN。
这些步骤将确保您的 Lambda 函数在成功或失败时都能正确地发布 SNS 消息。如果问题仍然存在,请检查 CloudWatch Logs 中的 Lambda 函数日志以获取更多信息,以便进一步排查问题。