Amplify CLIで拡張する
Amplify Studioでは、AWS Identity and Access Management (IAM)で設定する必要なく、Amplify CLIのすべての機能を使用できます。Amplify Studioで行った変更は、amplify pullコマンドを実行することでCLIで利用可能にできます。同様に、データモデルまたは認証に対するCLIの変更はAmplify Studioに表示されます。その他のすべてのカテゴリについては、Studioは関連するAWSサービスコンソールへのリンクを提供します。
Amplify CLIをインストールするには
- ターミナルウィンドウを開き、CLIをインストールします。
npm install -g @aws-amplify/clicurl -sL https://aws-amplify.github.io/amplify-cli/install | bash && $SHELLcurl -sL https://aws-amplify.github.io/amplify-cli/install-win -o install.cmd && install.cmdAmplify CLIのインストールが完了したら、AWSアカウントなしで使用できるようにCLIを設定できます。
AWSアカウントなしで使用するようにAmplify CLIを設定するには
Open Amplify Studio. Choose Local setup instructions in the header and copy the amplify pull command.
Open a terminal window and navigate to the directory where you would like to have Amplify setup your project.
To initialize Amplify in the current directory, run the following command. Replace the xxx values with your unique appId and envName.
amplify pull --appId xxx --envName xxxA browser window opens and prompts you to continue logging in to the Amplify CLI. Choose Yes.
Return to the terminal window. You should see the following success statement:
Successfully received Amplify Admin tokens.The Amplify CLI is now configured and you can use it to provision new cloud backend features.
Amplify CLIでフィーチャーを追加する
Studioセットアップメニューには、CLIを使用してアプリケーションに追加できる関数、ストレージ、APIなどのクラウドバックエンドフィーチャーが表示されます。各バックエンドリソースについて、Studioはターミナルウィンドウで実行するCLIコマンドを表示します。
- Studioで、セットアップメニューからストレージまたは関数を選択します。
- ストレージページのAmplifyプロジェクトをプルの下から、次のコマンドをコピーしてターミナルウィンドウで実行します。
- バックエンド環境がクラウドから正常にプルされた後、ストレージ機能を追加の下から次のコマンドをコピーしてターミナルウィンドウに貼り付けます:
amplify add storage- ターミナルウィンドウのプロンプトに従って、目的の設定でストレージを設定します。
- ターミナルウィンドウで次のコマンドを実行して、ローカルバックエンドリソースをビルドしてクラウドにプロビジョニングします:
amplify push- Studioストレージページに戻ります。デプロイされたストレージリソースセクションで新しいストレージリソースへのリンクが利用可能であることを確認します。
Infrastructure-as-Code
Amplify StudioおよびAmplify CLIで作成されたすべてのバックエンドは、AWS CloudFormationを使用してデプロイされます。AWS CloudFormationでは、バックエンド設定をコードとしてリポジトリに格納できます。これには3つの主な利点があります:
- Amplifyでは利用できない個別のサービス(例えば、CognitoやDynamoDB)で提供される機能を使用してプロジェクトを拡張する機能。
- AWSアカウントとリージョン全体でバックエンド環境を簡単にレプリケートする機能。
- Amplifyコンソールで提供されるパイプラインなどのCI/CDパイプラインと簡単に統合する機能。
すべてのバックエンドインフラストラクチャ-as-コード定義は、Amplifyコマンドラインインターフェイス(CLI)を使用してプロジェクトに追加できます。
制限
Amplify Studioは、Amplify CLIで追加された特定のリソースのビルドをサポートしていません:
トラブルシューティング
Amplify CLIを使用してAmplify Studioにログインしてもトークンまたはプロンプトが表示されない
この動作は、ターミナルでAmplify CLIamplify pull --appId <appID> --envName <envName>コマンドを実行するときに観察され、ブラウザの新しいタブが開いてAmplify Studioログイン画面が表示されます。ログイン後、リダイレクトされず、CLIが読み込み状態で停止しているように見える場合があります。
この問題を解決するには、
- Amplify CLIプロンプトから終了します
- 存在する場合は、失敗したプル試行から現在のディレクトリに作成された残存アーティファクト(例:
amplifyまたはamplify-backup)を削除します - Amplify CLI
amplify pull --appId <appID> --envName <envName>コマンドを再実行します
認証トークン
Amplify CLIを使用する場合、次のエラーメッセージが発生することがあります:
Failed to receive expected authentication tokens. Error: [Error: 'jsonString' argument missing or empty]このメッセージは、ターミナルでAmplify CLIamplify pull --appId <appID> --envName <envName>コマンドを実行し、CLIへのアクセス許可を付与するときに発生します。
この問題を解決するには、
~/.amplify/admin/ロケーションにあるconfig.jsonファイルを削除します- 存在する場合は、失敗したプル試行から現在のディレクトリに作成された残存アーティファクト(例:
amplifyまたはamplify-backup)を削除します - Amplify CLI
amplify pull --appId <appID> --envName <envName>コマンドを再実行します
オーバーライドとカスタムリソース
A flag to disable overrides has been detected, please deploy from a different environment. at buildOverrideDirA flag to disable custom resources has been detected, please deploy from a different environment. at buildResource上記で述べたエラーは、Amplifyプロジェクトにoverride.tsファイルが含まれている場合や、カスタムリソースがデプロイされている場合のデプロイ中に発生します。Amplify Studioは、オーバーライドファイルまたはカスタムリソースを含むプロジェクトのデプロイをサポートしていません。
このエラーを解決するには、プロジェクトからoverride.tsファイルとカスタムリソースを削除してから、amplify pushを実行します。また、Amplify CLIを使用してリソースをビルドおよびプッシュすることもできます。ただし、Amplify Studioでのデプロイはできません。