使用适用于 Ruby 的 AWS 开发工具包发布到 SNS 主题时指定区域

Posted

技术标签:

【中文标题】使用适用于 Ruby 的 AWS 开发工具包发布到 SNS 主题时指定区域【英文标题】:Specify region when publishing to an SNS topic using AWS SDK for Ruby 【发布时间】:2014-01-17 20:59:06 【问题描述】:

我正在使用适用于 Ruby 的 AWS 开发工具包从 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")

当我发布到“us-east-1”中的主题时,它按预期工作,但发布到区域“eu-west-1”中的主题无法抛出:

AWS::SNS::Errors::InvalidParameter - Invalid parameter: TopicArn:

使用适用于 Java 的 AWS 开发工具包在创建客户端对象时设置区域。是否有类似的方法可以使用适用于 Ruby 的 AWS 开发工具包设置区域?

【问题讨论】:

【参考方案1】:

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

:region => 'eu-west-1'

或者使用您的访问密钥等在一个文件中创建它,并在更新您的 api 客户端时传递整个文件

sns = AWS::SNS.new configFile

【讨论】:

以上是关于使用适用于 Ruby 的 AWS 开发工具包发布到 SNS 主题时指定区域的主要内容,如果未能解决你的问题,请参考以下文章

使用适用于 Node.js 的 AWS 开发工具包将二进制文件上传到 S3

适用于 AWS Lambda 的本地开发服务器

如何使用适用于 Node.js 的 AWS 开发工具包将 Amazon S3 中的所有对象从一个前缀复制/移动到另一个前缀

使用适用于Ruby on Rails的AWS CI / CI流程进行部署

从适用于 PHP 的 AWS 开发工具包中提取受保护的请求响应

如何使用适用于 DynamoDb 的 AWS Rust 开发工具包编写惯用的 Rust 错误处理?