0

我使用 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 工作方式的基本原理。

4

1 回答 1

1

培布卡克。我在错误的区域中创建了堆栈,因为我在调用时忽略了指定区域create_stack。所以它存在于美国东部,但我的代码在悉尼寻找:(

于 2013-05-01T00:38:59.417 回答