在没有会话的Go AWS SDK中创建客户端

时间:2018-05-29 14:42:46

标签: amazon-web-services go aws-sdk-go

我们如何在不使用会话的情况下创建AWS服务客户端(例如EC2,Autoscaling),而是直接使用sahred凭证,如boto3。

使用像这样的会话:

sess := session.New(&aws.Config{
        Region:      aws.String("us-east-1"),
        Credentials: credentials.NewSharedCredentials("", profile),
    })
svc := ec2.New(sess)

然而,这不起作用:

svc := ec2.New(&aws.Config{
        Region:      aws.String("us-east-1"),
        Credentials: credentials.NewSharedCredentials("", profile),
    })

错误:

  

不能使用aws.Config文字(类型* aws.Config)作为类型   在ec2.New的参数中的client.ConfigProvider:* aws.Config没有   实现client.ConfigProvider(缺少ClientConfig方法)

如何使用Go AWS SDK直接创建没有会话的客户端?

1 个答案:

答案 0 :(得分:1)

SDK需要避免循环依赖,为此,它使用了一个名为session.Session的抽象。但是,V2通过展平一些包来消除这种抽象:)