本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
開始使用 適用於 Go 的 AWS SDK
適用於 Go 的 AWS SDK 需要 Go 1.23 的最低版本。您可以執行下列命令來檢視目前版本的 Go:
go version
如需有關安裝或升級 Go 版本的資訊,請參閱 Go 文件中的下載並安裝
取得 Amazon 帳戶
您必須先擁有 Amazon 帳戶,才能使用 適用於 Go 的 AWS SDK v2。如需詳細資訊,請參閱建立 AWS 帳戶。
安裝 適用於 Go 的 AWS SDK v2
適用於 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匯入階層下。您可以在這裡go.mod 檔案中。在此範例中,我們擷取 Amazon S3 API 用戶端。
go get github.com/aws/aws-sdk-go-v2/service/s3
取得您的 AWS 存取金鑰
存取金鑰包含存取金鑰 ID 與 私密存取金鑰,這兩者可用來簽署您對 AWS提出的程式設計要求。如果您沒有存取金鑰,您可以使用 AWS 管理主控台
注意
若要建立存取金鑰,您必須具有執行必要 IAM 動作的許可。如需詳細資訊,請參閱《IAM 使用者指南》中的存取 IAM 資源所需的許可。
取得您的存取金鑰 ID 和私密存取金鑰。
-
開啟 IAM 主控台
。 -
在導覽功能表中,選擇 Users (使用者)。
-
選擇 IAM 使用者名稱 (非核取方塊)。
-
開啟 Security credentials (安全憑證) 標籤,然後選擇 Create access key (建立存取金鑰)。
-
若要查看新的存取金鑰,請選擇 Show (顯示)。您的憑證應類似以下內容:
-
存取金鑰 ID:
AKIAIOSFODNN7EXAMPLE -
私密存取金鑰:
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
-
-
若要下載金鑰對,請選擇 Download .csv file (下載 .csv 檔案)。請將金鑰存放在安全位置。
警告
將金鑰保密,以保護 AWS 您的帳戶,絕不與組織外部的任何人共用。
相關主題
-
Amazon Web Services 一般參考中的AWS 安全登入資料。
叫用 操作
安裝 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) } }