【问题标题】:aws - how to list availability zones for all regions?aws - 如何列出所有地区的可用区?
【发布时间】:2020-04-16 05:36:31
【问题描述】:

我不想遍历区域并列出每个区域的所有可用区域。

我有(红宝石)

  result='Zones:<br/>'
  ec2 = Aws::EC2::Client.new(region: 'us-east-1')

  puts "Amazon EC2 regions:\n\n"
  describe_regions_result = ec2.describe_regions()
  describe_regions_result.regions.each do |region|
    puts "Region: #{region.region_name}"

    Aws.config.update({region: region.region_name})
    azs = ec2.describe_availability_zones #  (region_name: region.region_name)
    azs.availability_zones.each do |zone|
      result+="#{zone.region_name} - #{zone.zone_name}<br/>"
      p zone.region_name + ' ' + zone.zone_name
    end 
  end 

但我的输出一直显示各个 AZ 都在区域 us-east-2 中并以相同的值重复,如

Region: us-east-1
"us-east-2 us-east-2a"
"us-east-2 us-east-2b"
"us-east-2 us-east-2c"
Region: us-east-2
"us-east-2 us-east-2a"
"us-east-2 us-east-2b"
"us-east-2 us-east-2c"
Region: us-west-1
"us-east-2 us-east-2a"
"us-east-2 us-east-2b"
"us-east-2 us-east-2c"
    ...

如何解决在每个区域内显示 az 的问题?

我尝试将(region_name: region.region_name) 添加到该行

azs = ec2.describe_availability_zones(region_name: region.region_name)

但这给出了一个错误

ArgumentError at /bucket_counts
unexpected value at params[:region_name]

而且,如图所示,我试过了

Aws.config.update({region: region.region_name})

但这并没有帮助。当然,如果可能的话,我不想使用配置更改来列出区域的 az。

【问题讨论】:

    标签: ruby amazon-web-services


    【解决方案1】:

    作为一种临时解决方法,我每次都重新创建 ec2 客户端,如下所示

        ec2 = Aws::EC2::Client.new(region: region.region_name)
    

    region 迭代器内

    这显然不理想,但确实产生了所需的输出:

    Amazon EC2 regions:                                                                                                              
    
    Region: eu-north-1                                                                                                               
    "eu-north-1 eu-north-1a"                                                                                                         
    "eu-north-1 eu-north-1b"                                                                                                         
    "eu-north-1 eu-north-1c"                                                                                                         
    Region: ap-south-1                                                                                                               
    "ap-south-1 ap-south-1a"
    "ap-south-1 ap-south-1b"
    "ap-south-1 ap-south-1c"
    Region: eu-west-3
    "eu-west-3 eu-west-3a"
    "eu-west-3 eu-west-3b"
    "eu-west-3 eu-west-3c"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      相关资源
      最近更新 更多