如何将 aws-sdk-go-v2 与 localstack 一起使用?

问题描述

我正在尝试从 aws-sdk-go 迁移到 aws-sdk-go-v2。但是,我在本地使用 localstack 来模拟一些 aws 服务,例如 sqs 和 s3。我不确定如何配置新的 sdk 以使用 localstack 端点而不是真正的端点。

例如,在 v1 SDK 中,我可以通过在此处设置端点将其指向 localstack:

session.Must(session.NewSession(&aws.Config{
    Region:   aws.String("us-east-1"),Endpoint: aws.String("http://localstack:4566"),}))

但是,我如何在 v2 SDK 中执行此操作?我想我需要在 config 中设置一些参数,但我没有看到任何指定端点的选项。

解决方法

这取决于您使用的服务。

为了初始化一个 Glue 客户端:

cfg,err := config.LoadDefaultConfig(context.Background())
if err != nil {
    panic(err)
}
glueConnection := glue.New(glue.Options{Credentials: cfg.Credentials,Region: cfg.Region})