環境変数 - AWS Amplify ホスティング

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

環境変数

環境変数は、アプリケーションの設定に追加して Amplify ホスティングで使用できるようにするキーと値のペアです。ベストプラクティスとして、環境変数を使用してアプリケーションの設定データを公開することができます。追加した環境変数はすべて、不正アクセスを防ぐために暗号化されています。

Amplify は、作成する環境変数に次の制約を適用します。

  • Amplify では、AWSプレフィックス付きの環境変数名を作成することはできません。このプレフィックスは Amplify の内部使用のみを目的としています。

  • 環境変数の値は 5500 文字を超えることはできません。

重要

シークレットの保存に環境変数を使用しないでください。Gen 2 アプリの場合は、Amplify コンソールのシークレット管理機能を使用します。詳細については、Amplify ドキュメントの「シークレットと環境変数」を参照してください。Gen 1 アプリケーションの場合、 AWS Systems Manager Parameter Store を使用して作成された環境シークレットにシークレットを保存します。詳細については、「環境シークレットの管理」を参照してください。

Amplify の環境変数

以下の環境変数は、Amplifyコンソールからデフォルトでアクセス可能です。

変数名 説明 値の例

_BUILD_TIMEOUT

ビルドのタイムアウト時間 (分単位)。

30

_LIVE_UPDATES

ツールは最新バージョンにアップグレードされます。

[{"name":"Amplify CLI","pkg":"@aws-amplify/cli","type":"npm","version":"latest"}]

USER_DISABLE_TESTS

ビルド中はテストステップはスキップされます。アプリ内のすべてのブランチまたは特定のブランチのテストを無効にできます。

この環境変数は、ビルドフェーズ中にテストを実行するアプリに使用されます。この変数の設定の詳細については、「テストを無効にする」を参照してください。

true

AWS_APP_ID

現在のビルドのアプリ ID

abcd1234

AWS_BRANCH

現在のビルドのブランチ名

main, develop, beta, v2.0

AWS_BRANCH_ARN

現在のビルドのブランチ Amazon リソースネーム (ARN)。

aws:arn:amplify:us-west-2:123456789012:appname/branch/...

AWS_CLONE_URL

git リポジトリの内容を取得するために使用されるクローン URL

git@github.com:<user-name>/<repo-name>.git

AWS_COMMIT_ID

現在のビルドのコミット ID

再ビルドの「HEAD」

abcd1234

AWS_JOB_ID

現在のビルドのジョブ ID。

これには、「0」のパディングが含まれるため、長さは常に同じになります。

0000000001

AWS_PULL_REQUEST_ID

プルリクエストウェブプレビュービルドのプルリクエスト ID。

この環境変数は、 をリポジトリプロバイダー AWS CodeCommit として使用する場合は使用できません。

1

AWS_PULL_REQUEST_SOURCE_BRANCH

Amplify コンソールでアプリケーションブランチに送信されるプルリクエストプレビューの機能ブランチの名前。

featureA

AWS_PULL_REQUEST_DESTINATION_BRANCH

機能ブランチのプルリクエストの送信先の Amplify コンソールのアプリケーションブランチの名前。

main

AMPLIFY_AMAZON_CLIENT_ID

Amazon クライアント ID

123456

AMPLIFY_AMAZON_CLIENT_SECRET

Amazon クライアントシークレット

example123456

AMPLIFY_FACEBOOK_CLIENT_ID

Facebook クライアント ID

123456

AMPLIFY_FACEBOOK_CLIENT_SECRET

Facebook クライアントシークレット

example123456

AMPLIFY_GOOGLE_CLIENT_ID

Google クライアント ID

123456

AMPLIFY_GOOGLE_CLIENT_SECRET

Google クライアントシークレット

example123456

AMPLIFY_DIFF_DEPLOY

差分ベースのフロントエンドデプロイを有効または無効にします。詳細については、「差分ベースのフロントエンドビルドとデプロイを有効または無効にする」を参照してください。

true

AMPLIFY_DIFF_DEPLOY_ROOT

差分ベースのフロントエンドデプロイ比較に使用するパスで、リポジトリのルートを基準にしています。

dist

AMPLIFY_DIFF_BACKEND

差分ベースのバックエンドビルドを有効または無効にします。これは Gen 1 アプリケーションにのみ適用されます。詳細については、「Gen 1 アプリケーションの差分ベースのバックエンドビルドを有効または無効にする」を参照してください。

true

AMPLIFY_BACKEND_PULL_ONLY

Amplify は、この環境変数を管理します。これは Gen 1 アプリケーションにのみ適用されます。詳細については、「既存のフロントエンドを編集して、別のバックエンドを指すようにします」を参照してください。

true

AMPLIFY_BACKEND_APP_ID

Amplify は、この環境変数を管理します。これは Gen 1 アプリケーションにのみ適用されます。詳細については、「既存のフロントエンドを編集して、別のバックエンドを指すようにします」を参照してください。

abcd1234

AMPLIFY_SKIP_BACKEND_BUILD

