AWS SDK for Go の開始方法 - AWS SDK for Go v2

AWS SDK for Go の開始方法

AWS SDK for Go を使用するには、Go 1.23 以上のバージョンが必要です。次のコマンドを実行することで、Go の現在のバージョンを確認できます。

go version

Go のインストールやアップグレードの方法については、Go のドキュメントの「Download and install」を参照してください。

Amazon アカウントを取得する

AWS SDK for Go v2 を使用するには、Amazon アカウントが必要です。詳細については、「AWS アカウントを作成する」を参照してください。

AWS SDK for Go v2 をインストールする

AWS SDK for Go 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 共有設定のロードに使用される設定モジュールが取得されます。

次に、アプリケーションに必要な 1 つ以上の AWS サービス API クライアントをインストールできます。すべての API クライアントは 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 アクセスキーを取得する

アクセスキーはアクセスキー ID とシークレットアクセスキーから成り、AWS に対するプログラムによるリクエストに署名するときに使用されます。アクセスキーがない場合は、AWS マネジメントコンソールを使用して作成できます。AWS ルートアカウントのアクセスキーの代わりに、IAM のアクセスキーを使用することをお勧めします。IAM では、AWS アカウントでの AWS サービスとリソースへのアクセスを安全に制御できます。

注記

アクセスキーを作成するには、必要な IAM アクションを実行するためのアクセス許可が必要です。詳細については、「IAM ユーザーガイド」の「IAM リソースにアクセスするために必要なアクセス許可」を参照してください。

アクセスキー ID とシークレットアクセスキーを取得するには:

  1. [IAM コンソール] を開きます。

  2. ナビゲーションメニューで [ユーザー] を選択します。

  3. IAM ユーザー名 (チェックボックスではありません) を選択します。

  4. [認証情報] タブを開き、次に [アクセスキーの作成] を選択します。

  5. 新しいアクセスキーを表示するには、[表示] を選択します。認証情報は次のようになります。

    • アクセスキー ID: AKIAIOSFODNN7EXAMPLE

    • シークレットアクセスキー: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

  6. キーペアをダウンロードするには、[Download .csv file.csv (.csv ファイルのダウンロード)] を選択します。このキーは安全な場所に保存してください。

警告

AWS アカウントを保護するために、これらのキーは厳重に管理し、組織外の誰とも共有しないでください。

オペレーションを呼び出す

SDK をインストールした後、Go アプリケーションに AWS パッケージをインポートすることで 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) } }