2012-08-03 48 views
3

以下代碼旨在將VPC中新部署的EC2實例添加到負載平衡器。 (這是很顯然的測試/虛擬代碼,但一般工作流程在實際系統相同)以編程方式向ELB添加VPC節點

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提供的最新版本,本週更新。這僅僅是AWS的Ruby SDK中沒有的功能嗎?通過這個gem或其他方式,我可以通過Ruby代碼將VPC節點添加到Load Balancer中?

回答

2

解決:此錯誤是使用舊版AWS API的aws-sdk gem的ELB部分的結果。 2012年8月6日發佈了一個新的寶石版本(1.6.1),這會導致ELB使用2012-06-01版本的API,現在可以使用代碼中的代碼將實例添加到ELB中。

相關問題