为Edge Delivery Services设置和配置GitLab

要使用GitLab将内容从Experience Manager Guides发布到Edge Delivery Services (EDS),请通过Cloud Manager的​自带Git (BYOG)功能将GitLab存储库连接到EDS站点。 本文列出了按顺序执行的步骤。 有关每个步骤的详细信息,请访问链接的文档。

工作原理

  • GitHub存储库​通过AEM代码同步应用程序创建EDS站点。
  • GitLab存储库​存储从Experience Manager Guides发布的内容。
  • Cloud Manager​通过接收GitLab推送事件(webhook)并将它们同步到EDS网站来链接这两者。

先决条件

  • 访问GitHub和GitLab(GitLab.com或自托管)以创建存储库和令牌。
  • 访问Cloud Manager,其角色允许添加存储库(部署管理员或业务负责人)。
  • 系统管理员或API开发人员角色(在Adobe组织中),用于创建Cloud Manager 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代码同步将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
在令牌过期前续订令牌。 如果发布配置文件中的令牌已过期,则发布失败。 要更新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中的项目访问令牌创建一个EDS发布配置文件,其中将​ Git帐户类型 ​设置为​GitLab。 然后在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