設定適用於Edge Delivery Services的GitLab

若要使用GitLab將內容從Experience Manager Guides發佈到Edge Delivery Services (EDS),您可以透過Cloud Manager的​自攜Git (BYOG)功能將GitLab存放庫連結到您的EDS網站。 本文列出循序步驟。 如需每個步驟的詳細資訊,請遵循連結的檔案。

運作方式

  • GitHub存放庫​會透過AEM Code Sync應用程式建立EDS網站。
  • GitLab存放庫​會儲存從Experience Manager Guides發佈的內容。
  • Cloud Manager​接收GitLab推播事件(webhook)並將它們同步至EDS網站,以連結這兩者。

先決條件

  • 存取GitHub和GitLab (GitLab.com或自行託管)以建立存放庫和Token。
  • 使用Cloud Manager的存取權,該角色可允許新增存放庫(部署管理員或企業所有者)。
  • 在您的Adobe組織中建立整合Cloud Manager API的系統管理員或API開發人員角色。
  • 已在組態服務中註冊的aem.live組織。 深入瞭解組態服務設定。

設定Edge Delivery Services的GitLab

若要設定GitLab以搭配Edge Delivery Services使用,請依照指定順序執行下列步驟,以確保正確設定和整合。

​1. 使用GitHub建立EDS網站

從AEM Guides範本建立GitHub存放庫,並在其上安裝AEM程式碼同步應用程式。 儲存產生的​即時URL (https://<branch>--<github-repo>--<github-username>.aem.live)以供稍後使用。

如需相關步驟,請檢視建立EDS的GitHub存放庫以及透過AEM Code Sync將GitHub連線至Adobe。

IMPORTANT
請勿在Cloud Manager中使用按一下選項來建立EDS網站。 以此方式建立的網站不會為您提供後續步驟所需的管理員許可權。 進一步瞭解準備您的Edge Delivery Services網站。

​2. 建立GitLab存放庫

從相同的AEM Guides範本建立個別的GitLab存放庫(例如my-eds-gitlab)。 Experience Manager Guides會將產生的輸出發佈到此存放庫。 EDS需要main分支。

若要建立存放庫,請建立空白專案並將aem-guides-boilerplate的內容推入其中,或將範本匯入新的專案。 如需相關步驟,請在GitLab檔案中檢視建立專案和將專案從GitHub匯入至GitLab。

​3. 設定掛接點URL

在GitHub存放庫中,更新fstab.yaml,讓內容來源指向GitLab存放庫,並將變更提交至main。

https://<worker URL>/gitlab/<git acc domain>/<git username>/<git repo>/main/docs
參數
說明
<worker URL>
Adobe提供的背景工作節點URL。
<git acc domain>
GitLab網域(例如gitlab.com)或您的自行託管網域。
<git username>
您的GitLab使用者名稱。
<git repo>
GitLab存放庫的名稱。
main / docs
分支和根資料夾。 Experience Manager Guides的預設值。

​4. 建立GitLab存取權杖

建立下列專案所需的存取權杖:

  • Cloud Manager,驗證並存取存放庫。 深入瞭解在Cloud Manager中新增外部存放庫。
  • Experience Manager Guides發佈設定檔,以認可已發佈的輸出。 建立具有​ 開發人員 ​角色和api範圍的GitLab專案存取權杖。 在GitLab檔案中進一步瞭解。
NOTE
在權杖到期前續約。 如果發佈設定檔中的Token已過期,發佈作業就會失敗。 若要更新Cloud Manager使用的權杖,請檢視管理外部存放庫的存取權杖。

​5. 將GitLab存放庫新增至Cloud Manager

在Cloud Manager中,移至​存放庫 > 新增存放庫,選取​私人存放庫,並使用存取權杖驗證所有權。 等到存放庫狀態為​就緒。 BYOG選項只有在至少一個外部存放庫準備就緒後才能使用。

如需相關步驟,請檢視在Cloud Manager中新增外部存放庫。

​6. 產生Cloud Manager API金鑰

在Adobe Developer Console中建立API整合(Cloud Manager API,OAuth伺服器對伺服器),並複製​使用者端ID (API金鑰)。

如需步驟,請檢視建立API整合專案。

​7. 設定GitLab webhook

在Cloud Manager中,選取存放庫的​設定Webhook,並複製​ Webhook URL ​和​密碼。 將API金鑰附加至URL (<webhook URL>&api-key=<CLIENT_ID>)。 在GitLab中,移至​設定 > Webhooks、新增URL和密碼、選取main分支並啟用​推播事件。

如需詳細資訊,請檢視在Cloud Manager中設定外部存放庫。

​8. 將EDS網站新增至Cloud Manager

在Cloud Manager中,前往​Edge Delivery > 新增Edge Delivery網站,然後輸入步驟1中儲存的即時URL。 完成所有權驗證。

如需步驟,請檢視新增Edge Delivery網站。

​9. 使用自備Git連線存放庫

在Cloud Manager的EDS網站上,選取​自攜Git (BYOG),選擇GitLab存放庫,然後確認。 複製並安全地儲存產生的機密。 此密碼只會顯示一次,如果您重新設定網站,則會產生新的密碼。

如需詳細資訊,請檢視在Cloud Manager中設定您的Edge Delivery網站。

​10. 設定EDS網站以使用Cloud Manager

使用webhook URL中的​方案ID (/program/<PROGRAM_ID>/)和​存放庫ID (/repo/<REPO_ID>/),將EDS網站的程式碼來源設定為Cloud Manager存放庫。 然後,使用步驟9中的密碼建立名為cm-byog的密碼。

針對管理員API呼叫,檢視設定您的AEM網站以使用Cloud Manager。

​11. 同步和驗證

在Cloud Manager中,從網站功能表選取​同步程式碼,然後選擇main分支。 然後開啟https://main--<site>--<org>.aem.page以驗證網站。

如需詳細資訊,請檢視觸發您的第一次同步和驗證您的AEM網站。

​12. 從Experience Manager Guides發佈

使用步驟4中的專案存取權杖,建立​ Git帳戶型別 ​設為​ GitLab ​的EDS發佈設定檔。 然後在EDS輸出預設集中選取此設定檔並產生輸出。 輸出已提交到GitLab存放庫的docs資料夾。

如需步驟,請檢視建立EDS發佈設定檔和建立EDS的輸出預設集並產生輸出。

疑難排解

  • 網站在推播後顯示舊內容:​請確認webhook正在將事件傳送至Cloud Manager,然後檢查最新同步處理工作的狀態。
  • 同步處理錯誤Unable to fetch hlxignore: 401: cm-byog密碼不正確。 使用步驟9中的秘密重新建立檔案。
  • 連結至其他網站的存放庫: Cloud Manager存放庫一次只能連結至一個網站。 若要跨網站共用存放庫,請使用Repoless。

如需詳細資訊,請檢視疑難排解中的自攜Git。

recommendation-more-help
experience-manager-guides-help-product-guide