使用lambda作为端点订阅SNS主题

时间:2017-09-18 23:25:43

标签: amazon-web-services amazon-ec2 aws-lambda boto3 amazon-sns

我正在尝试使用lambda函数作为端点订阅SNS主题。

在通过AWS控制台尝试时,它的工作完全正常。订阅在SNS->订阅中添加,这又为Lambda中的lambda函数添加了触发器 - >函数 - > [function_name] - >触发器

在通过boto3或AWS cli尝试相同的事情时,它会添加新的订阅,但在Lambda-> Functions-> [function_name] - >触发器中不会添加任何触发器。 因此,对于此SNS主题,不会触发lambda函数。

import boto3
client = boto3.client('sns')
sns_topic_arn = '<sns_topic_arn>'
lambda_fn_arn = '<lambda_fn_arn>'

response = client.subscribe(TopicArn=sns_topic_arn,Protocol='lambda',
Endpoint=lambda_fn_arn)

我确保sns_topic_arn和lambda_fn_arn是正确的。 我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

  1. lambda端点是否使用确认消息中的令牌调用ConfirmSubscription操作?另请注意,这些确认令牌是临时的,仅有效期为三天。你刷新了吗?

  2. 您是否可以检查订阅API的响应,看看响应是否有效且是否有SubscriptionArn?

  3. 另外,您是否通过boto3客户端的add_permission API添加了足够的权限,以便它可以触发lambda?

  4. 参考:http://boto3.readthedocs.io/en/latest/reference/services/sns.html#SNS.Client.subscribe获取API文档和更多详细信息