AWS Golang SDK v2 - Cara menambah fungsi pada skrip Go AWS

王林
Lepaskan: 2024-02-09 09:27:08
ke hadapan
962 orang telah melayarinya

AWS Golang SDK v2 - 如何向 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!

Kandungan soalan

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)
        }
    }
}
Salin selepas log masuk

`

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.

Penyelesaian

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.

  1. Tambah github.com/aws/aws-sdk-go-v2/service/ec2/types` pada import anda
  2. Tukar fungsi printVolumes 的参数类型更改为 volumes []ec2.InstanceBlockDeviceMapping
  3. Panggil fungsi ini sebagai 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!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!