环境变量,与代码分开存放

把令牌、密码和连接字符串存放在每个应用的设置中。值在屏幕上保持隐藏,粘贴一次即可导入 .env,重启后即可生效,无需重新上传。

每个应用最多 256 个变量,所有套餐均包含。也可通过 CLI 和 API 操作。

工作方式

变量属于应用本身,而不是你上传的文件。修改一个变量,下次启动时即会使用新值。

  1. 1

    添加或粘贴

    输入键和值,在键输入框中粘贴多行 KEY=值,或导入一个 .env 文件。

  2. 2

    保存

    一次保存会提交整个列表。会被 shell 截断或展开的值会自动加上引号。

  3. 3

    重启

    保存后,控制台会立即提示重启。应用将使用新值启动,无需重新上传。

密钥在屏幕上保持隐藏

应用设置中的编辑器会隐藏每个值,直到你主动查看,并把相关的键放在一起。

  • 隐藏的值

    值以圆点显示。点击眼睛图标查看,无需显示即可复制,或点击值进行编辑。

    • 每次编辑单独确认或取消
    • 按住 Shift 可一键删除一行
  • 按前缀分组

    共享前缀的键(例如 DB_HOST 和 DB_USER)会排在一起,并按字母顺序排列。

    • 列表超过 15 个时可按键搜索
    • 剩余名额不多时会显示提醒
  • Square Cloud 默认变量

    每个应用都自带 HOST、PORT 和 SQUARECLOUD_APP_ID,以只读方式显示,并附有用途说明。

    • HOST 0.0.0.0 与 PORT 80 用于 HTTP
    • 应用自身的 ID,供你的代码读取
  • 每个应用最多 256 个变量
  • 键最多 1024 个字符,值最多 4096 个
  • 在工作区中,只有管理员可以打开编辑器
  • 所有套餐均包含

带上你现有的 .env

导入 .env 文件,并在任何更改发生前进行检查:新的键、将被替换的键,以及无法导入的行,每一项都会标明行号和原因。

  • 粘贴整行

    在键输入框中粘贴多行 KEY=值,每一行都会变成一条变量。已有的键会采用粘贴的值。

    • 会正确处理注释和 export 前缀
    • 粘贴到已填写的行时,该变量会保留
  • 部署时即可设置

    部署表单同样支持填写变量;如果项目中有 .env.example,它会列出其中的键供你填写。

    • 也会读取 .env.sample、.env.template 和 .env.dist
    • HOST 和 PORT 交由 Square Cloud 设置
  • 导出或复制

    将所有变量下载为 KEY=VALUE 文本文件,或一次全部复制,方便迁移到另一个应用。

    • 导出的值带有引号,可直接加载
    • 没有键的行不会导出

值会按你输入的样子送达代码

你的应用通过 shell 加载变量,一个空格、$ 或 ; 都可能截断或改变某个值。编辑器会替你给这些值加上引号。

  • 需要时自动加引号

    包含空格或 $、&、;、|、) 等字符的值,在你确认、导入或保存时会放入单引号中。

  • 拒绝有风险的引号

    用双引号包裹含 $ 的值会让 shell 将其展开,因此编辑器会提示你删除双引号或改用单引号。

  • 键始终有效

    键中的空格会变成下划线,同一个键不能重复。导入时,键必须以字母或 _ 开头。

通过终端和 API 操作

同样的变量也可以通过 CLI、GitHub Action、VS Code 扩展 和 REST API 访问。

Square Cloud CLI
squarecloud app env set DB_HOST=10.0.0.4 "GREETING=hi there"squarecloud app env set --from-file .envsquarecloud app env list

从 3.1.1 版本起,CLI 会自动给含空格或符号的值加上引号。查看 CLI 的全部功能。

REST API
curl -X POST "https://api.squarecloud.app/v2/apps/$APP_ID/envs" \  -H "Authorization: $SQUARECLOUD_API_KEY" \  -H "Content-Type: application/json" \  -d '{"envs": {"NODE_ENV": "production", "LOG_LEVEL": "info"}}'curl -X POST "https://api.squarecloud.app/v2/apps/$APP_ID/restart" \  -H "Authorization: $SQUARECLOUD_API_KEY"

按 shell 应读取的形式发送值:含空格或符号时放入单引号中。重启后生效。

  • GET
    /v2/apps/{appId}/envs

    列出应用的环境变量。

  • POST
    /v2/apps/{appId}/envs

    添加变量或修改已有变量,其余变量保持不变。

  • PUT
    /v2/apps/{appId}/envs

    用你发送的变量替换全部变量。

  • DELETE
    /v2/apps/{appId}/envs

    删除你指定的变量。

  • API 密钥可以限定为 envs:read 或 envs:write,并只作用于单个应用。
API 参考

关于环境变量的常见问题

Square Cloud 上的环境变量是什么?

它们是存放在应用设置中的键值对,会在应用启动时加载。它们让令牌、密码和连接字符串不必写进代码,也不必放进你上传的文件。每个应用都有自己的变量列表,最多 256 个。

修改变量后需要重新部署吗?

不需要。保存更改并重启应用即可:应用会使用新值启动,无需重新上传。在重启之前,当前进程仍保留启动时的值。

Square Cloud 提供哪些变量?

HOST(0.0.0.0)、PORT(80)和 SQUARECLOUD_APP_ID(应用自身的 ID)。它们以只读方式显示在编辑器顶部。监听该主机和端口的 Web 应用可以通过 HTTP 访问。

如何保存包含空格、引号或 $ 的值?

按原样输入即可。控制台和 CLI 会把这类值放入单引号中,让 shell 原样加载。通过 API 时,请直接发送已加单引号的值。避免用双引号包裹含 $ 的值:shell 会将其展开。

可以在项目中保留 .env 文件吗?

可以,但更建议在控制台中导入它:在那里设置的变量优先于该文件中的值。若要让上传时排除该文件,请将其写入 squarecloud.ignore,CLI 和 VS Code 扩展都会读取这个文件。

谁能看到这些值?

在你的账户中,只有你自己。在工作区中,只有拥有管理员权限的成员才能打开编辑器。API 密钥需要 envs:read 权限范围或完全访问权限才能读取它们。

一个应用最多可以有多少个变量?

最多 256 个,键最多 1024 个字符,值最多 4096 个字符。剩余名额不多时编辑器会提醒你,超出限制时无法保存。

静态站点有环境变量吗?

没有。静态站点以文件形式提供,没有读取变量的进程,因此其设置中没有变量选项卡。环境变量适用于带运行时的应用,例如 Node.js、Python、Java、Go 或 Rust。

项目每个阶段都有合适的套餐

从小规模开始,按需扩展,无绑定合约。

4.9 分(满分 5 分)· Google + Trustpilot 上的 402 条评价Trustpilot

托管于持有以下认证的合作数据中心
Tier 3ISO 27001SOC 2 Type IIAlways-On DDoS 防护
了解我们的基础设施

准备好让你的项目 扩展 了吗?

加入超过 50 万名曾使用 Square Cloud 托管项目的开发者。

  • 可预期的价格
  • 账单无惊喜
  • 秒级部署
  • 高可用性
  • 稳定扩展
  • 自动重启
  • 含 SSL 与安全防护
  • 隔离容器