php-Editor Apple bietet Ihnen eine Einführung in AWS Golang SDK v2. Wenn Sie AWS-Skripte in Go schreiben, möchten Sie Ihrem Skript möglicherweise einige benutzerdefinierte Funktionen hinzufügen, um seine Funktionalität zu verbessern. In diesem Artikel erfahren Sie, wie Sie mit AWS Golang SDK v2 Funktionen zu Go AWS-Skripten hinzufügen, um Ihre Skripte leistungsfähiger und flexibler zu machen. Unabhängig davon, ob Sie Anfänger oder erfahrener Entwickler sind, erhalten Sie in diesem Artikel nützliche Tipps und Anleitungen. Lasst uns gemeinsam erkunden!
Versuchen Sie, jeden Teil des Skripts in Funktionen aufzuteilen, damit Sie die Ausgabe später verwenden können. Wenn ich versuche, eine Instanz an die Funktion printvolumesinfo zu übergeben, kann ich diesen Teil nicht zum Laufen bringen.
[]instanceblockdevicemapping ist Teil der Instanzstruktur, aber ich bin mir nicht sicher, was ich als Eingabe für die Funktion verwenden soll.
`
package main import ( "context" "fmt" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/ec2" ) var client *ec2.Client func init() { cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { panic("configuration error, " + err.Error()) } client = ec2.NewFromConfig(cfg) } func printVolumesInfo(volumes []ec2.InstanceBlockDeviceMapping) { for _, b := range volumes { fmt.Println(" " + *b.DeviceName) fmt.Println(" " + *b.Ebs.VolumeId) } } func main() { parms := &ec2.DescribeInstancesInput{} result, err := client.DescribeInstances(context.TODO(), parms) if err != nil { fmt.Println("Error calling ec2: ", err) return } for _, r := range result.Reservations { fmt.Println("Reservation ID: " + *r.ReservationId) fmt.Println("Instance IDs:") for _, i := range r.Instances { fmt.Println(" " + *i.InstanceId) printVolumesInfo(i.InstanceBlockDeviceMapping) } } }
`
Fehler erhalten: ./main.go:74:37: undefiniert: ec2.instanceblockdevicemapping
Versuchen Sie es mit verschiedenen Parametern, einschließlich []instanceblockdevicemapping und blockdevicemapping. Zusätzlich werden ec2 und client als Werte verwendet.
Überprüfen Sie die Dokumentation:https://www.php.cn/link/421b0ea70ab7fd681ae63a8f12695199
Dieses Feld heißt im Paket BlockDeviceMappings
。并且类型 InstanceBlockDeviceMapping
位于包 github.com/aws/aws-sdk-go-v2/service/ec2/types
中,而不是位于 ec2
.
printVolumes
的参数类型更改为 volumes []ec2.InstanceBlockDeviceMapping
printVolumesInfo(i.BlockDeviceMappings)
Das obige ist der detaillierte Inhalt vonAWS Golang SDK v2 – So fügen Sie Funktionen zu Go AWS-Skripten hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!