我使用 Amazon AWS SDK for Ruby 创建了一个 CloudFormation 堆栈。当我导航到 CloudFormation 管理控制台时,我可以看到它:
my-vpc-stack-name 2013-04-26 11:33:22 UTC+10 CREATE_COMPLETE
我正在尝试使用以下代码查询堆栈使用的资源:
cf_client = AWS::CloudFormation.new.client
response = cf_client.describe_stack_resources(:stack_name => 'my-vpc-stack-name')
这会引发以下异常:
AWS::CloudFormation::Errors::ValidationError: Stack with name biq-vpc-prod does not exist
from /home/duncan/.rvm/gems/ruby-1.9.3-p392/gems/aws-sdk-1.9.3/lib/aws/core/client.rb:360:in `return_or_raise'
from /home/duncan/.rvm/gems/ruby-1.9.3-p392/gems/aws-sdk-1.9.3/lib/aws/core/client.rb:461:in `client_request'
我相信我已经将 AWS 配置为在两种情况下使用相同的区域:
AWS.config(cloud_formation_endpoint: 'cloudformation.ap-southeast-2.amazonaws.com',
...
如果我尝试直接询问 VPC:
vpc = AWS::EC2::VPC.new('my-vpc-id')
vpc.state
...然后我得到一个类似的错误:
AWS::EC2::Errors::InvalidVpcID::NotFound: The vpc ID 'my-vpc-id' does not exist
from /home/duncan/.rvm/gems/ruby-1.9.3-p392/gems/aws-sdk-1.9.3/lib/aws/core/client.rb:360:in `return_or_raise'
from /home/duncan/.rvm/gems/ruby-1.9.3-p392/gems/aws-sdk-1.9.3/lib/aws/core/client.rb:461:in `client_request'
from (eval):3:in `describe_vpcs'
但是VPC肯定存在;我可以在 VPC 管理控制台中看到它。
有谁知道我需要做什么才能让它工作?我怀疑我无法理解 SDK 工作方式的基本原理。