GoとAWSの連携学習もついに本番フェーズ突入!
今日は実際に DynamoDBクライアントがちゃんと動くかを確認するために、
ListTables
というAPIを使って、テーブル一覧を取得してみました!
昨日まではコチラ。
コツコツ、子育て中に無理のない範囲で、ほぼ毎日30分でいいから何か学習をするで続けております。
今日の目標
ListTables
で DynamoDB に接続確認- 正しく認証されているかチェック
- クライアント初期化コードを関数化して再利用しやすくする
1. DynamoDBクライアントの初期化(関数化)
package main import ( "context" "log" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/dynamodb" ) func initDynamoClient() *dynamodb.Client { cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { log.Fatalf("設定の読み込みに失敗: %v", err) } return dynamodb.NewFromConfig(cfg) }
💡 初期化コードを関数にまとめておくと、今後のCRUD操作でも便利!
2. ListTables
を実行してみる
package main import ( "context" "fmt" "log" ) func main() { svc := initDynamoClient() result, err := svc.ListTables(context.TODO(), &dynamodb.ListTablesInput{}) if err != nil { log.Fatalf("テーブル一覧取得に失敗しました: %v", err) } fmt.Println("✅ 接続成功!DynamoDBテーブル一覧:") for _, tableName := range result.TableNames { fmt.Println("- " + tableName) } }
出力例:
接続成功!DynamoDBテーブル一覧: - Users - Orders
3. トラブルが起きたら…
❗接続できないときに確認すべきポイント
- ~/.aws/credentials に正しいアクセスキーがあるか
- ~/.aws/config にリージョン指定があるか(例:ap-northeast-1)
- IAMポリシーに
dynamodb:ListTables
権限が含まれているか - ネットワーク接続 or AWS CLI で
aws dynamodb list-tables
が成功するか
今日のまとめ
✅ Go言語24日目の学習ポイント
svc.ListTables()
を使って、DynamoDBとの接続確認ができた- AWS SDK v2 のクライアント初期化コードを関数化して整理できた
- 認証・接続設定の理解が一段深まった
明日は書き込みを勉強する日になっているので、pythonのboto3でいう、put_item()を覚えたい。
以上となります。引き続きよろしくお願いいたします。