infoMore than 3 years have passed since last update.
Amplifyの基礎知識と使い方メモ
Last updated at Posted at 2021-01-05
基礎知識
- Amplifyとは「AWSの様々なサービスをより簡単に扱えるツール」のこと
- Firebaseに似てる
- AmplifyはWebブラウザ用のコンソールと呼ばれる画面上でも一部操作可能だが、基本的にはCLIで操作する
- CLIの各種コマンドを実行すると裏でCloudFormationが動く仕組みになっている
-
【重要】
CLIコマンド実行中に途中で強制停止するとトラブルの元になり、最悪の場合元に戻せないので注意
- Amplifyにはプロジェクトという概念があり、基本的には一つのプロダクトにつき一つのプロジェクトを作成
- プロジェクトを作成すると、リポジトリ内にamplifyという名前のフォルダが生成される
CLIインストール
- ローカルでAWSの認証情報を設定する
- 任意のprofile名を付ける
- 下記コマンドでCLIインストール
npm install -g @aws-amplify/cli
Category (カテゴリ)
- Amplifyには「category (カテゴリ)」という概念がある
- api、auth、functionなど様々なカテゴリが用意されている
- 例えばapiカテゴリはGraphQL APIやREST APIを作るときに使う
- GraphQL APIは裏でAppSyncが動き、REST APIではAPI GatewayやLambda等が動く
- 他にも、authはCognito、functionはLambda、hostingはRoute53やS3、storageはS3が動く
- CLIで
amplify api add
を実行すれば apiを追加でき、 amplify api remove
で削除できる
- functionなら
amplify function add
、authなら amplify auth add
といったように実行する
amplifyフォルダ
- amplifyフォルダ内には、amplify関連の各種設定やLambda関数のソースコードファイル、GraphQLスキーマファイル等が配置される
- amplifyフォルダにはGit管理下のファイルと、そうでないファイルがある
-
/amplify/.config
には基本的な設定ファイルが配置される
-
/amplify/backend
にはカテゴリ毎にフォルダが配置され、それぞれに関連ファイルが配置される
-
/amplify/team-provider-info.json
は環境設定を記述するJSONファイル(詳しくは後述)
env (環境)
- Amplifyには「env (環境)」という概念がある
- これは例えば本番環境、ステージング環境、開発環境といったように環境を分けたい場合に役立つ
- 環境ごとに全く別々のAWSリソースが構築される
- 例えばLambda関数(function)を作り、2つの環境(stgとdev)を作ると、AWSコンソールを見ると同じソースコードのLambda関数が2つ生成されていることが確認できる
- 同様に、DyanmoDBのテーブルやS3のバケット等も全て環境ごとに生成される
- 現在存在する環境一覧をリスト表示するには
amplify env list
を実行
- 現在選択中の環境には名前の横にマークが付く
- 環境を切り替えるには
amplify env checkout stg
のように最後に環境名を指定して実行
- 新たに環境を追加するにはCLIで
amplify env add
を実行
- 環境の削除は
amplify env remove
で簡単に実行できるが、再度作り直してもIDが変わってしまい、全く同じ環境ではなくなるので注意
- 環境関連コマンドを実行すると
/amplify/team-provider-info.json
の内容が書き換わる
- 前述のJSONファイルに環境が存在しなければ、
amplify env checkout {環境名}
コマンドを実行できない
amplify codegen
- GraphQLスキーマを
/amplify/backend/api/{API_NAME}/schema.graphql
に書く
-
amplify codegen
というコマンドを実行すると、GraphQLスキーマファイルに基づいたJSファイルが生成される
- 生成先は
/src
フォルダ(設定で変更可)
- 生成されたJSファイルをアプリケーション側でimportすることでGraphQL APIを扱うことができる
- 基本的にcodegen後のファイルはGit管理下にするべきではない(GraphQLスキーマファイルとの不一致を防ぐため)
- 生成された以外のGraphQLを書きたい場合は、別途ファイルを作成してimportする
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
What you can do with signing up