

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

# Amplify アプリケーションでの環境変数の使用
<a name="environment-variables"></a>

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

Amplify は、作成する環境変数に次の制約を適用します。
+ Amplify では、`AWS` プレフィックスを使用して環境変数名を作成することはできません。このプレフィックスは Amplify の内部でのみ使用されるよう予約されています。
+ 環境変数の値は 5500 文字を超えることはできません。

**重要**  
シークレットの保存に環境変数を使用しないでください。Gen 2 アプリの場合は、Amplify コンソールの **[シークレット管理]** 機能を使用します。詳細については、「*Amplify ドキュメント*」の「[シークレットと環境変数](https://docs.amplify.aws/react/deploy-and-host/fullstack-branching/secrets-and-vars/)」を参照してください。Gen 1 アプリの場合、Parameter Store AWS Systems Manager を使用して作成された環境シークレットにシークレットを保存します。詳細については、「[環境シークレットの管理](environment-secrets.md)」を参照してください。

## Amplify の環境変数のリファレンス
<a name="amplify-console-environment-variables"></a>

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


****  

| 変数名 | 説明 | 値の例 | 
| --- | --- | --- | 
|  \$1BUILD\$1TIMEOUT  |  ビルドのタイムアウト時間 (分単位)。 最小値は 5 です。 最大値は 120 です。  |  `30`  | 
|  \$1LIVE\$1UPDATES  |  ツールは最新バージョンにアップグレードされます。  |  `[{"name":"Amplify CLI","pkg":"@aws-amplify/cli","type":"npm","version":"latest"}]`  | 
|  USER\$1DISABLE\$1TESTS  |  ビルド中はテストステップはスキップされます。アプリ内のすべてのブランチまたは特定のブランチのテストを無効にできます。 この環境変数は、ビルドフェーズ中にテストを実行するアプリに使用されます。この変数の設定の詳細については、「[Amplify アプリケーションまたはブランチのテストをオフにする](running-tests.md#disabling-tests)」を参照してください。  |  `true`  | 
|  AWS\$1APP\$1ID  |  現在のビルドのアプリ ID  |  `abcd1234`  | 
|  AWS\$1BRANCH  |  現在のビルドのブランチ名  |  `main`, `develop`, `beta`, `v2.0`  | 
|  AWS\$1BRANCH\$1ARN  |  現在のビルドのブランチ Amazon リソースネーム (ARN)。  | `aws:arn:amplify:us-west-2:123456789012:appname/branch/... ` | 
|  AWS\$1CLONE\$1URL  |  git リポジトリの内容を取得するために使用されるクローン URL  |   `git@github.com:<user-name>/<repo-name>.git`   | 
|  AWS\$1COMMIT\$1ID  |  現在のビルドのコミット ID 再ビルドの「HEAD」  |  `abcd1234`  | 
|  AWS\$1JOB\$1ID  |  現在のビルドのジョブ ID。 これには、「0」のパディングが含まれるため、長さは常に同じになります。  |  `0000000001`  | 
|  AWS\$1PULL\$1REQUEST\$1ID  |  プルリクエスト Web プレビュービルドのプルリクエスト ID。 この環境変数は、 をリポジトリプロバイダー AWS CodeCommit として使用する場合は使用できません。  |  `1`  | 
|  AWS\$1PULL\$1REQUEST\$1SOURCE\$1BRANCH  |  Amplify コンソールのアプリケーションブランチに送信されるプルリクエストプレビューの機能ブランチの名前。  |  `featureA`  | 
|  AWS\$1PULL\$1REQUEST\$1DESTINATION\$1BRANCH  |  機能ブランチのプルリクエストが送信される Amplify コンソール内のアプリケーションブランチの名前。  |  `main`  | 
|  AMPLIFY\$1AMAZON\$1CLIENT\$1ID  |  Amazon クライアント ID  |  `123456`  | 
|  AMPLIFY\$1AMAZON\$1CLIENT\$1SECRET  |  Amazon クライアントシークレット  |  `example123456`  | 
|  AMPLIFY\$1FACEBOOK\$1CLIENT\$1ID  |  Facebook クライアント ID  |  `123456`  | 
|  AMPLIFY\$1FACEBOOK\$1CLIENT\$1SECRET  |  Facebook クライアントシークレット  |  `example123456`  | 
|  AMPLIFY\$1GOOGLE\$1CLIENT\$1ID  |  Google クライアント ID  |  `123456`  | 
|  AMPLIFY\$1GOOGLE\$1CLIENT\$1SECRET  |  Google クライアントシークレット  |  `example123456`  | 
|  AMPLIFY\$1DIFF\$1DEPLOY  |  差分ベースのフロントエンドデプロイを有効または無効にします。詳細については、「[差分ベースのフロントエンドビルドとデプロイの設定](edit-build-settings.md#enable-diff-deploy)」を参照してください。  |  `true`  | 
|  AMPLIFY\$1DIFF\$1DEPLOY\$1ROOT  |  差分ベースのフロントエンドデプロイ比較に使用するパスで、リポジトリのルートを基準にしています。  | `dist` | 
|  AMPLIFY\$1DIFF\$1BACKEND  |  差分ベースのバックエンドビルドを有効または無効にします。これは Gen 1 アプリにのみ適用されます。詳細については、[Gen 1 アプリケーションの diff ベースのバックエンドビルドの設定](edit-build-settings.md#enable-diff-backend)を参照してください。  | `true` | 
|  AMPLIFY\$1BACKEND\$1PULL\$1ONLY  |  Amplify は、この環境変数を管理します。これは Gen 1 アプリにのみ適用されます。詳細については、[既存のフロントエンドを編集して、別のバックエンドを指すようにします](reuse-backends.md#reuse-backends-edit-existing)を参照してください。  | `true` | 
|  AMPLIFY\$1BACKEND\$1APP\$1ID  |  Amplify は、この環境変数を管理します。これは Gen 1 アプリにのみ適用されます。詳細については、[既存のフロントエンドを編集して、別のバックエンドを指すようにします](reuse-backends.md#reuse-backends-edit-existing)を参照してください。  | `abcd1234` | 
|  AMPLIFY\$1SKIP\$1BACKEND\$1BUILD  |  ビルド仕様にバックエンドセクションがなく、バックエンドビルドを無効にする場合は、この環境変数を`true`に設定してください。これは Gen 1 アプリにのみ適用されます。  | `true` | 
|  AMPLIFY\$1ENABLE\$1DEBUG\$1OUTPUT  |  この変数を `true` に設定して、スタックトレースをログに出力します。これは、バックエンドビルドエラーのデバッグに役立ちます。  | `true` | 
|  AMPLIFY\$1MONOREPO\$1APP\$1ROOT  |  monorepo アプリのアプリルートを指定するために使用するパスで、リポジトリのルートを基準にしています。  | `apps/react-app` | 
|  AMPLIFY\$1USERPOOL\$1ID  |  認証用にインポートされた Amazon Cognito ユーザープールの ID  |  `us-west-2_example`  | 
|  AMPLIFY\$1WEBCLIENT\$1ID  |  ウェブアプリケーションが使用するアプリケーションクライアントの ID。 アプリケーションクライアントは、AMPLIFY\$1USERPOOL\$1ID の環境変数で指定された Amazon Cognito ユーザープールにアクセスできるように設定する必要があります。  | `123456` | 
|  AMPLIFY\$1NATIVECLIENT\$1ID  |  ネイティブアプリケーションが使用するアプリケーションクライアントの ID。 アプリケーションクライアントは、AMPLIFY\$1USERPOOL\$1ID の環境変数で指定された Amazon Cognito ユーザープールにアクセスできるように設定する必要があります。  | `123456` | 
|  AMPLIFY\$1IDENTITYPOOL\$1ID  |  Amazon CognitoアイデンティティプールのID。  |  `example-identitypool-id`  | 
|  AMPLIFY\$1PERMISSIONS\$1BOUNDARY\$1ARN  |  Amplify で作成されたすべてのIAM ロールのアクセス許可の境界として使用する IAM ポリシーの ARN です。  |  `arn:aws:iam::123456789012:policy/example-policy`  | 
|  AMPLIFY\$1DESTRUCTIVE\$1UPDATES  |  この環境変数を true に設定すると、データ損失を引き起こす可能性のあるスキーマ操作で GraphQL API を更新できます。  |  `true`  | 

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

## フロントエンドフレームワーク環境変数
<a name="frontend-framework-environment-variables"></a>

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

API キーなどの機密性の高い値を、フロントエンドフレームワークのプレフィックスが付いた環境変数内に保存することはベストプラクティスではないため、あまりお勧めしません。

# 環境変数の設定
<a name="setting-env-vars"></a>

次の手順に従って、Amplify コンソールのアプリケーションの環境変数を設定します。

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

**環境変数の設定方法**

1. にサインイン AWS マネジメントコンソール し、[Amplify コンソール](https://console.aws.amazon.com/amplify/)を開きます。

1. Amplify コンソールで、**[ホスティング]**、**[環境変数]** の順に選択します。

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

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

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

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

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

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

## ソーシャルサインインの認証パラメータを使用して新しいバックエンド環境を作成します。
<a name="creating-a-new-backend-environment-with-authentication-parameters"></a>

**ブランチをアプリに接続するには**

1. にサインイン AWS マネジメントコンソール し、[Amplify コンソール](https://console.aws.amazon.com/amplify/)を開きます。

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

     1. **ビルド設定**ページで、「**このブランチで使用するバックエンド環境を選択する**」セクションを探します。[**環境**] で [**新しい環境を作成**] を選択し、バックエンド環境の名前を入力します。次のスクリーンショットは、**ビルド設定**ページの「**このブランチで使用するバックエンド環境を選択**」セクションで、**backend**バックエンド環境名を入力したところを示しています。  
![\[[ビルド設定] ページの [このブランチで使用するバックエンド環境を選択する] セクション。\]](http://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/images/amplify-newenvironment-1.png)

     1. **ビルド設定**ページの「**詳細設定**」セクションを展開し、ソーシャルログインキー用の環境変数を追加します。例えば、**AMPLIFY\$1FACEBOOK\$1CLIENT\$1SECRET**は有効な環境変数です。デフォルトで使用できる Amplify システム環境変数のリストについては、[Amplify の環境変数のリファレンス](environment-variables.md#amplify-console-environment-variables)の表を参照してください。
   + **ブランチを既存のアプリに接続する**

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

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

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

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

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

# 環境シークレットの管理
<a name="environment-secrets"></a>

Amplify Gen 2 のリリースにより、環境シークレットのワークフローが効率化され、Amplify コンソールのシークレットと環境変数の管理が一元化されます。Amplify Gen 2 アプリのシークレットを設定してアクセスする手順については、「*Amplify ドキュメント*」の「[シークレットと環境変数](https://docs.amplify.aws/react/deploy-and-host/fullstack-branching/secrets-and-vars/)」を参照してください。

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

## AWS Systems Manager を使用して Amplify Gen 1 アプリケーションの環境シークレットを設定する
<a name="set-environment-secrets"></a>

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

**環境シークレットを設定するには**

1. にサインイン AWS マネジメントコンソール し、 [AWS Systems Manager コンソール](https://console.aws.amazon.com/systems-manager/)を開きます。

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

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

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

   1. **[名前] **には、**/amplify/\$1your\$1app\$1id\$1/\$1your\$1backend\$1environment\$1name\$1/\$1your\$1parameter\$1name\$1**形式でパラメータを入力します。

   1. [**タイプ**] には、[**安全な文字列**] を選択します。

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

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

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

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

## Gen 1 アプリケーションの環境シークレットへのアクセス
<a name="access-environment-secrets"></a>

Gen 1 アプリケーションの環境シークレットは、JSON 文字列として `process.env.secrets` に保存されます。

## Amplify 環境のシークレットのリファレンス
<a name="amplify-environment-secrets"></a>

Systems Manager パラメータをフォーマット`/amplify/{your_app_id}/{your_backend_environment_name}/AMPLIFY_SIWA_CLIENT_ID`で指定します。

Amplify コンソール内では、デフォルトでアクセス可能な以下の環境シークレットを使用することができます。


****  

| 変数名 | 説明 | 値の例 | 
| --- | --- | --- | 
|  AMPLIFY\$1SIWA\$1CLIENT\$1ID  |  「Apple クライアント ID でサインイン」  |  `com.yourapp.auth`  | 
|  AMPLIFY\$1SIWA\$1TEAM\$1ID  |  「Apple チーム ID でサインイン」  |  `ABCD123`  | 
|  AMPLIFY\$1SIWA\$1KEY\$1ID  |  「Apple キー ID でサインイン」  |  `ABCD123`  | 
|  AMPLIFY\$1SIWA\$1PRIVATE\$1KEY  |  「Apple プライベートキーでサインイン」  |  -----プライベートキーを開始----- \$1\$1\$1\$1...... -----プライベートキーを終了-----  | 