LoginSignup
2
2

More 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する
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2