Topics

“Jamstack 没有预览环境吗?”您是否也有过这样的疑问?

  • column

在传统的 LAMP 架构中,通常的做法是为 /prev 或 test.example.com 添加 Basic 认证,从而搭建预览环境。

然而,近来在使用 Vercel 或 Cloudflare Pages 的 Headless CMS 架构中,很多人会感到困惑:“构建后生成的预览 URL,这算是 staging 吗?”“究竟能不能设置密码认证(Basic 认证)?”

结论:预览环境确实是有的!而且还能得到可靠的保护!

例如,Vercel 和 Cloudflare Pages 都具备为每个 Git 分支自动生成 预览 URL 的功能。 换句话说,这就是每次都自动创建最新的 staging 环境的机制。 只要用 Git 管理源代码,创建新分支并执行 push,就能立即获得用于确认的 URL。无需手动将文件上传到 staging 环境,省时省力。

“可是,这个预览 URL 不会被公开到外部吗?”

请放心。如下所示,访问限制同样可以轻松设置。

Cloudflare Pages 示例

在 Cloudflare Pages 中,可以对预览环境设置访问限制。

Basic 认证

  • 这种方式与以往的预览环境较为接近,可以通过用户名和密码进行身份验证设置。除特定配置外,选择这种方式的情况也可能较多。
  • 不过,在采用 SSG(静态站点生成)与 SSR(服务器端渲染)相结合的混合架构等情况下,Basic 认证可能无法正常工作。

Cloudflare Access

  • 当上述 Basic 认证不适用,或需要更灵活的访问控制时,可以使用 Cloudflare Access。
Cloudflare Access 登录界面截图

可通过图形界面进行以下设置(免费方案下最多支持 50 位用户)。

  • 仅允许拥有特定邮箱域名的用户访问,例如 example.com
  • 仅允许拥有指定邮箱地址的用户访问
  • Google 账户认证(也可与 Google Workspace 集成)
  • 基于 IP 地址的访问限制
  • 签发临时访问 PIN 码
Cloudflare 设置界面截图
Cloudflare 设置界面截图

Vercel 示例

在 Vercel 中当然也可以保护预览环境。

  • Vercel Authentication 限制访问,仅团队成员可以访问
  • 密码保护(可在 Pro 及以上套餐中设置)
  • 也可以为生产环境和预览环境设置不同的访问限制

通过使用 Vercel Authentication 功能,可以实现仅限项目成员访问、创建可共享的链接等操作。

顺便一提,以前 Vercel 的预览环境保护需要通过 Password 认证实现,该功能需另外收费($150/月),使用起来并不方便。现在 Deploy Protection 已可用于所有套餐!

https://vercel.com/docs/deployment-protection

Vercel 设置界面截图
可以在项目设置的 Deployment Protection 中选择保护方式。
Vercel 创建共享链接界面截图
可共享的链接可在 Deployment Details 右上角点击「Share」创建。

简而言之,就是这样!

传统方法

Jamstack/Vercel/Cloudflare Pages 的世界

stg.example.com + Basic 认证

按分支生成的预览 URL + 密码/邮件认证/IP 限制等

手动上传

通过 Git push 自动部署

访问限制的设置与管理较为繁琐

访问限制可以通过 GUI 等方式较为轻松地设置

“Jamstack 很时髦,但有完善的预览环境吗?”“安全性没问题吗?”如今的预发布环境,是按分支自动生成的“预览环境”。访问限制也可以灵活又简便地设置。

同样的安心感,可以更轻松、更智能地实现。 请务必从下一个项目开始尝试。

撰写本文的人

从 DTP 进入 Web 领域,不知不觉间,标记、前端、项目指导、无障碍样样精通的“技术仙人”。自 Liberogic 创业初期起就身兼多职,如今已是公司内的活字典般的存在。最近沉迷于用提示词提升效率的探索:“无障碍支持,能不能更多地依靠 AI 呢?”技术与思考仍在不断进化中。

二俣 歩

IAAP认证网页无障碍专家(WAS) / 标记工程师 / 前端工程师 / 网页总监

查看此员工的文章

以稳健的团队体制和迅速的应对能力为傲

Liberogic 的资深团队积极推动项目,因此深受客户好评。
我们致力于合理配置项目经理与总监,确保整个项目顺利推进。 我们采用按需投入的方式,避免不必要的全员投入导致成本增加,合理分配资源、人尽其才。同时,我们在掌握业务内容、制作与提交报价方面的速度也广受好评。

※ 当社不积极开展 SES 类驻场业务,敬请谅解。

您可以使用 Slack、Teams、Redmine、Backlog、Asana、Jira、Notion、Google Workspace、Zoom、Webex 等几乎所有主流的项目管理工具和聊天工具。

Web 方面的烦恼,欢迎随时咨询。

案例分析