首页 文章

使用lambda作为 endpoints 订阅SNS主题

提问于
浏览
2

我正在尝试使用lambda函数作为 endpoints 订阅SNS主题 .

在通过AWS控制台进行尝试时,它完全正常 . 在SNS-> Subscriptions中添加了订阅,这又在Lambda-> Functions - > [function_name] - > Triggers中为lambda函数添加了一个触发器

在通过boto3或AWS cli尝试相同的事情时,它会添加新的订阅,但在Lambda-> Functions - > [function_name] - > Triggers中不会添加任何触发器 . 因此,对于此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
    • lambda endpoints 是否使用确认消息中的令牌调用ConfirmSubscription操作?另请注意,这些确认令牌是临时的,仅有效期为三天 . 你在刷新它们吗?

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

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

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

相关问题