Amazon EC2 インスタンスメタデータサービス - AWS SDK for Go v2

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EC2 インスタンスメタデータサービス

を使用して AWS SDK for Go 、Amazon EC2 インスタンスメタデータサービスにアクセスできます。feature/ec2/imds Go パッケージは、Amazon EC2 インスタンスメタデータサービスへのアクセスに使用できるクライアントタイプを提供します。Client および関連するオペレーションは、 SDK が提供する他の AWS サービスクライアントと同様に使用できます。SDK の設定方法とサービスクライアントの使用方法の詳細については、「」およびSDK を設定「」を参照してくださいAWS サービスで AWS SDK for Go v2 を使用する

クライアントは、 AWS リージョンやローカル IP アドレスなど、アプリケーションが実行されているインスタンスに関する情報を簡単に取得するのに役立ちます。通常、インスタンスメタデータを取得するには、HTTP リクエストを作成して送信する必要があります。代わりに、 を作成して、他の AWS サービスなどのプログラムクライアントを使用して Amazon EC2 インスタンスメタデータサービスimds.Clientにアクセスします。

たとえば、クライアントを構築するには、次のようにします。

import "context" import "github.com/aws/aws-sdk-go-v2/config" import "github.com/aws/aws-sdk-go-v2/feature/ec2/imds" // ... cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { log.Printf("error: %v", err) return } client := imds.NewFromConfig(cfg)

次に、サービスクライアントを使用して、 local-ipv4 (インスタンスのプライベート IP アドレス) などのメタデータカテゴリから情報を取得します。

localIp, err := client.GetMetadata(context.TODO(), &imds.GetMetadataInput{ Path: "local-ipv4", }) if err != nil { log.Printf("Unable to retrieve the private IP address from the EC2 instance: %s\n", err) return } content, _ := io.ReadAll(localIp.Content) fmt.Printf("local-ip: %v\n", string(content))

すべてのメタデータカテゴリのリストについては、Amazon EC2 ユーザーガイド」の「インスタンスメタデータカテゴリ」を参照してください。