翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
環境変数
環境変数は、アプリケーションの設定に追加して Amplify Hosting で使用できるようにするキーと値のペアです。ベストプラクティスとして、環境変数を使用してアプリケーションの設定データを公開することができます。追加した環境変数はすべて、不正アクセスを防ぐために暗号化されています。
Amplify では、 AWS
プレフィックスを使用して環境変数を作成することはできません。このプレフィックスは Amplify の内部使用のみを目的としています。
重要
シークレットの保存に環境変数を使用しないでください。 AWS Systems Manager Parameter Store を使用して作成された環境シークレットにシークレットを保存します。詳細については、「環境シークレット」を参照してください。
Amplify の環境変数
以下の環境変数は、Amplifyコンソールからデフォルトでアクセス可能です。
変数名 | 説明 | 値の例 |
---|---|---|
_BUILD_TIMEOUT |
ビルドのタイムアウト時間 (分単位)。 |
|
_LIVE_UPDATES |
ツールは最新バージョンにアップグレードされます。 |
|
USER_DISABLE_TESTS |
ビルド中はテストステップはスキップされます。アプリ内のすべてのブランチまたは特定のブランチのテストを無効にできます。 この環境変数は、ビルドフェーズ中にテストを実行するアプリに使用されます。この変数の設定の詳細については、「テストを無効にする」を参照してください。 |
|
AWS_APP_ID |
現在のビルドのアプリ ID |
|
AWS_BRANCH |
現在のビルドのブランチ名 |
|
AWS_BRANCH_ARN |
現在のビルドのブランチ Amazon リソースネーム (ARN)。 |
|
AWS_CLONE_URL |
git リポジトリの内容を取得するために使用されるクローン URL |
|
AWS_COMMIT_ID |
現在のビルドのコミット ID 再ビルドの「HEAD」 |
|
AWS_JOB_ID |
現在のビルドのジョブ ID。 これには、「0」のパディングが含まれるため、長さは常に同じになります。 |
|
AWS_PULL_REQUEST_ID |
プルリクエストウェブプレビュービルドのプルリクエスト ID。 この環境変数は、 をリポジトリプロバイダー AWS CodeCommit として使用する場合は使用できません。 |
|
AWS_PULL_REQUEST_SOURCE_BRANCH |
Amplify コンソールでアプリケーションブランチに送信されるプルリクエストプレビューの機能ブランチの名前。 |
|
AWS_PULL_REQUEST_DESTINATION_BRANCH |
特徴量ブランチプルリクエストの送信先の Amplify コンソールのアプリケーションブランチの名前。 |
|
AMPLIFY_AMAZON_CLIENT_ID |
Amazon クライアント ID |
|
AMPLIFY_AMAZON_CLIENT_SECRET |
Amazon クライアントシークレット |
|
AMPLIFY_FACEBOOK_CLIENT_ID |
Facebook クライアント ID |
|
AMPLIFY_FACEBOOK_CLIENT_SECRET |
Facebook クライアントシークレット |
|
AMPLIFY_GOOGLE_CLIENT_ID |
Google クライアント ID |
|
AMPLIFY_GOOGLE_CLIENT_SECRET |
Google クライアントシークレット |
|
AMPLIFY_DIFF_DEPLOY |
差分ベースのフロントエンドデプロイを有効または無効にします。詳細については、「差分ベースのフロントエンドビルドとデプロイを有効または無効にする」を参照してください。 |
|
AMPLIFY_DIFF_DEPLOY_ROOT |
差分ベースのフロントエンドデプロイ比較に使用するパスで、リポジトリのルートを基準にしています。 |
|
AMPLIFY_DIFF_BACKEND |
差分ベースのバックエンドビルドを有効または無効にします。これは Gen 1 アプリにのみ適用されます。詳細については、「Gen 1 アプリケーションの差分ベースのバックエンドビルドを有効または無効にする」を参照してください。 |
|
AMPLIFY_BACKEND_PULL_ONLY |
Amplify は、この環境変数を管理します。これは Gen 1 アプリにのみ適用されます。詳細については、「既存のフロントエンドを編集して、別のバックエンドを指すようにします」を参照してください。 |
|
AMPLIFY_BACKEND_APP_ID |
Amplify は、この環境変数を管理します。これは Gen 1 アプリにのみ適用されます。詳細については、「既存のフロントエンドを編集して、別のバックエンドを指すようにします」を参照してください。 |
|
AMPLIFY_SKIP_BACKEND_BUILD |
ビルド仕様にバックエンドセクションがなく、バックエンドビルドを無効にする場合は、この環境変数を |
|
AMPLIFY_ENABLE_DEBUG_OUTPUT |
この変数を |
|
AMPLIFY_MONOREPO_APP_ROOT |
monorepo アプリのアプリルートを指定するために使用するパスで、リポジトリのルートを基準にしています。 |
|
AMPLIFY_USERPOOL_ID |
認証用にインポートされた Amazon Cognito ユーザープールの ID |
|
AMPLIFY_WEBCLIENT_ID |
Web アプリケーションが使用するアプリケーションクライアントの ID。 アプリケーションクライアントは、AMPLIFY_USERPOOL_ID の環境変数で指定された Amazon Cognito ユーザープールにアクセスできるように設定する必要があります。 |
|
AMPLIFY_NATIVECLIENT_ID |
ネイティブアプリケーションが使用するアプリケーションクライアントの ID。 アプリケーションクライアントは、AMPLIFY_USERPOOL_ID の環境変数で指定された Amazon Cognito ユーザープールにアクセスできるように設定する必要があります。 |
|
AMPLIFY_IDENTITYPOOL_ID |
Amazon CognitoアイデンティティプールのID。 |
|
AMPLIFY_PERMISSIONS_BOUNDARY_ARN |
Amplify で作成されたすべてのIAM ロールのアクセス許可の境界として使用する IAM ポリシーの ARN です。詳細については、「Amplify生成ロールの IAM アクセス許可の境界」 |
|
AMPLIFY_DESTRUCTIVE_UPDATES |
この環境変数を true に設定すると、データ損失を引き起こす可能性のあるスキーマ操作で GraphQL API を更新できます。 |
|
注記
AMPLIFY_AMAZON_CLIENT_ID
および AMPLIFY_AMAZON_CLIENT_SECRET
環境変数は OAuth トークンであり、 AWS アクセスキーおよびシークレットキーではありません。
環境変数を設定する
Amplify コンソールでアプリケーションの環境変数を設定するには、以下の手順に従います。
注記
環境変数は、アプリが継続的なデプロイ用に設定され、gitリポジトリに接続されている場合にのみ、Amplify コンソールのアプリ設定メニューに表示されます。この種類のデプロイの手順については、「既存のコードを使い始める」を参照してください。
環境変数の設定方法
-
にサインイン AWS Management Console し、Amplify コンソール
を開きます。 -
Amplify コンソールで、ホスティング を選択し、環境変数 を選択します。
-
「環境変数」ページで、[変数の管理] を選択します。
-
変数 にキーを入力します。[値]に値を入力します。デフォルトでは、環境変数は、Amplify によってすべてのブランチに適用されるため、新しいブランチへの接続時に変数を再入力する必要はありません。
-
(オプション) 環境変数をブランチ専用にカスタマイズするには、以下のようにブランチの上書きを追加します。
-
[アクション]、[変数の上書きを追加する] の順に選択します。
-
これで、ブランチに固有の一連の環境変数ができました。
-
-
[保存] を選択します。
ビルド時に環境変数にアクセスする
ビルド中に環境変数にアクセスするには、ビルドコマンドに環境変数が含まれるようにビルド設定を編集します。
ビルド設定内の各コマンドは Bash シェル内で実行されます。Bash での環境変数の操作について詳しくは、GNU Bash マニュアルの「シェル拡張
環境変数を含むようにビルド設定を編集するには:
-
にサインイン AWS Management Console し、Amplify コンソール
を開きます。 -
Amplify コンソールで、ホスティング を選択し、ビルド設定 を選択します。
-
「アプリビルド仕様」セクションで、「編集」を選択します。
-
環境変数をビルドコマンドに追加します。これで、次回のビルド時に自分の環境変数にアクセスできるようになります。この例では npm の動作(BUILD_ENV)を変更し、外部サービスの API トークン(TWITCH_CLIENT_ID)を後で使用できるように環境ファイルに追加します。
build: commands: - npm run build:$BUILD_ENV - echo "TWITCH_CLIENT_ID=$TWITCH_CLIENT_ID" >> backend/.env
-
[保存] を選択します。
環境変数をサーバーサイドランタイムからアクセスできるようにします。
Next.js サーバーコンポーネントは、デフォルトではアプリの環境変数にアクセスできません。この動作は、ビルドフェーズでアプリケーションが使用する環境変数に保存されているシークレットを保護するためのものです。
特定の環境変数を Next.js にアクセスできるようにするには、Amplify ビルド仕様ファイルを変更して Next.js が認識する環境ファイル内の環境変数を設定する必要があります。これにより、Amplify はアプリケーションをビルドする前に環境変数をロードできます。ビルド仕様の変更について詳しくは、ビルドコマンドセクションの環境変数の追加方法の例を参照してください。
ソーシャルサインインの認証パラメータを使用して新しいバックエンド環境を作成します。
ブランチをアプリに接続するには
-
にサインイン AWS Management Console し、Amplify コンソール
を開きます。 -
ブランチをアプリケーションに接続する手順は、ブランチを新しいアプリに接続するのか、既存のアプリに接続するのかによって異なります。
-
ブランチを新しいアプリに接続する
-
ビルド設定ページで、「このブランチで使用するバックエンド環境を選択する」セクションを探します。[環境] で [新しい環境を作成] を選択し、バックエンド環境の名前を入力します。次のスクリーンショットは、ビルド設定ページの「このブランチで使用するバックエンド環境を選択」セクションで、
backend
バックエンド環境名を入力したところを示しています。 -
ビルド設定ページの「詳細設定」セクションを展開し、ソーシャルログインキー用の環境変数を追加します。例えば、
AMPLIFY_FACEBOOK_CLIENT_SECRET
は有効な環境変数です。デフォルトで使用できる Amplify システム環境変数のリストについては、Amplify の環境変数の表を参照してください。
-
-
ブランチを既存のアプリに接続する
-
新しいブランチを既存のアプリに接続する場合は、ブランチを接続する前にソーシャルサインインの環境変数を設定します。ナビゲーションペインで、[アプリ設定]、[環境変数] を選択します。
-
[環境変数] セクションで、[編集] を選択します。
-
「変数の管理」セクションで、「変数を追加」を選択します。
-
[変数 (キー)] には、クライアント ID を入力します。[値] にはクライアントシークレットを入力します。
-
[保存] を選択します。
-
-
フロントエンドフレームワーク環境変数
独自の環境変数をサポートするフロントエンドフレームワークを使用してアプリを開発している場合、これらは Amplify コンソールで設定する環境変数と同じではないことを理解することが重要です。例えば、React (プレフィックス REACT_APP) や Gatsby (プレフィックス GATSBY) では、ランタイム環境変数を作成して、それらのフレームワークがフロントエンドのプロダクションビルドに自動的にバンドルすることができます。これらの環境変数を使用して値を保存した場合の効果を理解するには、使用しているフロントエンドフレームワークのドキュメントを参照してください。
API キーなどの機密性の高い値を、フロントエンドフレームワークのプレフィックスが付いた環境変数内に保存することはベストプラクティスではないため、あまりお勧めしません。この目的で Amplify のビルド時環境変数を使用する例については、ビルド時に環境変数にアクセスするを参照してください。
環境シークレット
環境シークレットは環境変数に似ていますが、暗号化できる AWS Systems Manager (SSM) Parameter Store のキーと値のペアです。Amplify のAppleのプライベートキーでサインインするなど、一部の値は暗号化する必要があります。
環境シークレットの設定
AWS Systems Manager コンソールを使用して Amplify アプリの環境シークレットを設定するには、以下の手順に従います。
環境シークレットを設定するには
-
にサインイン AWS Management Console し、AWS Systems Manager コンソール
を開きます。 -
ナビゲーションペインで [アプリケーション管理] を選択し、[パラメータストア] を選択します。
-
AWS Systems Manager Parameter Storeページで、[パラメータの作成] を選択します。
-
[パラメータの作成] ページの [パラメータの詳細] セクションで、以下を実行します。
-
[名前] には、
/amplify/{your_app_id}/{your_backend_environment_name}/{your_parameter_name}
形式でパラメータを入力します。 -
[Type] (タイプ) で、SecureString を選択します。
-
KMS キーソースには、[現在のアカウント] を選択して、アカウントのデフォルトキーを使用します。
-
[値] には、暗号化するシークレット値を入力します。
-
-
[パラメータの作成]を選択します。
注記
Amplify は、特定の環境ビルドの/amplify/{your_app_id}/{your_backend_environment_name}
にあるキーにのみアクセスできます。Amplify が値を復号 AWS KMS key できるようにするには、デフォルトを指定する必要があります。
環境シークレットにアクセスする
ビルド中の環境シークレットへのアクセスは環境変数へのアクセスと似ていますが、環境シークレットが JSON 文字列としてprocess.env.secrets
に保存される点が異なります。
Amplify 環境のシークレット
Systems Manager パラメータをフォーマット/amplify/{your_app_id}/{your_backend_environment_name}/AMPLIFY_SIWA_CLIENT_ID
で指定します。
Amplify コンソール内では、デフォルトでアクセス可能な以下の環境シークレットを使用することができます。
変数名 | 説明 | 値の例 |
---|---|---|
AMPLIFY_SIWA_CLIENT_ID |
「Apple クライアント ID でサインイン」 |
|
AMPLIFY_SIWA_TEAM_ID |
「Apple チーム ID でサインイン」 |
|
AMPLIFY_SIWA_KEY_ID |
「Apple キー ID でサインイン」 |
|
AMPLIFY_SIWA_PRIVATE_KEY |
「Apple プライベートキーでサインイン」 |
-----プライベートキーを開始----- ****...... -----プライベートキーを終了----- |