ちばのてっく

積極的にアウトプット

Boto3でDynamoDBをScanしてみた

昨日の記事の続き。 Flaskは動かせるようになったため、AWSリソースへアクセスしてみる。

やってみた

boto3のリファレンス を参考に、以下を作成。

from flask import Flask
import boto3 

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello world!</p>"

@app.route("/dynamodb_scan/")
def dynamodb_scan():
    client = boto3.client("dynamodb")
    response = client.scan(
        TableName="temp"
    )
    return response


if __name__ == "__main__":
    app.run(debug=True)

Flaskを起動して、http://127.0.0.1:5000/dynamodb_scan/へブラウザからアクセスすると、Scan結果が得られた。

Scan結果

{
  "Count": 2,
  "Items": [
    {
      "color": {
        "S": "yellow"
      },
      "target": {
        "S": "banana"
      }
    },
    {
      "color": {
        "S": "red"
      },
      "target": {
        "S": "apple"
      }
    }
  ],
  "ResponseMetadata": {
    "HTTPHeaders": {
      "connection": "keep-alive",
      "content-length": "132",
      "content-type": "application/x-amz-json-1.0",
      "date": "Wed, 13 Mar 2024 22:29:09 GMT",
      "server": "Server",
      "x-amz-crc32": "2357452850",
      "x-amzn-requestid": "9E048FPDU66OTKVD4QQP98LSBRVV4KQNSO5AEMVJF66Q9ASUAAJG"
    },
    "HTTPStatusCode": 200,
    "RequestId": "9E048FPDU66OTKVD4QQP98LSBRVV4KQNSO5AEMVJF66Q9ASUAAJG",
    "RetryAttempts": 0
  },
  "ScannedCount": 2
}

memo

resourceは非推奨のため、clientを利用する。

https://boto3.amazonaws.com/v1/documentation/api/latest/guide/resources.html