本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EC2 執行個體中繼資料服務
您可以使用 適用於 Go 的 AWS SDK 來存取 Amazon EC2 執行個體中繼資料服務。feature/ec2/imdsClient
和相關聯的操作可以使用類似於 SDK 提供的其他 AWS 服務用戶端。若要進一步了解如何設定 SDK,以及如何使用服務用戶端,請參閱 設定軟體開發套件和 搭配 AWS 服務使用 適用於 Go 的 AWS SDK v2。
用戶端可協助您輕鬆擷取應用程式執行所在執行個體的相關資訊,例如其 AWS 區域或本機 IP 地址。一般而言,您必須建立並提交 HTTP 請求,才能擷取執行個體中繼資料。反之,請建立 imds.Client
以使用程式設計用戶端存取 Amazon EC2 執行個體中繼資料服務,例如其他 AWS 服務。
例如,若要建構用戶端:
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 使用者指南》中的執行個體中繼資料類別。