3

以下代码旨在将 VPC 中新部署的 EC2 实例添加到负载均衡器。(这很明显是测试/虚拟代码,但实际系统中的一般工作流程是相同的)

require 'yaml'
gem 'aws-sdk','1.6.0'
require 'aws-sdk'

AWS.config({
  :access_key_id => KEY,
  :secret_access_key => SECRET_KEY
})
ec2 = AWS::EC2.new
elb = AWS::ELB.new

i = ec2.instances["i-abcd1234"]
elb.load_balancers["lb-name"].instances.register(i)

当我运行此代码时,我收到此错误:

AWS::ELB::Errors::ValidationError: ELB in VPC is not supported in this version of API. Please try 2011-11-15 or newer.

我的 aws-sdk gem 是通过 RubyGems 获得的最新版本,它已于本周更新。这只是 Ruby SDK for AWS 中不可用的功能吗?我可以通过此 gem 或其他方式使用 Ruby 代码将 VPC 节点添加到负载均衡器?

4

1 回答 1

2

已解决:此错误是 aws-sdk gem 的 ELB 部分使用旧版本的 AWS API 的结果。2012 年 8 月 6 日发布了一个新的 gem 版本 (1.6.1),它导致 ELB 使用 2012-06-01 版本的 API,现在可以使用问题中的代码将实例添加到 ELB。

于 2012-08-08T15:43:22.507 回答