aws/aws-sdk-go-v2
GitHub: aws/aws-sdk-go-v2
AWS 官方提供的 Go 语言 SDK 第二代版本,帮助开发者在 Go 应用中程序化地访问和操作几乎所有 AWS 服务。
Stars: 3545 | Forks: 780
# AWS SDK for Go v2
[](https://github.com/aws/aws-sdk-go-v2/actions/workflows/go.yml)[](https://github.com/aws/aws-sdk-go-v2/actions/workflows/codegen.yml) [](https://docs.aws.amazon.com/sdk-for-go/) [](https://aws.github.io/aws-sdk-go-v2/docs/migrating/) [](https://pkg.go.dev/mod/github.com/aws/aws-sdk-go-v2) [](https://github.com/aws/aws-sdk-go-v2/blob/main/LICENSE.txt)
`aws-sdk-go-v2` 是 Go 编程语言的 v2 版 AWS SDK。
v2 SDK 要求的最低版本为 `Go 1.24`。
请查看[发行说明](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)以获取有关 SDK 最新的错误修复、更新和新增功能的信息。
跳转至:
* [入门指南](#getting-started)
* [获取帮助](#getting-help)
* [贡献](#feedback-and-contributing)
* [更多资源](#resources)
## SDK 主要版本的维护与支持
有关 SDK 主要版本及其底层依赖项的维护与支持信息,请参阅 AWS SDKs and Tools Shared Configuration and Credentials Reference Guide 中的以下内容:
* [AWS SDKs and Tools 维护策略](https://docs.aws.amazon.com/credref/latest/refdocs/maint-policy.html)
* [AWS SDKs and Tools 版本支持矩阵](https://docs.aws.amazon.com/credref/latest/refdocs/version-support-matrix.html)
### Go 版本支持策略
v2 SDK 遵循上游的[发布策略](https://go.dev/doc/devel/release#policy),并为最近弃用的语言版本提供额外六个月的支持。
**AWS 保留提前停止对不受支持的 Go 版本提供支持的权利,以解决关键安全问题。**
## 入门指南
要开始使用该 SDK,请为 Go modules 设置您的项目,并使用 `go get` 获取 SDK 依赖项。
此示例展示了如何使用 v2 SDK,通过 SDK 的 [Amazon DynamoDB] 客户端发起 API 请求。
###### 初始化项目
```
$ mkdir ~/helloaws
$ cd ~/helloaws
$ go mod init helloaws
```
###### 添加 SDK 依赖
```
$ go get github.com/aws/aws-sdk-go-v2/aws
$ go get github.com/aws/aws-sdk-go-v2/config
$ go get github.com/aws/aws-sdk-go-v2/service/dynamodb
```
###### 编写代码
在您偏好的编辑器中,将以下内容添加到 `main.go`
```
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/dynamodb"
)
func main() {
// Using the SDK's default configuration, load additional config
// and credentials values from the environment variables, shared
// credentials, and shared configuration files
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-west-2"))
if err != nil {
log.Fatalf("unable to load SDK config, %v", err)
}
// Using the Config value, create the DynamoDB client
svc := dynamodb.NewFromConfig(cfg)
// Build the request with its input parameters
resp, err := svc.ListTables(context.TODO(), &dynamodb.ListTablesInput{
Limit: aws.Int32(5),
})
if err != nil {
log.Fatalf("failed to list tables, %v", err)
}
fmt.Println("Tables:")
for _, tableName := range resp.TableNames {
fmt.Println(tableName)
}
}
```
###### 编译并执行
```
$ go run .
Tables:
tableOne
tableTwo
```
## 获取帮助
请使用这些社区资源获取帮助。我们使用 GitHub issues 来跟踪错误和功能请求。
* 向我们[提问](https://github.com/aws/aws-sdk-go-v2/discussions/new?category=q-a)或开启一个[讨论](https://github.com/aws/aws-sdk-go-v2/discussions/new?category=general)。
* 如果您认为自己可能发现了一个错误,请开启一个 [issue](https://github.com/aws/aws-sdk-go-v2/issues/new/choose)。
* 向 [AWS Support](http://docs.aws.amazon.com/awssupport/latest/user/getting-started.html) 提交支持工单。
本 SDK 实现了 AWS 服务 API。有关 AWS 服务及其限制的一般性问题,您也可以查看 [Amazon Web Services Discussion Forums](https://forums.aws.amazon.com/)。
### 开启 Issues
如果您遇到了 AWS SDK for Go 的错误,我们希望听到您的反馈。
在开启新 issue 之前,请搜索[已有 issues][Issues] 并查看其他人是否也遇到了同样的问题。请包含您正在使用的 AWS SDK for Go 版本、Go 语言版本和操作系统。在适当的时候,也请附上复现步骤。
GitHub issues 旨在用于错误报告和功能请求。如需获取使用 AWS SDK for Go 的帮助和解答,请利用[获取帮助](#getting-help)部分中列出的资源。
保持待处理 issue 列表的精简有助于我们及时做出回应。
## 反馈与贡献
v2 SDK 将使用 GitHub [Issues] 来跟踪针对 SDK 的功能请求和问题。此外,我们将使用 GitHub [Projects] 来跟踪跨越多个 pull request 的大型任务,例如重构 SDK 的内部请求生命周期。您可以通过多种方式向我们提供反馈。
**GitHub issues**。为了提供反馈或报告错误,请在 SDK 上提交 GitHub [Issues]。这是提供反馈的首选机制,以便其他用户能够参与讨论、为 issue 点赞等。您开启的 issues 将被评估,并纳入我们正式发布的路线图中。
**贡献**。您可以为 AWS SDK for Go 2.0 的修复或新增内容提交 pull request。所有 pull request 都必须在 Apache 2.0 许可证下提交,并在合并前由 SDK 团队成员进行审查。如果可能的话,附上单元测试将不胜感激。
## 资源
[SDK 开发者指南](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/welcome.html) - 使用此文档了解如何开始使用 AWS SDK for Go V2。
[SDK 迁移指南](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/migrate-gosdk.html) - 使用此文档了解如何从 AWS SDK for Go 迁移到 V2。
[SDK API 参考文档](https://pkg.go.dev/mod/github.com/aws/aws-sdk-go-v2) - 使用此文档查阅 SDK 支持的 AWS 服务的所有 API 操作输入和输出参数。API 参考还包括 SDK 的文档,以及如何使用 SDK、服务客户端 API 操作和 API 操作所需参数的示例。
[服务文档](https://aws.amazon.com/documentation/) - 使用此文档了解如何与 AWS 服务进行交互。这些指南非常适合用于初次接触某项服务,或寻找有关某项服务的更多信息。虽然编码时不需要此文档,但服务可能会提供值得参考的有用示例。
[Issues] - 报告问题、提交 pull request 并参与其中(参见 [Apache 2.0 许可证][license])
标签:AWS SDK, Golang, Go语言, v2版本, 云服务管理, 云计算, 亚马逊云科技, 后端开发, 安全编程, 开源库, 搜索引擎爬虫, 日志审计, 程序破解, 规则引擎