

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

# 在 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 控制台默认可访问以下环境变量。


****  

| 变量名称 | 说明 | 示例值 | 
| --- | --- | --- | 
|  \$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 存储库内容的克隆网址  |   `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 的前端部署。有关更多信息，请参阅 [配置基于 diff 的前端构建和部署](edit-build-settings.md#enable-diff-deploy)。  |  `true`  | 
|  AMPLIFY\$1DIFF\$1DEPLOY\$1ROOT  |  用于比较基于 diff 的前端部署的路径，相对于存储库的根目录。  | `dist` | 
|  AMPLIFY\$1DIFF\$1BACKEND  |  启用或禁用基于 diff 的后端构建。这仅适用于 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  |  用于指定单一存储库应用程序的应用程序根目录的路径，相对于存储库的根目录。  | `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 policy 的 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 密钥）存储在这些以前端框架为前缀的环境变量中并不是最佳做法，因此强烈建议不要这样做。