

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 開始使用 適用於 Go 的 AWS SDK
<a name="getting-started"></a>

 適用於 Go 的 AWS SDK 需要 Go 1.23 的最低版本。您可以執行下列命令來檢視目前版本的 Go：

```
go version
```

 如需有關安裝或升級 Go 版本的資訊，請參閱 Go 文件中的[下載並安裝](https://go.dev/doc/install) 。

## 取得 Amazon 帳戶
<a name="get-an-amazon-account"></a>

 您必須先擁有 Amazon 帳戶，才能使用 適用於 Go 的 AWS SDK v2。如需詳細資訊[，請參閱建立 AWS 帳戶](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-creating.html)。

## 安裝 適用於 Go 的 AWS SDK v2
<a name="install-the-aws-sdk-for-go-v2"></a>

 適用於 Go 的 AWS SDK v2 使用 Go 模組，這是 Go 1.11 中推出的功能。執行下列 Go 命令來初始化您的本機專案。

```
go mod init example
```

 初始化 Go 模組專案之後，您將可以使用 `go get`命令擷取 SDK 及其所需的相依性。這些相依性會記錄在由上一個命令建立的 `go.mod` 檔案中。

 下列命令示範如何擷取要在應用程式中使用的標準 SDK 模組集。

```
go get github.com/aws/aws-sdk-go-v2
go get github.com/aws/aws-sdk-go-v2/config
```

 這將擷取核心 SDK 模組，以及用於載入 AWS 共用組態的組態模組。

 接下來，您可以安裝應用程式所需的一或多個 AWS 服務 API 用戶端。所有 API 用戶端都位於`github.com/aws/aws-sdk-go-v2/service`匯入階層下。您可以[在這裡](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service)找到一組目前支援的 API 用戶端。若要安裝服務用戶端，請執行下列命令來擷取模組，並將相依性記錄在 `go.mod` 檔案中。在此範例中，我們擷取 Amazon S3 API 用戶端。

```
go get github.com/aws/aws-sdk-go-v2/service/s3
```

## 取得您的 AWS 存取金鑰
<a name="get-your-aws-access-keys"></a>

 存取金鑰包含存取金鑰 ID 與 私密存取金鑰，這兩者可用來簽署您對 AWS提出的程式設計要求。如果您沒有存取金鑰，您可以使用 [AWS 管理主控台](https://console.aws.amazon.com/console/home)來建立金鑰。我們建議您使用 IAM 存取金鑰，而不是 AWS 根帳戶存取金鑰。IAM 可讓您安全地控制對 AWS 帳戶中 AWS 服務和資源的存取。

**注意**  
若要建立存取金鑰，您必須具有執行必要 IAM 動作的許可。如需詳細資訊，請參閱《[IAM 使用者指南》中的存取 IAM 資源所需的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions-required.html)。

### 取得您的存取金鑰 ID 和私密存取金鑰。
<a name="to-get-your-access-key-id-and-secret-access-key"></a>

1.  開啟 [IAM 主控台](https://console.aws.amazon.com/iam/home)。

1.  在導覽功能表中，選擇 **Users (使用者)**。

1.  選擇 IAM 使用者名稱 (非核取方塊)。

1.  開啟 **Security credentials (安全憑證)** 標籤，然後選擇 **Create access key (建立存取金鑰)**。

1.  若要查看新的存取金鑰，請選擇 **Show (顯示)**。您的憑證應類似以下內容：
   +  存取金鑰 ID：`AKIAIOSFODNN7EXAMPLE`
   +  私密存取金鑰：`wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`

1.  若要下載金鑰對，請選擇 **Download .csv file** (下載 .csv 檔案)。請將金鑰存放在安全位置。

**警告**  
 將金鑰保密，以保護 AWS 您的帳戶，絕不與組織外部的任何人共用。

### 相關主題
<a name="related-topics"></a>
+  [IAM 使用者指南中的什麼是 IAM？](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)。
+  Amazon Web Services 一般參考中的[AWS 安全登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html)資料。

## 叫用 操作
<a name="invoke-an-operation"></a>

 安裝 SDK 之後，您可以將 AWS 套件匯入 Go 應用程式以使用 SDK，如下列範例所示，匯入 AWS、Config 和 Amazon S3 程式庫。匯入 SDK 套件後，會載入 AWS SDK 共用組態、建構用戶端，並叫用 API 操作。

```
package main

import (
    "context"
    "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/s3"
)

func main() {
    // Load the Shared AWS Configuration (~/.aws/config)
    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
        log.Fatal(err)
    }

    // Create an Amazon S3 service client
    client := s3.NewFromConfig(cfg)

    // Get the first page of results for ListObjectsV2 for a bucket
    output, err := client.ListObjectsV2(context.TODO(), &s3.ListObjectsV2Input{
        Bucket: aws.String("amzn-s3-demo-bucket"),
    })
    if err != nil {
        log.Fatal(err)
    }

    log.Println("first page results")
    for _, object := range output.Contents {
        log.Printf("key=%s size=%d", aws.ToString(object.Key), *object.Size)
    }
}
```