以下代码旨在将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或其他方式将VPC节点添加到带有Ruby代码的Load Balancer?
答案 0 :(得分:2)
已解决:此错误是使用旧版AWS API的aws-sdk gem的ELB部分的结果。 2012年8月6日发布了新的gem版本(1.6.1),导致ELB使用2012-06-01版本的API,现在可以使用问题中的代码将实例添加到ELB。