

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amplify 應用程式中使用環境變數
<a name="environment-variables"></a>

環境變數是索引鍵/值對，您可以將其新增至應用程式的設定，以便 Amplify Hosting 使用。最佳實務是，您可以使用環境變數來公開應用程式組態資料。您新增的所有環境變數都會加密，以防止惡意存取。

Amplify 對您建立的環境變數強制執行下列限制。
+ Amplify 不允許您建立具有 `AWS`字首的環境變數名稱。此字首僅供 Amplify 內部使用。
+ 環境變數的值不能超過 5500 個字元。

**重要**  
請勿使用環境變數來存放秘密。對於 Gen 2 應用程式，請使用 Amplify 主控台中的**秘密管理**功能。如需詳細資訊，請參閱 *Amplify 文件*中的[秘密和環境變數](https://docs.amplify.aws/react/deploy-and-host/fullstack-branching/secrets-and-vars/)。對於 Gen 1 應用程式，將秘密存放在使用 AWS Systems Manager 參數存放區建立的環境秘密中。如需詳細資訊，請參閱[管理環境秘密](environment-secrets.md)。

## Amplify 環境變數參考
<a name="amplify-console-environment-variables"></a>

依預設，您可以在 Amplify 主控台中存取下列環境變數。


****  

| 變數名稱 | Description | 範例值 | 
| --- | --- | --- | 
|  \$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 Resource Name (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  |  啟用或停用 diff 型前端部署。如需詳細資訊，請參閱[設定以差異為基礎的前端建置和部署](edit-build-settings.md#enable-diff-deploy)。  |  `true`  | 
|  AMPLIFY\$1DIFF\$1DEPLOY\$1ROOT  |  相對於儲存庫根目錄，用於 diff 型前端部署比較的路徑。  | `dist` | 
|  AMPLIFY\$1DIFF\$1BACKEND  |  啟用或停用以 diff 為基礎的後端建置。這僅適用於 Gen 1 應用程式。如需詳細資訊，請參閱[為 Gen 1 應用程式設定差異型後端建置](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  |  Web 應用程式要使用的應用程式用戶端 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  |  IAM 政策的 ARN，可用作套用至 Amplify 建立之所有 IAM 角色的許可界限。  |  `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 金鑰，並非最佳實務，而且強烈建議不要這麼做。