使用AWS SDK for Ruby发布到SNS主题时指定区域

ljc*_*iff 8 ruby amazon-web-services amazon-sns

我正在使用AWS SDK for Ruby从Rails 3应用程序发布消息和AWS SNS主题,如下所示:

sns = AWS::SNS.new
topic = sns.topics['arn:aws:sns:eu-west-1:55555555555:my_topic']
topic.publish("MESSAGE", :subject => "SUBJECT")
Run Code Online (Sandbox Code Playgroud)

当我发布到"us-east-1"中的主题时,它按预期工作,但发布到区域"eu-west-1"中的主题不起作用:

AWS::SNS::Errors::InvalidParameter - Invalid parameter: TopicArn:
Run Code Online (Sandbox Code Playgroud)

使用AWS SDK for Java在创建客户端对象时设置区域.是否有类似的方法使用AWS SDK for Ruby设置区域?

小智 9

是的,在您的AWS配置中,您可以使用配置初始化程序脚本传入

:region => 'eu-west-1'
Run Code Online (Sandbox Code Playgroud)

或者使用您的accesskey等在文件中创建它,并在新建api客户端时传递整个文件

sns = AWS::SNS.new configFile
Run Code Online (Sandbox Code Playgroud)