GO-AWS-SDK 访问AWS上的实例信息

GO-AWS-SDK to access instance information on AWS

我指的是 aws-go SDK 中的以下功能:https://docs.aws.amazon.com/sdk-for-go/api/aws/client/#New

我是 aws/go SDK for aws 的新手(更像是一个周末项目)

我想在我的本地主机上创建一个客户端,这样它就可以登录我的 AWS 帐户并为我提供 aws 帐户上所有实例的列表 运行。

现在,我正在尝试登录帐户

源代码:

package main

import (
    "fmt"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/client"
    "github.com/aws/aws-sdk-go/aws/client/metadata"
    "github.com/aws/aws-sdk-go/aws/request"
)


func main() {

    param1:=aws.Config{Region: aws.String("us-east-1") }
    param2:=metadata.ClientInfo{}
    param3:=request.Handlers{}
    awsClient :=client.New(param1,param2,param3)
    fmt.Print(awsClient)
    fmt.Println(awsClient.ClientInfo)

}

输出:

&{{3 0s 0s 0s 0s} {        } {<nil> <nil> <nil> <nil> <nil> 0xc0000133a0 <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil>  } {{[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>}}}{        }

我的 .aws/credentials 文件已正确设置 我还可以通过 cli 登录并查看我所有的子帐户。

同样,我只是想在 aws 上登录我的帐户。

请帮助我完成以下操作: 1) 我使用的 API / 文档是否正确?

2) 我从这个输出中了解到,客户端无法与 aws 通信。我对么 ?

3) 请帮我解决这个问题

提前致谢。

  1. 检查您的凭证文件中的 IAM 用户设置是否有权访问列表 EC2 信息。

  2. 测试这段代码,它只是检查成功或失败

package main

import (
   "github.com/aws/aws-sdk-go/aws/session"
   "github.com/aws/aws-sdk-go/service/ec2"

   "fmt"
)

func main() {
   // Load session from shared config
   sess := session.Must(session.NewSessionWithOptions(session.Options{
       SharedConfigState: session.SharedConfigEnable,
   }))

   // Create new EC2 client
   ec2Svc := ec2.New(sess)

   // Call to get detailed information on each instance
   result, err := ec2Svc.DescribeInstances(nil)
   if err != nil {
       fmt.Println("Error", err)
   } else {
       fmt.Println("Success", result)
   }
}

如果您是 AWS/Go 的新手,developer guide 也是一个很好的起点。