UUID 参照用のコンテンツフラグメントのアップグレード upgrade-content-fragments-for-UUID-references
GraphQL フィルターの安定性を最適化するには、コンテンツフラグメント内のコンテンツとフラグメント参照をアップグレードして、Universally Unique Identifier(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 に基づく参照を使用する場合、次の制限が適用されます。
-
モデル
- コンテンツフラグメント UUID またはコンテンツ参照 UUID フィールドを持つ新しいコンテンツフラグメントモデルは、OpenAPI 経由では作成できません。
- モデルの
id
フィールドは UUID ベースに変更されていません。これは、モデルの base64 デコードされたパスを使用します。モデルは移動できないので、この値は引き続き安定します。
-
アセット
- OpenAPI 経由でコンテンツフラグメントを作成する際、UUID ベースの参照フィールドの値を設定する場合でも、フラグメントまたはアセットへの参照を指定するには、それぞれ
fragment-reference
またはcontent-reference
フィールドタイプを使用する必要があります。
- OpenAPI 経由でコンテンツフラグメントを作成する際、UUID ベースの参照フィールドの値を設定する場合でも、フラグメントまたはアセットへの参照を指定するには、それぞれ
アップグレードの計画 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
次のいずれかを指定します。
- すべての AEM 設定をアップグレードするルート
/conf
。 - 選択された AEM 設定パス。コンテンツのアップグレードが実行される対象
例:/conf/wknd-shared
は、シングルテナントwknd-shared
のみをアップグレードします。
10
replicate
、noReplicate
replicate
:すべての AEM パブリッシュインスタンスで同じジョブをレプリケートします。noReplicate
:AEM オーサーインスタンスでのみジョブを実行します。
true
、false
false
:コンテンツの変更を保存せずに、コンテンツのアップグレードをシミュレートします。true
:コンテンツのアップグレードを実行し、コンテンツの変更を保存します。
UUID
コンテンツのアップグレードを実行するジョブの ID。
- この ID は、この実行に関連する後続のすべての呼び出しで必要になります。
mode
値がreplicate
に設定されている場合、AEM パブリッシュインスタンスでの実行も同じ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
の実行には次の 2 つのフェーズがあります。- フェーズ 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 |
---|
|