在 Amplify 应用程序中使用环境变量 - AWS Amplify 托管

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

在 Amplify 应用程序中使用环境变量

环境变量是可以将其添加到应用程序设置中以使其可供 Amplify Hosting 使用的键/值对。作为最佳实践,您可以使用环境变量来公开应用程序配置数据。您添加的所有环境变量都经过加密以防止恶意访问。

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

在构建过程中会跳过测试步骤。您可以禁用应用程序中所有分支或特定分支的测试。

此环境变量用于在构建阶段执行测试的应用程序。有关设置此变量的更多信息,请参阅 为 Amplify 应用程序或分支关闭测试

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

用于重新构建的“HEAD”

abcd1234

AWS_JOB_ID

当前构建的作业 ID。

这包括填充的一些“0”,因此它总是具有相同的长度。

0000000001

AWS_PULL_REQUEST_ID

拉取请求 Web 预览版本的拉取请求 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

启用或禁用基于 diff 的前端部署。有关更多信息,请参阅 配置基于 diff 的前端构建和部署

true

AMPLIFY_DIFF_DEPLOY_ROOT

用于比较基于 diff 的前端部署的路径,相对于存储库的根目录。

dist

AMPLIFY_DIFF_BACKEND

启用或禁用基于 diff 的后端构建。这仅适用于 Gen 1 应用程序。有关更多信息,请参阅 为 Gen 1 应用程序配置基于 diff 的后端构建

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

用于指定单一存储库应用程序的应用程序根目录的路径,相对于存储库的根目录。

apps/react-app

AMPLIFY_USERPOOL_ID

为进行身份验证而导入的 Amazon Cognito 用户群体的 ID

us-west-2_example

AMPLIFY_WEBCLIENT_ID

Web 应用程序要使用的应用程序客户端的 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

用作权限边界的 IAM policy 的 ARN,适用于 Amplify 创建的所有 IAM 角色。

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

AMPLIFY_DESTRUCTIVE_UPDATES

将此环境变量设置为 true,以允许使用可能导致数据丢失的模式操作更新 GraphQL API。

true

注意

AMPLIFY_AMAZON_CLIENT_IDAMPLIFY_AMAZON_CLIENT_SECRET 环境变量是 OAuth 令牌,而不是 AWS 访问密钥和密钥。

前端框架环境变量

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

将敏感值(例如 API 密钥)存储在这些以前端框架为前缀的环境变量中并不是最佳做法,因此强烈建议不要这样做。有关就此目的使用 Amplify 的构建时环境变量的示例,请参阅 在构建时访问环境变量