Amplify の CLI でやったことのまとめ(Cloud9 & React & GraphQL)
前回書いた、とりあえず動かす!Cloud9 & React & Amplify & GraphQLの環境構築を基にAmplify(CLI)でやったことをまとめました。
参考にした記事は以下の通りです。
使ったコマンド
Amplifyで使ったコマンドは以下の4つだけです。
- amplify init
- amplify add api
- amplify push
- amplify delete
(なんだかgitコマンドのようだが、、)
amplify init
amplifyのプロジェクトを初期化するコマンドです。
Cloud9にReactプロジェクトを作成して、そのプロジェクト配下で実行すると、amplifyが自動でReactプロジェクトをフロントエンドとして読み込み、後で作成するAPI(バックエンド)との疎通対象にします。(?、この表現があってるか自信ない、、)
これに加えて、AWS自体の認証わまりの設定もinitで行います。
amplify add api
amplifyのプロジェクトにバックエンドのAPIを追加します。バックエンドのAPIはREST APIとGraphQLがあり、前回の環境構築では記事の主題であるGraphQLを選択しました。(この記事ではREST APIには触れません。)
GraphQLの設定で、使うschema templateの選択とschemaの定義を行います。schema定義がこの時点で決まっている場合は、schemaの定義(schemaの編集)を行い、schema定義が決まっていない場合はデフォルトのschema templateをそのまま利用します。
APIの追加を行うとローカル環境(前回の記事ではCloud9上に環境構築)にAPI(GraphQl or REST API)が構築されます。
amplify push
amplifyプロジェクトに追加したAPIを、AppSyncとDynamoDBに反映します。schema定義によりAmazon ElasticsearchやS3などのAWSサービスにも反映されますが、まだまだ勉強中なので、その辺りの詳細はまたの機会に説明を。
定義したschemaに基づいてAppSyncにschema定義を反映させ、DynamoDBにテーブルを作成します。この反映により実際に定義した型と値に基づいて、DynamoDBへデータの登録 / 更新 / 削除を行うことが可能となります。(この記事ではAppSyncとDynamoDBの詳細には触れません。)
またschemaやリゾルバ(reactプロジェクト配下/amplify/backend/api/{api名}にあるファイル)を更新した後でこのコマンドを実行して、更新内容を反映させます。
昔々、JavaでEntity, DAO, DTOを作って制御していましたが、それらを使わずにたったこれだけで定義できて非常に楽になりました。
amplify delete
amplifyのプロジェクトを反映したAppSyncとDynamoDBから削除します。ローカル環境のReactプロジェクトにも一部ファイルは残りますが、AWSサービス上からデータが全て削除されます。
終わりに
いかがでしたか?
個人的にはフロントエンドさえ構築すれば、後はバックエンドの構築のみで、とても楽でした。
Discussion