2026年10月19日月曜日

DynamoDBのテーブルにGoogle colabからデータを入れる/出す/更新する

今回は、AWSのlearnerLabでDynamoDBのテーブルを作成し、Google Colab(Pythonコード)でデータを入れる/出す/更新する方法を記載します。 

  1. DynamoDBにアクセスし、テーブルを作成する
    Dynamo DBにアクセスして、「テーブルを作成する」を選択する

    テーブル名を入力し、パーテーションキー(一意になるキー)を入力する

    テーブル設定はデフォルトのまま作成

    アクティブになったら、無事起動


  2. Google Colabを開き、必要なライブラリをインストール
    # 必要なライブラリのインストール
    !pip install boto3

  3. 必要な認証情報を入力
    import boto3

    # --- Learner Labの認証情報を入力 ---
    AWS_ACCESS_KEY_ID = "取得したAccess Key ID"
    AWS_SECRET_ACCESS_KEY = "取得したSecret Access Key"
    AWS_SESSION_TOKEN = "取得したSession Token" # Lab環境では必須
    REGION_NAME = "us-east-1" # Learner Labで許可されているリージョン

    アクセスキーIDなどの情報は、AWS Academy Learner Lab を起動するのページのAWS Detailsの中の
    AWS CLI:   Show を押すと出てきます(下記は講師の参考)

  4. リソースの初期化
    # DynamoDBリソースの初期化
    dynamodb = boto3.resource(
    'dynamodb',
    aws_access_key_id=AWS_ACCESS_KEY_ID,
    aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
    aws_session_token=AWS_SESSION_TOKEN,
    region_name=REGION_NAME
    )

  5. テーブルを指定
    テーブル名は、作ったテーブル名に変更してください
    # テーブルを指定
    table = dynamodb.Table('テーブル名')
  6. データの書き込み
    id user_001として、名前と年齢を追加
    # 1. データの書き込み(Put)
    try:
    table.put_item(
    Item={
    'id': 'user_001',
    'name': '山田太郎',
    'age': 25
    }
    )
    print("🎉 データの書き込みに成功しました!")
    except Exception as e:
    print(f"❌ 書き込みエラー: {e}")
  7. データの読み込み
    id user_001のデータを読み込み
    # 2. データの読み込み(Get)
    try:
    response = table.get_item(
    Key={
    'id': 'user_001'
    }
    )
    print("📖 読み込んだデータ:", response.get('Item'))
    except Exception as e:
    print(f"❌ 読み込みエラー: {e}")

  8. データの更新
    id user_001の年齢を変更
    # 3. データの変更・更新(Update)
    try:
    response = table.update_item(
    Key={
    'id': 'user_001' # 変更したいデータのキーを指定
    },
    UpdateExpression="SET age = :new_age", # どの属性をどう変更するか
    ExpressionAttributeValues={
    ':new_age': 26 # 新しい値
    },
    ReturnValues="UPDATED_NEW" # 更新された値を結果として受け取る設定
    )
    print("🎉 データの変更に成功しました!", response.get('Attributes'))
    except Exception as e:
    print(f"❌ 変更エラー: {e}")

    # 4. 変更後の読み込み確認
    try:
    response = table.get_item(
    Key={
    'id': 'user_001'
    }
    )
    print("📖 変更後のデータ:", response.get('Item'))
    except Exception as e:
    print(f"❌ 読み込みエラー: {e}")