éditeur php Apple vous présente une introduction à AWS Golang SDK v2. Si vous écrivez des scripts AWS dans Go, vous souhaiterez peut-être ajouter des fonctions personnalisées à votre script pour améliorer ses fonctionnalités. Cet article vous montrera comment utiliser AWS Golang SDK v2 pour ajouter des fonctions aux scripts Go AWS afin de rendre vos scripts plus puissants et flexibles. Que vous soyez débutant ou développeur expérimenté, vous obtiendrez des conseils et des conseils utiles dans cet article. Explorons ensemble !
Essayez de diviser chaque partie du script en fonctions afin de pouvoir utiliser la sortie plus tard. Lorsque j'essaie de transmettre une instance à la fonction printvolumesinfo, je n'arrive pas à faire fonctionner cette partie.
[]instanceblockdevicemapping fait partie de la structure de l'instance, mais je ne sais pas quoi utiliser comme entrée dans la fonction.
`
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) } } }
`
Erreur reçue : ./main.go:74:37 : non défini : ec2.instanceblockdevicemapping
Essayez d'utiliser différents paramètres, notamment []instanceblockdevicemapping et blockdevicemapping. De plus, ec2 et client sont utilisés comme valeurs.
Consultez la documentation :https://www.php.cn/link/421b0ea70ab7fd681ae63a8f12695199
Ce champ est appelé BlockDeviceMappings
。并且类型 InstanceBlockDeviceMapping
位于包 github.com/aws/aws-sdk-go-v2/service/ec2/types
中,而不是位于 ec2
dans le package.
printVolumes
的参数类型更改为 volumes []ec2.InstanceBlockDeviceMapping
printVolumesInfo(i.BlockDeviceMappings)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!