

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 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/)。对于第 1 代应用程序，将密钥存储在使用 P AWS Systems Manager arameter Store 创建的环境密钥中。有关更多信息，请参阅 [管理环境密钥](environment-secrets.md)。

## Amplify 环境变量参考
<a name="amplify-console-environment-variables"></a>

Amplify 控制台默认可访问以下环境变量。


****  

| 变量名称 | 说明 | 示例值 | 
| --- | --- | --- | 
| \_BUILD\_TIMEOUT | 构建超时时间（以分钟为单位）。<br />最小值为 5。<br />最大值为 120。 | `30` | 
| \_LIVE\_UPDATES | 该工具将升级到最新版本。 | `[{"name":"Amplify CLI","pkg":"@aws-amplify/cli","type":"npm","version":"latest"}]` | 
| USER\_DISABLE\_TESTS | 在构建过程中会跳过测试步骤。您可以禁用应用程序中所有分支或特定分支的测试。<br />此环境变量用于在构建阶段执行测试的应用程序。有关设置此变量的更多信息，请参阅 [为 Amplify 应用程序或分支关闭测试](running-tests.md#disabling-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 存储库内容的克隆网址 |  `git@github.com:<user-name>/<repo-name>.git`  | 
| AWS\_COMMIT\_ID | 当前构建的提交 ID<br />用于重新构建的“HEAD” | `abcd1234` | 
| AWS\_JOB\_ID | 当前构建的作业 ID。<br />这包括填充的一些“0”，因此它总是具有相同的长度。 | `0000000001` | 
| AWS\_PULL\_REQUEST\_ID | 拉取请求 Web 预览版本的拉取请求 ID。<br />当 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 | 启用或禁用基于 diff 的前端部署。有关更多信息，请参阅 [配置基于 diff 的前端构建和部署](edit-build-settings.md#enable-diff-deploy)。 | `true` | 
| AMPLIFY\_DIFF\_DEPLOY\_ROOT | 用于比较基于 diff 的前端部署的路径，相对于存储库的根目录。 | `dist` | 
| AMPLIFY\_DIFF\_BACKEND | 启用或禁用基于 diff 的后端构建。这仅适用于 Gen 1 应用程序。有关更多信息，请参阅 [为 Gen 1 应用程序配置基于 diff 的后端构建](edit-build-settings.md#enable-diff-backend)。 | `true` | 
| AMPLIFY\_BACKEND\_PULL\_ONLY | Amplify 管理此环境变量。这仅适用于 Gen 1 应用程序。有关更多信息，请参阅 [编辑现有前端以指向其他后端](reuse-backends.md#reuse-backends-edit-existing)。 | `true` | 
| AMPLIFY\_BACKEND\_APP\_ID | Amplify 管理此环境变量。这仅适用于 Gen 1 应用程序。有关更多信息，请参阅 [编辑现有前端以指向其他后端](reuse-backends.md#reuse-backends-edit-existing)。 | `abcd1234` | 
| AMPLIFY\_SKIP\_BACKEND\_BUILD | 如果您的构建规范中没有后端部分，并且想要禁用后端构建，请将此环境变量设置为 `true`。这仅适用于 Gen 1 应用程序。 | `true` | 
| AMPLIFY\_ENABLE\_DEBUG\_OUTPUT | 将此变量设置为 `true`，即可在日志中打印堆栈跟踪。这对于调试后端构建错误非常有用。 | `true` | 
| AMPLIFY\_MONOREPO\_APP\_ROOT | 用于指定单一存储库应用程序的应用程序根目录的路径，相对于存储库的根目录。 | `apps/react-app` | 
| AMPLIFY\_USERPOOL\_ID | 为进行身份验证而导入的 Amazon Cognito 用户群体的 ID | `us-west-2_example` | 
| AMPLIFY\_WEBCLIENT\_ID | Web 应用程序要使用的应用程序客户端的 ID<br />必须将应用程序客户端配置为可以访问由 AMPLIFY\_USERPOOL\_ID 环境变量指定的 Amazon Cognito 用户群体。 | `123456` | 
| AMPLIFY\_NATIVECLIENT\_ID | 原生应用程序要使用的应用程序客户端的 ID<br />必须将应用程序客户端配置为可以访问由 AMPLIFY\_USERPOOL\_ID 环境变量指定的 Amazon Cognito 用户群体。 | `123456` | 
| AMPLIFY\_IDENTITYPOOL\_ID | Amazon Cognito 身份池的 ID | `example-identitypool-id` | 
| AMPLIFY\_PERMISSIONS\_BOUNDARY\_ARN | 用作权限边界的 IAM policy 的 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 访问密钥和密钥。

## 前端框架环境变量
<a name="frontend-framework-environment-variables"></a>

如果您使用支持自有环境变量的前端框架开发应用程序，请务必了解这些变量与您在 Amplify 控制台中配置的环境变量不同。例如，React（前缀 REACT\_APP）和 Gatsby（前缀 GATSBY）使您能够创建运行时环境变量，这些框架会自动将这些变量捆绑到您的前端生产构建中。要了解使用这些环境变量存储值的效果，请参阅您所使用的前端框架的文档。

将敏感值（例如 API 密钥）存储在这些以前端框架为前缀的环境变量中并不是最佳做法，因此强烈建议不要这样做。