ここでは、サーバーレスクラウドを使って、簡単なウェブサービスの作成する。今回実行するのは俳句のアプリとなる。

 

コマンドラインから動かす 

まずは

$ 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

にてスタックの削除を実行して終了である。