當 AEM 作為雲端服務剛推出時,CDN 行為只能透過 Apache 的快取控制設定來控制 (範圍 非常 有限)。如果您需要進一步的客製化,您唯一的選擇就是自備 CDN:也就是在內建 Adobe 管理的 Fastly CDN 上,再加上 Cloudflare、Akamai 或自行設定的 Fastly 等 CDN。
AEM 作為雲端服務的 Adobe Managed CDN 簡介
然而, Adobe 在去年為 AEM 雲端 服務 推出了新的管理 CDN 功能 ,大大簡化了使用 邊緣傳送服務 (又稱 Helix) 或基於 JCR 的 AEM 的混合設定。我們在此提供了一些架構圖和其他配置範例。
設定的方式是在 AEM 專案中建立/config/cdn.yaml 檔案,並透過專用的 Config pipeline 進行部署,以管理特定環境的設定 (例如 DEV、STG、PROD)。這些輕量級管道通常只需 1-2 分鐘即可執行,可在部署到生產階段之前,有效地迭代和安全地測試新的 CDN 邏輯。
然而,部署到 AEM 作為雲端服務開發環境需要執行 Cloud Manager 管道,而執行 Cloud Manager 管道需要 git commit。您不希望在調試您的語法和測試您的設定邏輯時,重複地將 git 推送到您的開發分支,這樣會很亂 (更別說會非常耗時)。幸運的是,有一種方法可以在本機進行測試,只需最少的設定,因此您可以更輕鬆地測試同樣的東西四十次,希望語法正確。
其中的秘訣就是 Adobe 的快速開發環境 (RDE)。
在 AEM RDE 上設定& 測試 CDN 設定
RDE 與 AEM 作為雲端服務環境中的 Dev、Stage 及 Production 環境之間的主要差異,在於 RDE 是要從個別開發人員的工作站直接使用aio 指令行介面來部署,而不是透過 git 控制的 Cloud Manager 管道來部署。這些都是為了快速迭代和除錯所設計的,但也是共用的環境 - 因此在進入開發 -> 階段 -> Prod 發行週期之前,變更可以經過驗證和適當的審核程序。
使用 CDN 設定 RDE 環境
為了在 RDE 上測試您的 CDN 設定,您首先需要確保在相關的 RDE env 前面設定了主機名稱和 SSL 憑證,這樣您就有一個 CDN 環境可以設定。也請注意,大多數 AEMaaCS 環境只配置了單一 RDE 環境,但多個環境的配置 可能 需要額外的費用,而且可能已作為貴公司 AEM 雲端服務合約的一部分進行了配置。
要為 Edge Delivery Services 網域設定此功能,請執行下列步驟:
(1) 在 Cloud Manager 中建立網域:在您的 Adobe Cloud Manager UI 中,移至左側導覽列上的網域設定,然後按一下新增網域。
您需要使用 Adobe 管理的憑證進行設定,此憑證將生成驗證碼,您需要將驗證碼作為 CNAME 放入 DNS 供應商,以便驗證憑證。在完成該驗證步驟之前,您的證書將顯示為"NOT VERIFIED。"
驗證完成後,您就可以進入下一步。
(2)新增 SSL 憑證: 驗證網域的擁有權後,您就可以為該網域新增 SSL 憑證。您可以使用 Adobe 管理的憑證,或者您自己的憑證(如果您喜歡)。請注意,Cloud Manager 只會填入您已驗證的網域。
(3)在 Cloud Manager 中將網域對應到您的 RDE 環境:然後,您需要在 Cloud Manager 中將網域對應到 RDE 環境。在左側軌道導覽中點選 DOMAIN MAPPINGS,然後選擇"Adobe Managed CDN" 作為 CDN 類型,並選擇您的 RDE 環境名稱作為來源,publish 作為層級,然後選擇您為此 RDE 環境建立的網域和 SSL 憑證。
(4)在 DNS 中將網域對應到 Adobe:在您的 DNS 中,建立一個 CNAME 記錄,將您的 RDE 網域對應到cdn.adobeaemcloud.com 。這將允許 Adobe 相應地擷取& 路由該網域。
(5)確認您的 config.yml 管理 RDE 環境: 最後,如果您遵循此設定 Adobe Managed CDN 的步驟,當您設定cdn.yml 時,請確定 RDE 已列為設定相關的環境之一:
kind: "CDN"
version: "1"
metadata:
envTypes: ["rde", "dev", "stage", "prod"]
data:
使用 AIO CLI 將組態推送至 RDE 的 CDN
一旦您設定好 RDE 並準備好接受 CDN 設定,您就可以設定工作站,以便將 CDN 設定推送到 RDE。
1.在您的機器上取得 NPM、Node 和 NVM。您要使用 nodejs 20
2. 以下列方式安裝 Adobe I/O runtime npm install -g @adobe/aio-cli
3. 安裝並更新您的 AIO 外掛程式:aio plugins:install @adobe/aio-cli-plugin-cloudmanager
aio plugins:install @adobe/aio-cli-plugin-aem-rde aio plugins:update
4.使用 aio login 進行驗證,此時會彈出一個瀏覽器視窗 - 請確定您使用的是 AEMaaCS 帳戶的 IMS 設定檔,否則可能需要aio logout 並重新選擇。
- 將您的組織設定為
aio cloudmanager:org:select
5.將您的程式 ID 設定為您的組織 ID,並使用 aio config:set cloudmanager_programid {YOUR PROGRAM ID GOES HERE}
- 如果您想查看您可以存取的環境,請使用
aio cloudmanager:list-environments.這會顯示 RDE 位於哪個環境中 - 使用此設定 CloudManager EnvironmentID。可以使用
aio config:set cloudmanager_environmentID {YOUR ENVIRONMENT ID GOES HERE}
6.使用aio aem:rde:setup 啟動您的 RDE 設定 - 它會詢問您是否要在本機儲存,請說是。
7.請嘗試aio aem:rde:status ,看看是否能讓您使用 RDE。它應該這樣回應:
PS C:\Users\Noah\Desktop\my-aemaacs> aio aem:rde:status
Running aem:rde:status on cm-p104400-e1291792
Info for cm-p104400-e1291743
Environment: Ready
設定完成後,您就可以開始測試您的設定。如果您尚未建立分支,現在是建立新分支的好時機,以反映您的變更。然後,您需要確保您在要測試的配置的適當目錄中。完成後,您可以使用aio aem:rde:install -t env-config ./config 將 CDN 配置安裝到目錄中。這會列出您可能有的任何語法錯誤。
PS C:\Users\Noah\Desktop\my-aemaacs> aio aem:rde:install -t env-config ./config
Running aem:rde:status on cm-p104400-e1291743
Zipped file /tmp/aio-rde-RF1WAb/config.zip of 2584 total bytes
Uploading ████████████████████████████████████████ 100% | ETA: 0s | 3/3 KB
#42: deploy completed for env-config config.zip on author,publish - done by [email protected] at 2025-10-24T21:15:59.387Z
Logs:
> State: complete
測試像 CDN 組態這樣的東西有時候會很麻煩,但有一些方法可以在本機進行測試。即使測試會在本機進行,我們仍需要利用 CDN 將會使用的後端邏輯。如果操作得當,這將讓我們看到 CDN 配置如何與測試 URL 互動,而無需將其推送到開發分支。
您的下一步很可能是根據您組織中使用的分支策略,建立一個拉取請求,以獲得批准將您的變更推送到開發中。當您的 PR 獲得核准後,組態便可推送至為 Cloud Manager 管道配置的儲存庫,然後再推送至開發環境進行進一步測試,最後再推送至 Prod!
使用此方法,個別開發人員可以完全放心地開發及測試 CDN 配置,因為他們知道這些配置很有可能在生產中運作!
關於作者
喜歡你聽到的嗎?對適合您的產品有疑問?我們很樂意與您討論!聯絡我們