为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。
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><git acc domain>gitlab.com)或您的自托管域。<git username><git repo>main / docs4. 创建GitLab访问令牌
创建以下所需的访问令牌:
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以验证站点。
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 🔗中的疑难解答。