升级您的内容片段以获取UUID引用 upgrade-content-fragments-for-UUID-references
为了优化GraphQL过滤器的稳定性,您可以升级内容片段中的内容和片段引用,以便它们使用通用唯一标识符(UUID)。
内容片段模型最初提供了 内容引用 和 片段引用 的数据类型。 这两个引用都使用路径指向引用的资源,如果移动该资源,此路径可能会过期。 尽管此类引用在大多数情况下已经远远不够,但内容片段模型已得到扩展,还可根据UUID提供引用:
- 内容引用(UUID)
- 片段引用(UUID)。
这些新引用类型既可用于新内容片段模型,也可用于扩展现有实例。
要升级现有内容片段和模型,您可以运行此处介绍的过程。
升级的内容 what-is-upgraded
进行了以下更新:
-
数据类型的字段:
- 内容引用 已转换为 内容引用(UUID)
- 片段引用 已转换为 片段引用(UUID)
-
保存在这些字段中的基于路径的引用的值会被相应的UUID替换
未升级的内容 what-is-not-upgraded
以下引用不会升级:
-
页面引用 — 尚不支持UUID
-
任何无效引用;例如,不存在内容片段路径或资产路径的目标
-
不升级无效引用,就像内容片段路径或资产路径无效一样,没有要分配的相应UUID。 原始参考保持不变。
-
使用练习来检测任何无效的引用。
note note NOTE 由于无效,无论是否升级,它们都不可用。 -
何时不应升级 when-you-should-not-upgrade
不升级:
- 当您的任何内容片段使用页面引用时;作为UUID,页面引用尚不受支持
UUID引用的限制 limitations-of-uuid-references
目前,在使用基于UUID的引用时,以下限制适用:
-
模型
- 无法通过OpenAPI创建具有内容片段UUID或内容引用UUID字段的新内容片段模型。
- 模型的
id
字段尚未更改为基于UUID。 它使用模型的base64解码路径。 无法移动模型,因此,该值仍保持稳定。
-
资源
- 在通过OpenAPI创建内容片段时,
fragment-reference
或content-reference
字段类型必须用于分别指定对片段或资产的引用 — 即使设置基于UUID的引用字段的值时也是如此。
- 在通过OpenAPI创建内容片段时,
升级计划 upgrade-planning
运行升级之前,需要执行一些准备步骤。
执行试运行 execute-a-dry-run
建议 每次 升级内容时,首先执行试运行。 这将创建日志文件,其条目会突出显示任何潜在问题:
- 无效引用
- 页面引用
在dryRun
模式下运行内容升级以:
- 识别任何无效引用;通过在日志文件中列出它们
然后,您可以在运行实际内容升级之前修复这些引用。 - 识别任何页面引用;通过在日志文件中列出它们
检测到页面引用时,不应运行内容升级。
强制内容冻结 enforce-a-content-freeze
应计划在内容冻结期间执行内容升级。
内容冻结的持续时间取决于要升级的内容片段的数量。 因此,升级可能从几分钟到几小时不等,并且还取决于开始内容升级时使用的参数。
运行内容升级 running-the-content-upgrade
可以使用终结点管理内容升级: /libs/dam/cfm/maintenance.json
Administrator
角色才能访问端点。开始内容升级 start-a-content-upgrade
/libs/dam/cfm/maintenance.json
POST
start
uuidUpgradeService
1000
/conf
指定以下任一项:
- 根
/conf
升级所有AEM配置 - 选定的AEM配置路径。 对其执行内容升级
例如:/conf/wknd-shared
仅升级单个租户wknd-shared
10
replicate
、noReplicate
replicate
:在所有AEM Publish实例上复制相同的作业noReplicate
:仅在AEM创作实例上运行作业
true
,false
false
:模拟内容升级,不保存任何内容更改true
:执行内容升级,并保存内容更改
UUID
执行内容升级的作业的ID。
- 任何与此执行相关的后续调用都需要此ID。
- 如果
mode
值设置为replicate
,则在AEM Publish实例上执行也需要位于同一jobId
下。
示例内容升级请求 example-content-upgrade-request
code language-http |
---|
|
code language-http |
---|
|
获取内容升级的状态 get-the-status-of-a-content-upgrade
/libs/dam/cfm/maintenance.json
GET
<UUID>
jobId
。包含内容升级的详细状态:
-
每隔间隔(秒)更新一次。
-
uuidUpgradeService
执行有两个阶段:- 阶段–0以升级内容片段模型
- 升级内容片段的阶段1
-
在每个阶段中,统计信息会在每个间隔后更新。
-
“jobStatus”:“COMPLETED”将升级标记为已成功完成。
-
其他状态值不言自明。
示例内容升级状态请求 example-content-upgrade-status-request
code language-http |
---|
|
code language-http |
---|
|
除了从HTTP端点获得的正在运行的内容升级的状态之外,AEM日志还提供有关内容级别进度的详细信息。 例如:
code language-xml |
---|
|
此外,在处理内容片段和模型的每个区段(批次)后,将记录累积状态,以总结迄今为止的进度。 例如:
code language-xml |
---|
|
中止内容升级 abort-a-content-upgrade
- 不还原已做出的任何更改
- 可能会使您的内容处于混合状态
/libs/dam/cfm/maintenance.json
POST
<UUID>
jobId
。包含内容升级的详细状态:
- 要注意的状态是“jobStatus”:“ABORTED”。
中止操作后,将不会处理任何挂起的数据段。 - 如果jobStatus在中止之前为“COMPLETED”,则调用没有任何效果。
中止内容升级请求的示例 example-abort-content-upgrade-request
code language-http |
---|
|
code language-http |
---|
|