Rumah >pembangunan bahagian belakang >Golang >AWS Golang SDK v2 - Cara menambah fungsi pada skrip Go AWS
editor php Apple membawakan anda pengenalan kepada AWS Golang SDK v2. Jika anda menulis skrip AWS dalam Go, anda mungkin mahu menambah beberapa fungsi tersuai pada skrip anda untuk meningkatkan fungsinya. Artikel ini akan menunjukkan kepada anda cara menggunakan AWS Golang SDK v2 untuk menambahkan fungsi pada skrip Go AWS untuk menjadikan skrip anda lebih berkuasa dan fleksibel. Sama ada anda seorang pemula atau pembangun berpengalaman, anda akan mendapat petua dan panduan berguna daripada artikel ini. Mari kita meneroka bersama-sama!
Cuba bahagikan setiap bahagian skrip kepada fungsi supaya anda boleh menggunakan output kemudian. Apabila cuba menghantar contoh kepada fungsi printvolumesinfo, saya tidak boleh mendapatkan bahagian itu untuk berfungsi.
[]instanceblockdevicemapping ialah sebahagian daripada struktur tika, tetapi saya tidak pasti apa yang hendak digunakan sebagai input kepada fungsi tersebut.
`
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) } } }
`
Ralat yang diterima: ./main.go:74:37: undefined: ec2.instanceblockdevicemapping
Cuba gunakan parameter berbeza termasuk []instanceblockdevicemapping dan blockdevicemapping. Selain itu, ec2 dan klien digunakan sebagai nilai.
Semak dokumentasi:https://www.php.cn/link/421b0ea70ab7fd681ae63a8f12695199
Medan ini dipanggil BlockDeviceMappings
。并且类型 InstanceBlockDeviceMapping
位于包 github.com/aws/aws-sdk-go-v2/service/ec2/types
中,而不是位于 ec2
dalam pakej.
printVolumes
的参数类型更改为 volumes []ec2.InstanceBlockDeviceMapping
printVolumesInfo(i.BlockDeviceMappings)
Atas ialah kandungan terperinci AWS Golang SDK v2 - Cara menambah fungsi pada skrip Go AWS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!