CLIコマンド
このページは、@aws-amplify/backend-cliパッケージに含まれるコマンドのリファレンスです。
すべてのコマンドにはAWS CLI環境変数を前置して、Amplify Gen 2コマンドでAWSアカウント動作を変更できます。
npx ampx sandbox
Sandboxを使用すると、フロントエンドの開発サーバーと並行してバックエンドを開発できます。npx ampx sandboxを実行して個人のクラウドサンドボックスにデプロイします。このコマンドは自動的にamplify/フォルダの変更を監視し、ファイルを保存するたびに再デプロイします。
ログストリーミング
--stream-function-logs(boolean) - 関数実行ログをストリーミングするかどうか。(デフォルト: false)--logs-filter(array) - マッチした関数からのみログをフィルタリングする正規表現パターン。例えば、関数のログをストリーミングするためにその名前を指定し、authで始まるすべての関数からログをストリーミングするには「auth」を指定します(デフォルト: すべてのログをストリーミング)--logs-out-file(string) - ストリーミングログを追加するファイル。ファイルが存在しない場合は作成されます。(デフォルト: stdout)
オプション
--debug(boolean) - コンソールにデバッグログを出力します(デフォルト: false)--dir-to-watch(string) - ファイルの変更を監視するディレクトリ。すべてのサブディレクトリとファイルが含まれます。デフォルトはamplifyディレクトリです。--exclude(string[]) - 無視するパスまたはグロブパターンの配列。パスは相対または絶対パスで、ファイルまたはディレクトリのいずれかです。--identifier(string) - 異なるサンドボックス環境を区別するためのオプション名。デフォルトはプロセスを実行しているシステムユーザーの名前です。--once(boolean) - 将来のファイル変更を監視せずに単一のサンドボックスデプロイを実行します。--outputs-out-dir(string) - クライアント設定ファイルが書き込まれるディレクトリへのパス。指定されていない場合、現在のプロセスの作業ディレクトリにデフォルト設定されます。--outputs-format(string) - クライアント設定ファイルが書き込まれるフォーマット(選択肢:json,dart)。--outputs-version(string) - 設定のバージョン。バージョン0はクラシックamplify-cliの設定ファイルamplify-configurationを表し、1は新しい設定ファイルamplify_outputsを表します(選択肢:0,1)。--profile(string) - AWSプロファイル名。
使用方法
npx ampx sandbox別のプロファイルで使用
--profileフラグを使用して、default以外のAWSプロファイルでサンドボックスを実行できます:
npx ampx sandbox --profile my-other-profileさらに、AWS CLI環境変数を使用して別のプロファイルを指定できます:
AWS_PROFILE=my-other-profile ampx sandbox別のリージョンで使用
AWS環境変数を使用して、AWSプロファイルの設定されたリージョン以外のリージョンにデプロイします:
AWS_REGION=us-west-2 ampx sandboxモバイルアプリケーションで使用
モバイルアプリケーションの場合は、生成された設定ファイル(特にamplify_outputs.json)の出力ディレクトリとフォーマットを設定する必要があります:
# Android用npx ampx sandbox --outputs-out-dir app/src/main/res# Swift/iOS用npx ampx sandbox# Flutter用npx ampx sandbox --outputs-format dart --outputs-out-dir libnpx ampx sandbox delete
個人のクラウドサンドボックスを削除します。これは、npx ampx sandboxを終了する際に削除しないことを選択した場合の、アクティブなクラウドサンドボックスがある場合のみ使用してください。
オプション
--name(string) - 異なるサンドボックス環境を区別するためのオプション名。デフォルトはpackage.jsonの名前です。--profile(string) - AWSプロファイル名。-y, --yes(boolean) - サンドボックス環境を削除する前に確認を求めません。
使用方法
npx ampx sandbox deletenpx ampx sandbox secret
個人のクラウドサンドボックスで使用するバックエンドシークレットを管理します。
オプション
--profile(string) - AWSプロファイル名。
使用方法
npx ampx sandbox secret別のAWSプロファイルで使用
--profileフラグを使用して、default以外のAWSプロファイルでサンドボックスを実行できます:
npx ampx sandbox secret list --profile my-other-profileさらに、AWS CLI環境変数を使用して別のプロファイルを指定できます:
AWS_PROFILE=my-other-profile ampx sandbox secret listシークレットを作成
sandbox secret setを使用して、個人のクラウドサンドボックスで使用するシークレットを作成します:
npx ampx sandbox secret set LOGINWITHAMAZON_CLIENT_IDこれはバックエンド内でsecret()を使用してシークレットを取得および使用するように設定する方法です。
シークレットを削除
以前に設定したシークレットを削除する場合は、sandbox secret removeを使用します:
npx ampx sandbox secret remove LOGINWITHAMAZON_CLIENT_IDすべてのシークレットを削除
以前に設定したすべてのシークレットを削除する場合は、sandbox secret remove --allを使用します:
npx ampx sandbox secret remove --allシークレットをリスト
デフォルトのAWSプロファイルとリージョンで、個人のサンドボックスで利用可能なすべてのシークレットをリストアップします:
npx ampx sandbox secret listシークレットを取得してその詳細を表示
既存のシークレットとその詳細(現在のバージョンと最後の更新時刻など)を表示できます:
npx ampx sandbox secret get LOGINWITHAMAZON_CLIENT_ID name: LOGINWITHAMAZON_CLIENT_ID version: 1 value: **** lastUpdated: Fri Nov 17 2023 12:00:00 GMT-0800 (Pacific Standard Time)npx ampx sandbox seed
プロジェクトで定義されたシードスクリプトを使用してサンドボックス環境にデータをシードします。
オプション
--debug(boolean) - コンソールにデバッグログを出力します。[デフォルト: false]--identifier(string) - 異なるサンドボックスを区別するためのオプション識別子。デフォルトはプロセスを実行しているシステムユーザーの名前です。--profile(string) - AWSプロファイル名。-h, --help(boolean) - ヘルプ情報を表示します。
使用方法
npx ampx sandbox seednpx ampx sandbox seed generate-policy
シード操作に必要なIAMポリシーを生成します。
オプション
--debug(boolean) - コンソールにデバッグログを出力します。[デフォルト: false]--identifier(string) - 異なるサンドボックスを区別するためのオプション識別子。デフォルトはプロセスを実行しているシステムユーザーの名前です。--profile(string) - AWSプロファイル名。-h, --help(boolean) - ヘルプ情報を表示します。
使用方法
ポリシーをターミナルに出力:
npx ampx sandbox seed generate-policyポリシーをファイルに保存:
npx ampx sandbox seed generate-policy > seed-policy.jsonnpx ampx generate
Generateはスタンドアロンで使用することは想定されていませんが、フロントエンド開発を補助するいくつかのサブコマンドを提供しています。
以下の各generateサブコマンドには、CloudFormationスタック名または既存のAmplify App IDと対応するgitブランチが必要です:
# CloudFormationスタック名でnpx ampx generate <subcommand> --stack <cloudformation-stack-name># Amplify App IDとgitブランチでnpx ampx generate <subcommand> --app-id <app-id> --branch <git-branch-name>npx ampx generate outputs
バックエンド出力ファイル(例:amplify_outputs.json)をフロントエンドアプリケーションが使用するために生成します。これは個人のクラウドサンドボックス以外の環境の設定ファイルを手動で生成するために使用することを想定しています。例えば、同僚がクラウドサンドボックスで見ているものを確認したい場合や、事前存在する「staging」ブランチを使用してローカルでフロントエンドの変更をデモンストレーションしたい場合に使用できます。
オプション
ampx generateに記載されている必須オプションに加えて:
--profile(string) - AWSプロファイル名。--format(string) - 設定を出力するフォーマット(選択肢:json,dart)。--out-dir(string) - 設定が書き込まれるディレクトリへのパス。指定されていない場合、現在のプロセスの作業ディレクトリにデフォルト設定されます。--outputs-version(string) - 設定のバージョン。バージョン0はクラシックamplify-cliの設定ファイルamplify-configurationを表し、1は新しい設定ファイルamplify_outputsを表します(選択肢:0,1)。
使用方法
上記で述べたように、チームメンバーのクラウドサンドボックスCloudFormationスタックを指定できます:
npx ampx generate outputs --stack amplify-nextamplifygen2-josef-sandbox-ca85e1081bモバイルアプリケーションで使用
sandboxと同様に、--formatを使用して生成された設定ファイルの代替フォーマットを指定できます:
npx ampx generate outputs --stack amplify-nextamplifygen2-josef-sandbox-ca85e1081b --format dart事前存在するブランチで使用
生成したい事前存在するブランチがある場合、--app-idフラグと共に--branchを使用できます:
npx ampx generate outputs --branch staging --app-id <your-amplify-app-id>npx ampx generate graphql-client-code
フロントエンドアプリケーションが使用するGraphQLステートメントと型を生成します。
オプション
npx ampx generate graphql-client-codeで利用可能なパラメータは次のとおりです:
必須パラメータ:
- スタック識別子
--stack(string) - Amplifyバックエンドを含むスタック名。
- プロジェクト識別子
--app-id(string) - プロジェクトのAmplify App ID。--branch(string) - Amplifyプロジェクトのgitブランチ。
オプションパラメータ:
--out(string) - 設定が書き込まれるディレクトリへのパスを指定します。指定されていない場合、現在のプロセス作業ディレクトリにデフォルト設定されます。--format(string) (選択肢:modelgen,graphql-codegen,introspection) - 生成するGraphQLクライアントコードのフォーマットを指定します。--model-target(string) (選択肢:java,swift,javascript,typescript,dart) - modelgenエクスポートターゲットを指定します。--formatパラメータがmodelgenに設定されている場合のみ適用されます。--statement-target(string) (選択肢:javascript,graphql,flow,typescript,angular) - graphql-codegenステートメントエクスポートターゲットを指定します。--formatパラメータがgraphql-codegenに設定されている場合のみ適用されます。--statement-max-depth(integer) - 生成されるGraphQLステートメントの最大深度を指定します。--formatパラメータがgraphql-codegenに設定されている場合のみ適用されます。--type-target(string) (選択肢:json,swift,typescript,flow,scala,flow-modern,angular) - オプションのgraphql-codegenタイプエクスポートターゲットを指定します。--formatパラメータがgraphql-codegenに設定されている場合のみ適用されます。--all(boolean)- 非表示オプションを表示します。--profile(string) - AWSプロファイル名を指定します。--debug(boolean) - コンソールにデバッグログを出力します。--help(boolean) - コマンドに関するヘルプ情報を表示します。
使用方法
Amplify App IDとブランチを使用してGraphQLクライアントコードを生成します。
npx ampx generate graphql-client-code --app-id <your-amplify-app-id> --branch stagingAmplifyに接続されているブランチのGraphQLクライアントコードを生成
場合によっては、最新のローカル変更をデプロイされた別のブランチのバックエンドでテストしたいことがあります。別のブランチの最新デプロイメントのGraphQLクライアントコードファイルを生成する場合は、次のコマンドを実行できます:
npx ampx generate graphql-client-code --branch staging結合された「AmplifyBackendStack」コンストラクトを使用してCDKアプリのコード生成を生成
Amplifyプロジェクトを結合されたCDKコンストラクトでデプロイしたと仮定します。アプリのプロジェクト名(CDKコンストラクトの2番目のパラメータとして指定)とスタック名(npx cdk deployコンテキストの一部として指定)を覚えておく必要があります
import { Construct } from 'constructs';import { App, Backend } from 'aws-cdk-lib/aws-amplify';
export class MyAmplifyStack extends cdk.Stack { constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { super(scope, id, props);
new Backend(this, "Backend", { /* ... */ }); }}CDKプロジェクトのデプロイメントコマンド
npx cdk deployAmplifyコード生成コマンドを実行してGraphQLコード生成を生成:
npx ampx generate graphql-client-code --stack Backend --platform ts --out ./src特定の言語とフォーマットでコード生成を生成
npx ampx generate graphql-client-code --format modelgen --type-target angularサポートされているGraphQLクライアントコードの組み合わせ:
| フォーマット | プラットフォーム | Amplify CLIでのコード生成コマンド | Amplify Gen2でのコマンド | デフォルト生成ファイル/パス |
|---|---|---|---|---|
| イントロスペクションスキーマ | Amplify Javascript | N/A | npx ampx generate graphql-client-code --format introspection | <path_to_app>/ |
| GraphQLコード生成 | Amplify Javascript | amplify codegen | npx ampx generate graphql-client-code --format graphql-codegen --statement-target javascript --out <path_to_app>/src/graphql/ | <path_to_app>/src/graphql/ |
| Modelgen | Amplify Javascript | amplify codegen model | npx ampx generate graphql-client-code --format modelgen --model-target javascript --out <path_to_app>/src/models/ | <path_to_app>/src/models/ |
| Modelgen | Amplify Android | amplify codegen model | npx ampx generate graphql-client-code --format modelgen --model-target java --out <path_to_app/src/main/java/> | <path_to_app>/src/main/java/com/amplifyframework/datastore/generated/model |
| Modelgen | Amplify Swift | amplify codegen model | npx ampx generate graphql-client-code --format modelgen --model-target swift --out <path_to_swift_project>/AmplifyModels | <path_to_swift_project>/AmplifyModels |
| Modelgen | Amplify Flutter | amplify codegen model | npx ampx generate graphql-client-code --format modelgen --model-target dart --out <path_to_flutter_project>/AmplifyModels | <path_to_flutter_project>/AmplifyModels |
npx ampx generate schema-from-database
SQLデータベースからTypeScript データスキーマを生成します。
オプション
--stack(string) - Amplifyバックエンドを含むスタック名。--branch(string) - デプロイされるgitブランチの名前。--app-id(string) - ターゲットAmplifyアプリのアプリID。--out(string) - 生成されたスキーマが書き込まれるディレクトリへのパス [デフォルト:./amplify/data/schema.sql.ts]。--connection-uri-secret(string) - データベース接続URIのAmplifyシークレット名。--ssl-cert-secret(string) - データベースSSL証明書のAmplifyシークレット名。--profile(string) - AWSプロファイル名。
使用方法
npx ampx generate schema-from-database --connection-uri-secret SQL_CONNECTION_STRING --out amplify/data/schema.sql.tsnpx ampx generate forms
バックエンドデータモデルから派生したReactフォームコンポーネントをフロントエンドアプリケーションが使用するために生成します。
オプション
--stack(string) - Amplifyバックエンドを含むスタック名。--branch(string) - デプロイされるgitブランチの名前。--app-id(string) - ターゲットAmplifyアプリのアプリID。--out-dir(string) - 生成されたフォームが書き込まれるディレクトリへのパス。デフォルトは./ui-componentsディレクトリです。--models(array) - 生成するモデル名。--profile(string) - AWSプロファイル名。
使用方法
npx ampx generate forms --branch $BRANCH_NAME --app-id $AWS_APP_ID --out-dir ./srcnpx ampx info
Amplifyの問題をトラブルシューティングするためのシステム、バイナリ、npmパッケージ、環境変数に関する情報を生成します。
npx ampx infoこのコマンドは次のようにシステム情報を出力します:
System: OS: macOS 14.3.1 CPU: (10) arm64 Apple M1 Pro Memory: 165.89 MB / 32.00 GB Shell: /opt/homebrew/bin/fishBinaries: Node: 20.12.2 - ~/Library/Caches/fnm_multishells/1063_1714573452292/bin/node Yarn: 1.22.19 - ~/Library/Caches/fnm_multishells/1063_1714573452292/bin/yarn npm: 10.5.0 - ~/Library/Caches/fnm_multishells/1063_1714573452292/bin/npm pnpm: 9.0.5 - ~/Library/Caches/fnm_multishells/1063_1714573452292/bin/pnpmNPM Packages: @aws-amplify/backend: 1.0.0 @aws-amplify/backend-cli: 1.0.1 aws-amplify: 6.2.0 aws-cdk: 2.139.1 aws-cdk-lib: 2.139.1 typescript: 5.4.5AWS environment variables: AWS_PROFILE = amplify-admin AWS_STS_REGIONAL_ENDPOINTS = regional AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1 AWS_SDK_LOAD_CONFIG = 1No CDK environment variablesnpx ampx pipeline-deploy
指定されたAmplifyアプリとブランチのCI/CDパイプラインでAmplifyプロジェクトをデプロイします。
オプション
--branch(string) - デプロイされるgitブランチの名前。--app-id(string) - ターゲットAmplifyアプリのアプリID。--outputs-out-dir(string) - クライアント設定ファイルが書き込まれるディレクトリへのパス。指定されていない場合、現在のプロセスの作業ディレクトリにデフォルト設定されます。--outputs-version(string) - 設定のバージョン。バージョン0はクラシックamplify-cliの設定ファイルamplify-configurationを表し、1は新しい設定ファイルamplify_outputsを表します(選択肢:0,1)。
使用方法
npx ampx pipeline-deploy --branch $BRANCH_NAME --app-id $AWS_APP_ID