メニュー
AWS SDK for Ruby
開発者ガイド

リージョンおよびアベイラビリティーゾーンに関する情報の取得

以下の例は、AWS SDK for Ruby を Amazon EC2 と共に使用する方法を示します。

  • 使用可能な Amazon EC2 リージョンおよびそのエンドポイントに関する情報を取得する。

  • 使用可能な Amazon EC2 のアベイラビリティーゾーンに関する情報を取得する。

Amazon EC2 リージョンとアベイラビリティーゾーンの詳細については、Amazon EC2 User Guide for Linux Instancesの「リージョンとアベイラビリティーゾーン」を参照してください。

これらの例を実行するために使用できるコードについては、「完全な例」を参照してください。

リージョンおよびエンドポイントに関する情報の取得

使用可能なリージョンに関する情報を取得するには、describe_regions メソッドを呼び出します。

describe_regions_result = ec2.describe_regions()

このコードでは、ec2Aws::EC2::Client オブジェクトを表す変数です。詳細については、「完全な例」を参照してください。

リージョン名とエンドポイントを取得するには:

  1. describe_regions メソッドから返され、このコードで describe_regions_result 変数で表される Aws::EC2::Types::DescribeRegionsResult オブジェクトを取得します。

  2. リージョンを表す Aws::EC2::Types::Region オブジェクトの配列を取得するには、DescribeRegionsResult オブジェクトの regions 属性を使用します。

  3. Region オブジェクトの region_name および endpoint 属性を使用してリージョンの名前およびエンドポイントを取得します。

describe_regions_result.regions.each do |region| puts "#{region.region_name} (#{region.endpoint})" end

アベイラビリティーゾーンについて説明します

アベイラビリティーゾーンに関する情報を取得するには、describe_availability_zones メソッドを呼び出します。

describe_availability_zones_result = ec2.describe_availability_zones()

Aws::EC2::Types::DescribeAvailabilityZonesResult オブジェクトには、アベイラビリティーゾーンを表す Aws::EC2::Types::AvailabilityZone オブジェクトの配列が含まれています。DescribeAvailabilityZonesResult オブジェクトは、describe_availability_zones メソッドによって返され、このコードで describe_availability_zones_result 変数によって表されます。

このコードでは、ec2Aws::EC2::Client オブジェクトを表す変数です。詳細については、「完全な例」を参照してください。

各アベイラビリティーゾーンの名前と状態を取得するには、AvailabilityZone オブジェクトの zone_namestate 属性を使用します。

describe_availability_zones_result.availability_zones.each do |zone| puts "#{zone.zone_name} is #{zone.state}" if zone.messages.count > 0 zone.messages.each do |message| " #{message.message}" end end end

アベイラビリティーゾーンに関するメッセージを取得するには:

  1. Aws::EC2::Types::AvailabilityZoneMessage 配列を返す AvailabilityZone オブジェクトの messages 属性を使用します。

  2. 配列に少なくとも 1 つのメッセージがある場合は、各 AvailabilityZoneMessage オブジェクトの message 属性を使用してメッセージを取得します。

完全な例

適応して実行できる次のコードは、前の例を 1 つの例にまとめています。

require 'aws-sdk' ec2 = Aws::EC2::Client.new(region: 'us-east-1') puts "Amazon EC2 region(s) (and their endpoint(s)) that are currently available to you:\n\n" describe_regions_result = ec2.describe_regions() describe_regions_result.regions.each do |region| puts "#{region.region_name} (#{region.endpoint})" end puts "\nAmazon EC2 availability zone(s) that are available to you for your current region:\n\n" describe_availability_zones_result = ec2.describe_availability_zones() describe_availability_zones_result.availability_zones.each do |zone| puts "#{zone.zone_name} is #{zone.state}" if zone.messages.count > 0 zone.messages.each do |message| " #{message.message}" end end end

このコードを実行するには:

  1. AWS SDK for Ruby をインストールします。詳細については、「AWS SDK for Ruby のインストール」を参照してください。

  2. AWS のサービスおよびリソースへのアクセスを確認するために AWS SDK for Ruby が使用する、AWS アクセス認証情報を設定します。詳細については、「AWS SDK for Ruby の設定」を参照してください。AWS 認証情報が、この例で説明されている AWS のアクションおよびリソースへのアクセス権を持つ AWS Identity and Access Management (IAM) のエンティティにマッピングされることを確認してください。この例では、認証情報が AWS 認証情報プロファイルのファイル、またはローカルシステムの AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY 環境変数で設定されていることを前提としています。