所以我通过控制台创建了一个SNS主题,然后尝试调用True
True
True
或list_subscriptions_by_topic
,但是它们都失败了,因为
sns.publish
那有什么作用呢???可在SNS控制台中访问该主题。
这是我的lambda代码:
An error occurred (NotFound) when calling the Publish
operation: Topic does not exist: NotFoundException
这是在SQS上设置的Lambda触发器,已订阅from __future__ import print_function
import json
import boto3
import random
print('Loading function')
sns = boto3.client('sns')
def lambda_handler(event, context):
response = sns.publish(
TopicArn='arn:aws:sns:us-west-2:031436316123:topicExists'
Message=json.dumps(newMsg),
MessageAttributes={
'event_type':{
'DataType':'String', 'StringValue':'something'
}
}
)
return response
SNS主题。
答案 0 :(得分:3)
问题是SNS主题存在于us-west-2
区域中,但是您的SNS客户端正在创建于us-east-1
区域中。
此行未指定区域,因此默认情况下是在us-east-1
中创建该区域:
sns = boto3.client('sns')
您应该将其替换为:
sns = boto3.client('sns', region_name='us-west-2')