![見出し画像](https://assets.st-note.com/production/uploads/images/55488654/rectangle_large_type_2_3e2ce4a612787d14a9d9280c2449d551.jpeg?width=1200)
「動かして学ぶ!Pythonサーバレスアプリ開発入門」を読んでみた ~ Day 2 ~
「動かして学ぶ!Pythonサーバレスアプリ開発入門」を読んでみて、色々伝えたことを書いていく2日目です
1日目
「動かして学ぶ!Pythonサーバレスアプリ開発入門」を読んでみた ~ Day 1 ~
---------------
Chapter 6
黙々とviewのtempleteを作成
---------------
Chapter 7
DynamoDBの設定をおこなっていきます。
ローカルで動かすために、DynamoDBをダウンロードします。https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html
テーブルを作成する上で、Flask-Scriptを使うのですが、実はFlask2.0はFlask-Script非対応です。2.0以降にアップデートした瞬間使えなくなります。2.0でflask scriptを実行すると以下のようなエラーが出ます。
ModuleNotFoundError: No module named 'flask._compat'
公式マニュアルにもあるとおり、flaskではflask本体に組み込まれているスクリプト実行機能を推奨しています。
https://flask-script.readthedocs.io/en/latest/
Custom Command を使うと同じような機能が実装できます。
https://flask.palletsprojects.com/en/2.0.x/cli/#custom-commands
mange.pyは作らずに、 __init__.py に以下を加えます。
from flask_blog.models.entries import Entry
@app.cli.command("init_db")
def create_table():
if not Entry.exists():
Entry.create_table(read_capacity_units=5, write_capacity_units=2)
保存したら以下のコマンドでテーブルが作成されます
% flask init_db
ここで、気をつけたいのが、テーブルの作成に失敗してもエラーが出ないことがあります。以下のコマンドでローカルDBの中のテーブルを一覧で表示することができます。
% aws dynamodb list-tables --endpoint-url http://localhost:8000
{
"TableNames": [
"serverless_blog_entries"
]
}
コマンドの詳細についてはこちら
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.UsageNotes.html
うっかりFlask2.0で始めたらここで詰まるので、特に伝えたかった内容でした。
---------------
Chapter 8
ログイン機能を実装します。
会員認証機能では無くて、あくまでログイン機能という表現で、実体は環境変数に保存したIDとパスワードでログインする機能です。
---------------
次はいよいよサーバレス環境にDeployしていきます
つづく………
この記事が参加している募集
いつもありがとうございます! いただいたサポートは開発費(サーバー運用費)などに使わせていただきます!