ビルド仕様にバックエンドセクションがなく、バックエンドビルドを無効にする場合は、この環境変数をtrueに設定してください。これは Gen 1 アプリケーションにのみ適用されます。

true

AMPLIFY_ENABLE_DEBUG_OUTPUT

この変数を trueに設定すると、スタックトレースがログに出力されます。これは、バックエンドビルドエラーのデバッグに役立ちます。

true

AMPLIFY_MONOREPO_APP_ROOT

monorepo アプリのアプリルートを指定するために使用するパスで、リポジトリのルートを基準にしています。

apps/react-app

AMPLIFY_USERPOOL_ID

認証用にインポートされた Amazon Cognito ユーザープールの ID

us-west-2_example

AMPLIFY_WEBCLIENT_ID

ウェブアプリケーションが使用するアプリケーションクライアントの ID。

アプリケーションクライアントは、AMPLIFY_USERPOOL_ID の環境変数で指定された Amazon Cognito ユーザープールにアクセスできるように設定する必要があります。

123456

AMPLIFY_NATIVECLIENT_ID

ネイティブアプリケーションが使用するアプリケーションクライアントの ID。

アプリケーションクライアントは、AMPLIFY_USERPOOL_ID の環境変数で指定された Amazon Cognito ユーザープールにアクセスできるように設定する必要があります。

123456

AMPLIFY_IDENTITYPOOL_ID

Amazon CognitoアイデンティティプールのID。

example-identitypool-id

AMPLIFY_PERMISSIONS_BOUNDARY_ARN

Amplify で作成されたすべてのIAM ロールのアクセス許可の境界として使用する IAM ポリシーの ARN です。詳細については、「Amplify生成ロールの IAM アクセス許可の境界」を参照してください。

arn:aws:iam::123456789012:policy/example-policy

AMPLIFY_DESTRUCTIVE_UPDATES

この環境変数を true に設定すると、データ損失を引き起こす可能性のあるスキーマ操作で GraphQL API を更新できます。

true

注記

AMPLIFY_AMAZON_CLIENT_ID および AMPLIFY_AMAZON_CLIENT_SECRET環境変数は OAuth トークンであり、 AWS アクセスキーおよびシークレットキーではありません。

環境変数を設定する

Amplify コンソールでアプリケーションの環境変数を設定するには、以下の手順に従います。

注記

環境変数はアプリが継続的なデプロイ用に設定され、gitリポジトリに接続されている場合にのみ、Amplify コンソールのアプリ設定メニューに表示されます。この種類のデプロイの手順については、「既存のコードを使い始める」を参照してください。

環境変数の設定方法
  1. にサインイン AWS Management Console し、Amplify コンソール を開きます。

  2. Amplify コンソールで、ホスティング を選択し、環境変数 を選択します。

  3. 環境変数」ページで、[変数の管理] を選択します。

  4. 変数 にキーを入力します。[値]に値を入力します。デフォルトでは、環境変数は、Amplify によってすべてのブランチに適用されるため、新しいブランチへの接続時に変数を再入力する必要はありません。

  5. (オプション) 環境変数をブランチ専用にカスタマイズするには、以下のようにブランチの上書きを追加します。

    1. [アクション]、[変数の上書きを追加する] の順に選択します。

    2. これで、ブランチに固有の一連の環境変数ができました。

  6. [保存] を選択します。

ビルド時に環境変数にアクセスする

ビルド中に環境変数にアクセスするには、ビルドコマンドに環境変数が含まれるようにビルド設定を編集します。

ビルド設定内の各コマンドは Bash シェル内で実行されます。Bash での環境変数の操作について詳しくは、GNU Bash マニュアルの「シェル拡張」を参照してください。

環境変数を含むようにビルド設定を編集するには:
  1. にサインイン AWS Management Console し、Amplify コンソール を開きます。

  2. Amplify コンソールで、ホスティング を選択し、ビルド設定 を選択します。

  3. アプリビルド仕様」セクションで、「編集」を選択します。

  4. 環境変数をビルドコマンドに追加します。これで、次回のビルド時に自分の環境変数にアクセスできるようになります。この例では npm の動作 (BUILD_ENV) を変更し、外部サービスの API トークン (TWITCH_CLIENT_ID) を後で使用できるように環境ファイルに追加します。

    build: commands: - npm run build:$BUILD_ENV - echo "TWITCH_CLIENT_ID=$TWITCH_CLIENT_ID" >> backend/.env
  5. [保存] を選択します。

環境変数をサーバーサイドランタイムからアクセスできるようにします。

Next.js サーバーコンポーネントは、デフォルトではアプリの環境変数にアクセスできません。この動作は、ビルドフェーズでアプリケーションが使用する環境変数に保存されているシークレットを保護するためのものです。

特定の環境変数を Next.js にアクセスできるようにするには、Amplify ビルド仕様ファイルを変更して Next.js が認識する環境ファイル内の環境変数を設定する必要があります。これにより、Amplify はアプリケーションをビルドする前に環境変数をロードできます。ビルド仕様の変更について詳しくは、ビルドコマンドセクションの環境変数の追加方法の例を参照してください。

