【发布时间】:2019-10-03 09:49:37
【问题描述】:
你好 StackOverflow AWS Gophers,
I'm implementing 一个具有出色 cobra/viper packages from spf13 的 CLI。我们有一个 Athena 数据库,前面有一个 API Gateway 端点,它通过 IAM 进行身份验证。
也就是说,为了使用 Postman 与其端点交互,我必须将 AWS Signature 定义为 Authorization 方法,定义相应的 AWS id/secret 然后在 Headers 中会有 X-Amz-Security-Token 等。没有什么异常,按预期工作。
由于我是 Go 新手,看到没有使用 aws-sdk-go 本身执行此简单 HTTP GET 请求的示例,我感到有点震惊......我正在尝试使用共享凭据提供程序( ~/.aws/credentials),如 S3 客户端 Go code snippets from re:Invent 2015 所示:
req := request.New(nil)
我怎样才能在 2019 年完成这个看似简单的壮举,而不必求助于自己煮熟的 net/http 并因此不得不手动阅读 ~/.aws/credentials 或更糟的是,使用 os.Getenv 和其他丑陋的黑客?
作为客户端交互的任何 Go 代码示例都会非常有帮助。请不要使用 Golang Lambda/服务器示例,那里有很多。
【问题讨论】:
-
你无法从this函数获取信息对吧?
-
是的,没错,这个函数是我应该写的,最好是
aws-sdk-go。
标签: amazon-web-services go aws-api-gateway aws-sdk-go go-cobra