首頁 > 後端開發 > Golang > 主體

AWS Golang SDK v2 - 如何為 Go AWS 腳本新增函數

王林
發布: 2024-02-09 09:27:08
轉載
964 人瀏覽過

AWS Golang SDK v2 - 如何向 Go AWS 脚本添加函数

php小編蘋果為您帶來了關於AWS Golang SDK v2的介紹。如果您正在使用Go語言編寫AWS腳本,您可能想要在腳本中添加一些自訂的函數以增強其功能。本文將向您展示如何使用AWS Golang SDK v2為Go AWS腳本中新增函數,讓您的腳本更強大、更有彈性。無論您是初學者還是有經驗的開發人員,都能從本文中獲得有用的技巧和指導。讓我們一起來探索吧!

問題內容

嘗試將腳本的每個部分分成函數,以便稍後使用輸出。 嘗試將實例傳遞給 printvolumesinfo 函數時,無法使該部分運作。

[]instanceblockdevicemapping 是 instance 結構的一部分,但我不確定使用什麼作為函數的輸入。

`

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)
        }
    }
}
登入後複製

`

收到錯誤: ./main.go:74:37:未定義:ec2.instanceblockdevicemapping

##嘗試使用不同的參數,包括[]instanceblockdevicemapping和blockdevicemapping。此外,也使用了 ec2 和客戶端作為值。

解決方法

檢查文件:https://www.php.cn/link/421b0ea70ab7fd681ae63a8f12695199

#該欄位稱為 BlockDeviceMappings。並且類型InstanceBlockDeviceMapping 位於套件github.com/aws/aws-sdk-go-v2/service/ec2/types 中,而不是位於ec2 套件中。

  1. 將 github.com/aws/aws-sdk-go-v2/service/ec2/types` 新增到您的導入
  2. 將函數 printVolumes 的參數類型改為 volumes []ec2.InstanceBlockDeviceMapping
  3. #將函數呼叫為 printVolumesInfo(i.BlockDeviceMappings)

以上是AWS Golang SDK v2 - 如何為 Go AWS 腳本新增函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!