GO - AWS -SDK для доступа к информации об экземпляре на AWS - PullRequest
4 голосов
/ 28 мая 2020

Я имею в виду следующую функцию в aws - go SDK: https://docs.aws.amazon.com/sdk-for-go/api/aws/client/#New

Я новичок в aws / go SDK для aws (больше похоже на проект выходного дня)

Я хочу создать клиента на своей машине localhost, чтобы он мог войти в мою учетную запись 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 Ответ

1 голос
/ 28 мая 2020
  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.

...