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) 请帮我解决这个问题
提前致谢。
检查您的凭证文件中的 IAM 用户设置是否有权访问列表 EC2 信息。
测试这段代码,它只是检查成功或失败
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 也是一个很好的起点。
我指的是 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) 请帮我解决这个问题
提前致谢。
检查您的凭证文件中的 IAM 用户设置是否有权访问列表 EC2 信息。
测试这段代码,它只是检查成功或失败
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 也是一个很好的起点。