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

问题描述 投票:4回答:1

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

我是aws的新手,或者是aws的SDK(更像是一个周末项目)

我想在我的本地主机上创建一个客户端,以便它可以登录我的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)请帮助我解决此问题

提前感谢。

amazon-web-services go aws-sdk-go
1个回答
1
投票
  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也是一个不错的起点。

© www.soinside.com 2019 - 2024. All rights reserved.