[英]aws - how to list availability zones for all regions?
我不想遍歷區域並列出每個區域的所有可用區域。
我有(紅寶石)
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。
作為臨時解決方法,我每次都重新創建 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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.