我一直在使用此SDK中的其他宝石,之前没有看过这个问题。我试图创建一个定价客户端并获得一些服务描述,但我得到了这个例外,我不确定原因:
require 'aws-sdk-pricing'
c = Aws::Pricing::Client.new(region: 'eu-west-1')
r = c.describe_services({ format_version: "aws_v1", max_results: 1,
service_code: "AmazonEC2" })
我得到了:
Aws :: Errors :: NoSuchEndpointError:遇到
SocketError
时 试图连接到:https://api.pricing.eu-west-1.amazonaws.com
这通常是无效
:region
选项或a的结果 格式不正确的:endpoint
选项。
避免直接配置
:endpoint
选项。端点由:region
构成。:endpoint
选项已保留 用于连接非标准测试端点。并非每个地区都提供所有服务。
永远不要使用可用区域后缀区域名称。使用" us-east-1",而不是" us-east-1a"
已知的AWS区域包括(不是特定于此服务):
ap-northeast-1 ap-northeast-2 ap-south-1 ap-southeast-1 ap-southeast-2 ca-central-1 eu-central-1 eu-west-1 eu-west-2 sa-east-1 us-east-1 us-east-2-us-west-1 us-west-2 cn-north-1 us-gov-west-1
我已经在其他地区尝试过此操作并获得相同的结果。其他宝石中的相同模式,如aws-sdk-ec2,允许我在没有问题的情况下实例化客户端。我在这里缺少什么?
提前致谢。
如果重要,请使用ruby 2.3.3。
答案 0 :(得分:0)
在撰写此问题时,AWS仅在2个端点支持此API:us-east-1和ap-south-1。请参阅:http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/using-pelong.html
您可以在请求中指定您想要价格的区域。