Metadatenservice für EC2 Amazon-Instances - AWS SDK für Go v2

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Metadatenservice für EC2 Amazon-Instances

Sie können den verwenden AWS SDK für Go , um auf den Amazon EC2 Instance Metadata Service zuzugreifen. Das feature/ec2/imdsGo-Paket bietet einen Client-Typ, der für den Zugriff auf den Amazon EC2 Instance Metadata Service verwendet werden kann. Die Client und die zugehörigen Operationen können ähnlich wie die anderen vom SDK bereitgestellten AWS Service-Clients verwendet werden. Weitere Informationen zur Konfiguration des SDK und zur Verwendung von Service-Clients finden Sie unter Das SDKs konfigurieren undVerwenden Sie die AWS SDK für Go Version 2 mit AWS Diensten.

Mit dem Client können Sie auf einfache Weise Informationen über Instances abrufen, auf denen Ihre Anwendungen ausgeführt werden, z. B. die AWS Region oder die lokale IP-Adresse. In der Regel müssen Sie HTTP-Anfragen erstellen und einreichen, um Instanz-Metadaten abzurufen. Erstellen Sie stattdessen einen, imds.Client um wie andere AWS Services mithilfe eines programmatischen Clients auf den Amazon EC2 Instance Metadata Service zuzugreifen.

Um beispielsweise einen Client zu erstellen:

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)

Verwenden Sie dann den Service-Client, um Informationen aus einer Metadatenkategorie wie local-ipv4 (der privaten IP-Adresse der Instanz) abzurufen.

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))

Eine Liste aller Metadatenkategorien finden Sie unter Kategorien von Instance-Metadaten im EC2 Amazon-Benutzerhandbuch.