ここでは、サーバーレスクラウドを使って、簡単なウェブサービスの作成する。今回実行するのは俳句のアプリとなる。
コマンドラインから動かす
まずは
$ cd intro-aws/handson/bashoutter
にて今回のプロジェクトのディレクトリに移動し第4章と同じ手法でデプロイする。
その際に表示される「Bashoutter.BashoutterApiEndpoint = XXXX」と「Bashoutter.BucketUrl = YYYY」の最後のXXXXとYYYYに当たる文字列は以後出てきた際に置換する。
APIのページにて今デプロイしたスタックが確認できる。
確認も済んだのでコマンドラインから API を送信してみる。
まずは
$ export ENDPOINT_URL=XXXX
でAPI のエンドポイントのURLを変数に設定しておく。
では、設定は済んだので、俳句の一覧を取得するために、
$ http GET "${ENDPOINT_URL}/haiku"
を実行すると、
まだ何も投稿していないので、勿論このように空の配列が返ってくるだけである。
それでは実際に俳句を投稿してみる。
$ http POST "${ENDPOINT_URL}/haiku" \
username="松尾芭蕉" \
first="閑さや" \
second="岩にしみ入る" \
third="蝉の声"
このように打ち込めば
新しい俳句を投稿することに成功した旨が出力される。
では再度
$ http GET "${ENDPOINT_URL}/haiku"
で呼び出すと
このようにしっかり投稿できていた。
ここで
赤線の箇所を見てみると、「"likes":0.0」と書かれている。これは「いいねが0個付いている」事を表している。せっかくなのでこのいいねも追加してみる。
$ http PATCH "${ENDPOINT_URL}/haiku/XXXX"
これを実行して
と返って来ればいいねが1つ付いたはずなので再度確認してみると
少し見づらいが確かに「"likes":1.0」となっているためいいねを付けることに成功している。
次は多数のユーザーがいるような状態を想定して、大量のアクセスに対する動きを確認する。
$ python client.py $ENDPOINT_URL post_many 300
このコマンドを行うと
数秒かけてこのように表示され、無事大量のアクセスに対応できていることが確認できる。
確認ができたら
$ python client.py $ENDPOINT_URL clear_database
で無駄なデータを削除し、データベースを空にしておく。
GUIで動かす
今度はGUIにて動作を確認する。
デプロイの際に表示された「Bashoutter.BucketUrl=」で得たURLにアクセスしてみる。すると、
このようなページに移動する。移動できたら "API Endpoint URL"の欄にAPI GatewayのURLを入力し、"REFRESH"のボタンを押す。すると
このように俳句の一覧が表示される。他にもハートマークの箇所をクリックしてlike(いいね)の表を入れたり、新しい俳句を打ち込み"POST" を押し投稿する事もできる。
各所確認できたらコマンドラインから
$ cdk destroy
にてスタックの削除を実行して終了である。