ソーシャルサインインの認証パラメータを使用して新しいバックエンド環境を作成します。

ブランチをアプリに接続するには
  1. にサインイン AWS Management Console し、Amplify コンソール を開きます。

  2. ブランチをアプリケーションに接続する手順は、ブランチを新しいアプリに接続するのか、既存のアプリに接続するのかによって異なります。

    • ブランチを新しいアプリに接続する

      1. ビルド設定ページで、「このブランチで使用するバックエンド環境を選択する」セクションを探します。[環境] で [新しい環境を作成] を選択し、バックエンド環境の名前を入力します。次のスクリーンショットは、ビルド設定ページの「このブランチで使用するバックエンド環境を選択」セクションで、backendバックエンド環境名を入力したところを示しています。

        Amplify コンソールのバックエンドデプロイセクションのスクリーンショット。
      2. ビルド設定ページの「詳細設定」セクションを展開し、ソーシャルログインキー用の環境変数を追加します。例えば、AMPLIFY_FACEBOOK_CLIENT_SECRETは有効な環境変数です。デフォルトで使用できる Amplify システム環境変数のリストについては、Amplify の環境変数の表を参照してください。

    • ブランチを既存のアプリに接続する

      1. 新しいブランチを既存のアプリに接続する場合は、ブランチを接続する前にソーシャルサインインの環境変数を設定します。ナビゲーションペインで、[アプリ設定]、[環境変数] を選択します。

      2. [環境変数] セクションで、[編集] を選択します。

      3. 変数の管理」セクションで、「変数を追加」を選択します。

      4. [変数 (キー)] には、クライアント ID を入力します。[] にはクライアントシークレットを入力します。

      5. [保存] を選択します。

フロントエンドフレームワーク環境変数

独自の環境変数をサポートするフロントエンドフレームワークを使用してアプリを開発している場合、これらは Amplify コンソールで設定する環境変数と同じではないことを理解することが重要です。例えば、React (プレフィックス REACT_APP) や Gatsby (プレフィックス GATSBY) では、ランタイム環境変数を作成して、それらのフレームワークがフロントエンドのプロダクションビルドに自動的にバンドルすることができます。これらの環境変数を使用して値を保存した場合の効果を理解するには、使用しているフロントエンドフレームワークのドキュメントを参照してください。

API キーなどの機密性の高い値を、フロントエンドフレームワークのプレフィックスが付いた環境変数内に保存することはベストプラクティスではないため、あまりお勧めしません。この目的で Amplify のビルド時環境変数を使用する例については、ビルド時に環境変数にアクセスするを参照してください。

環境シークレットの管理

Amplify Gen 2 のリリースにより、環境シークレットのワークフローが合理化され、Amplify コンソールでシークレットと環境変数の管理が一元化されます。Amplify Gen 2 アプリのシークレットを設定してアクセスする手順については、Amplify ドキュメントの「シークレットと環境変数」を参照してください。

Gen 1 アプリケーションの環境シークレットは環境変数に似ていますが、暗号化できる AWS Systems Manager Parameter Store のキーと値のペアです。Amplify のAppleのプライベートキーでサインインするなど、一部の値は暗号化する必要があります。

Gen 1 アプリケーションの環境シークレットを設定してアクセスする

AWS Systems Manager コンソールを使用して Gen 1 Amplify アプリの環境シークレットを設定するには、以下の手順に従います。

環境シークレットを設定するには
  1. にサインイン AWS Management Console し、AWS Systems Manager コンソール を開きます。

  2. ナビゲーションペインで [アプリケーション管理] を選択し、[パラメータストア] を選択します。

  3. AWS Systems Manager Parameter Storeページで、[パラメータの作成] を選択します。

  4. [パラメータの作成] ページの [パラメータの詳細] セクションで、以下を実行します。

    1. [名前] には、/amplify/{your_app_id}/{your_backend_environment_name}/{your_parameter_name}形式でパラメータを入力します。

    2. [Type] (タイプ) で、SecureString を選択します。

    3. KMS キーソースには、[現在のアカウント] を選択して、アカウントのデフォルトキーを使用します。

    4. [] には、暗号化するシークレット値を入力します。

  5. [パラメータの作成]を選択します。

注記

Amplify は、特定の環境ビルドの/amplify/{your_app_id}/{your_backend_environment_name}にあるキーにのみアクセスできます。Amplify が値を復号 AWS KMS key できるようにするには、デフォルトを指定する必要があります。

環境シークレットにアクセスする

ビルド中に Gen 1 アプリケーションの環境シークレットにアクセスすることは、環境シークレットが 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 でサインイン」

com.yourapp.auth

AMPLIFY_SIWA_TEAM_ID

「Apple チーム ID でサインイン」

ABCD123

AMPLIFY_SIWA_KEY_ID

「Apple キー ID でサインイン」

ABCD123

AMPLIFY_SIWA_PRIVATE_KEY

「Apple プライベートキーでサインイン」

-----プライベートキーを開始-----

****......

-----プライベートキーを終了-----