Topics

「Jamstack 沒有預覽環境嗎?」你是不是這樣想過?

  • column

在傳統的 LAMP 架構等環境中,通常會在 /prev/test.example.com/ 設定 Basic 認證來準備預覽環境。

但是,在最近使用 Vercel 或 Cloudflare Pages 的 headless CMS 架構中,許多人似乎感到困惑:「構建後會產生預覽用的 URL,但這是 stg 嗎?」「首先,密碼認證(Basic 認證)可以設定嗎?」

結論:預覽環境確實存在!而且可以妥善保護!

例如,Vercel 和 Cloudflare Pages 都具備針對每個 Git 分支自動發行 preview URL 的功能。換句話說,這是 每次都自動為你建立最新預覽環境的機制。只要用 Git 管理原始碼,只需切出新分支並 push,就會立即產生確認用的 URL。完全無需手動上傳檔案到預覽環境。

「但是,那個預覽 URL 會被公開到外部嗎?」

別擔心。以下這些 存取限制也可以輕鬆設定

Cloudflare Pages 的例子

在 Cloudflare Pages 中,可以設定預覽環境的存取限制。

基本認證

  • 可以設定類似傳統預覽環境的使用者名稱和密碼認證。除了特定的設定之外,這可能是許多情況下的選擇。
  • 不過,在結合 SSG(靜態網站生成)和 SSR(伺服器端渲染)的混合架構等情況下,基本認證有時可能無法正常運作。

Cloudflare Access

  • 當基本認證不適用,或需要進行更靈活的存取控制時,使用 Cloudflare Access。
Cloudflare Access 登入畫面截圖

可以從圖形介面進行以下設定(免費方案限制為 50 位使用者)。

  • 僅允許具有 example.com 等特定電子郵件網域的使用者
  • 僅允許具有指定電子郵件地址的使用者
  • Google 帳戶認證(也可與 Google Workspace 整合)
  • 依 IP 位址進行限制
  • 發行臨時存取 PIN
Cloudflare 設定畫面截圖
Cloudflare 設定畫面截圖

Vercel 範例

在 Vercel 上當然也可以保護預覽環境。

  • Vercel Authentication 僅限團隊成員存取
  • 密碼保護(可在 Pro 及以上方案中設定)
  • 可以在生產環境和預覽環境中設定不同的限制

透過使用此 Vercel Authentication 功能,可以實現僅限專案成員存取、建立可共享連結等功能。

順帶一提,Vercel 的預覽環境保護過去需要額外付費使用 Password 認證($150/mo),使用起來不太方便,但現在 Deploy Protection 已可在所有方案中使用!

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

Vercel 設定畫面截圖
可以從專案設定的 Deployment Protection 選擇保護方式。
Vercel 共享連結建立畫面截圖
可共享的連結可以從 Deployment Details 右上角的「Share」建立。

也就是說,是這樣的!

傳統方法

Jamstack/Vercel/Cloudflare Pages 的世界

stg.example.com + Basic 認證

各分支的預覽網址 + 密碼/電子郵件認證/IP 限制等

手動上傳

透過 Git push 自動部署

存取限制的設定/管理略微複雜

存取限制可以透過 GUI 等相對容易地設定

「Jamstack 很潮,但預覽環境真的有嗎?」「安全性沒問題嗎?」現代的預演環境就是這樣的:每個分支都會自動產生「預覽環境」。而且存取限制也可以靈活且輕鬆地設定。

您可以以更輕鬆、更聰慧的方式實現與過往相同的安心感。何不從下一個專案開始試試看呢?

本文作者

從 DTP 跨足 Web 世界,轉眼間便掌握了標記語言、frontend 開發、專案指導,以及 accessibility 等各項技能——是名真正的「技術高人」。自 Liberogic 創立初期便展現多才多藝的能力,如今儼然成為公司內的活字典。最近正沉迷於利用 AI 提示詞探索「accessibility 對應能否更多依靠 AI?」的效率化研究。技術與思維都在不斷進化中。

Futa(二)

IAAP 認證網頁無障礙專家(WAS)/ 標記語言工程師 / Frontend 工程師 / 網頁總監

查看此員工的文章

信心十足的團隊體制與迅速的應對能力是我們的優勢

Liberogic 擁有經驗豐富的人員積極推進專案,因而獲得客戶的高度評價。
我們恰當地安排專案經理和總監,致力於順利推進整個專案。 我們避免不必要的全面投入而導致成本增加,而是採用適材適所配置資源的方式,因此在業務把握到估價制作與提交的速度上也備受好評。

請注意,我們不積極進行 SES 形式的駐場業務。

Slack、Teams、Redmine、Backlog、Asana、Jira、Notion、Google Workspace、Zoom、Webex 等幾乎所有主要的專案管理工具和聊天工具都可供您使用。

請諮詢我們解決您的網站問題。

案例分析