升級您的內容片段以供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解碼路徑。 無法移動模型,因此此值仍是穩定的。
-
Assets
- 透過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 Author執行個體上執行工作
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 |
---|
|