업그레이드하지 말아야 할 경우
업그레이드하지 마십시오.
- UUID는 아직 페이지 참조에 지원되지 않으므로 콘텐츠 조각 중 하나라도 페이지 참조를 사용하는 경우
UUID 참조의 제한 사항
현재 UUID를 기반으로 참조를 사용할 때는 다음 제한이 적용됩니다.
-
모델
- 컨텐츠 조각 UUID 또는 컨텐츠 참조 UUID 필드가 있는 새 컨텐츠 조각 모델을 OpenAPI를 통해 생성할 수 없습니다.
- 모델에 대한
id
필드가 UUID 기반으로 변경되지 않았습니다. 모델의 base64 디코딩 경로를 사용합니다. 모델을 이동할 수 없으므로 이 값은 여전히 안정적입니다.
-
자산
- OpenAPI를 통해 콘텐츠 조각을 만드는 경우 UUID 기반 참조 필드의 값을 설정하는 경우에도 조각 또는 에셋에 대한 참조를 지정하는 데 각각
fragment-reference
또는content-reference
필드 형식을 사용해야 합니다.
- OpenAPI를 통해 콘텐츠 조각을 만드는 경우 UUID 기반 참조 필드의 값을 설정하는 경우에도 조각 또는 에셋에 대한 참조를 지정하는 데 각각
계획 업그레이드
업그레이드를 실행하기 전에 몇 가지 준비 단계를 수행해야 합니다.
시험 실행
콘텐츠를 업그레이드할 때마다 매 마다 먼저 시험 실행을 수행하는 것이 좋습니다. 이렇게 하면 잠재적인 문제를 강조 표시하는 항목이 있는 로그 파일이 만들어집니다.
- 잘못된 참조
- 페이지 참조
dryRun
모드에서 콘텐츠 업그레이드를 실행하여 다음 작업을 수행합니다.
- 잘못된 참조를 식별하여 로그 파일에 나열합니다.
그런 다음 실제 콘텐츠 업그레이드를 실행하기 전에 이러한 참조를 수정할 수 있습니다. - 페이지 참조를 식별하여 로그 파일에 나열합니다.
페이지 참조가 검색되면 콘텐츠 업그레이드를 실행하지 말아야 합니다.
컨텐츠 고정 적용
콘텐츠 업그레이드 실행은 콘텐츠 동결 기간 동안 계획해야 합니다.
콘텐츠가 동결되는 기간은 업그레이드되는 콘텐츠 조각의 볼륨에 따라 다릅니다. 따라서 업그레이드의 범위는 몇 분에서 몇 시간 사이일 수 있으며 콘텐츠 업그레이드를 시작할 때 사용되는 매개 변수에 따라서도 달라집니다.
콘텐츠 업그레이드 실행
끝점을 사용하여 콘텐츠 업그레이드를 관리할 수 있습니다. /libs/dam/cfm/maintenance.json
Administrator
역할이 필요합니다.콘텐츠 업그레이드 시작
끝점 | HTTP 요청 유형 | 댓글 |
---|---|---|
/libs/dam/cfm/maintenance.json | POST | |
요청 매개 변수 | 값 | |
action | start | |
serviceTypeId | uuidUpgradeService | 서비스 유형 ID(사전 정의된 고정 값). |
segmentSize | 1000 | 한 세그먼트(일괄 처리)에서 업그레이드할 콘텐츠 조각 또는 모델의 수입니다. |
기본 경로 | /conf |
다음 중 하나를 지정합니다.
|
간격 | 10 | 콘텐츠 조각 또는 모델의 다음 세그먼트가 업그레이드되는 간격(초)입니다. |
모드 | replicate , noReplicate |
|
dryRun | true , false |
|
응답 세부 정보 | 값 | |
jobId | UUID |
콘텐츠 업그레이드를 실행하는 작업의 ID입니다.
|
매개 변수 | 콘텐츠 업그레이드 매개 변수 | 여기에는 콘텐츠 업그레이드를 시작하기 위해 제공되는 초기 매개 변수와 일부 내부 기본값이 포함됩니다. |
콘텐츠 업그레이드 요청 예
요청
POST http://localhost:4502/libs/dam/cfm/maintenance.json
Content-Type: application/json
Authorization: _REPLACE_WITH_VALID_AUTH_
Accept: application/json
{
"action": "start",
"serviceTypeId": "uuidUpgradeService",
"segmentSize": 1000,
"basePath": "/conf/wknd-shared",
"interval": 10,
"mode": "replicate",
"dryRun": true
}
응답
HTTP/1.1 200 OK
Date: Wed, 16 Oct 2024 14:34:37 GMT
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Length: 386
{
"jobId": "91af43a6-63ff-45e5-ac7b-06ccf565bdfa",
"jcr:created": 1729089277309,
"parameters": {
"mode": "replicate",
"dryRun": true,
"segmentSize": 1000,
"serviceTypeId": "uuidUpgradeService",
"action": "start",
"basePath": "/conf/wknd-shared",
"topic": "cfm/maintenance",
"interval": 10,
"cronSchedule": "*/10 * * * * ?"
}
}
콘텐츠 업그레이드 상태 가져오기
끝점 | HTTP 요청 유형 | 댓글 |
---|---|---|
/libs/dam/cfm/maintenance.json | GET | |
요청 매개 변수 | 값 | |
action | 상태 | |
jobId | <UUID> | 콘텐츠 업그레이드를 시작하기 위한 호출에서 반환된 jobId 입니다. |
응답 세부 정보 | 값 | |
상태 | JSON 값 |
콘텐츠 업그레이드의 자세한 상태를 포함합니다.
|
콘텐츠 업그레이드 상태 요청 예
요청
GET http://localhost:4502/libs/dam/cfm/maintenance.json?action=status&jobId=91af43a6-63ff-45e5-ac7b-06ccf565bdfa
Authorization: _REPLACE_WITH_VALID_AUTH_
Accept: application/json
응답
HTTP/1.1 200 OK
Date: Wed, 16 Oct 2024 14:35:51 GMT
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Length: 1116
{
"jobId": "91af43a6-63ff-45e5-ac7b-06ccf565bdfa",
"jcr:created": 1729089277309,
"eventProcessed": 1,
"parameters": {
"mode": "replicate",
"dryRun": true,
"segmentSize": 1000,
"serviceTypeId": "uuidUpgradeService",
"action": "start",
"confPath": "/conf/wknd-shared",
"topic": "cfm/uuid-migration",
"interval": 10,
"cronSchedule": "*/10 * * * * ?"
},
"status": {
"jobStatus": "COMPLETED",
"lastModified": 1729089310301,
"currentPhaseIndex": 1,
"phases": {
"phase-0": {
"bookmark": 1727183332520,
"stats": {
"successCount": 2,
"skippedCount": 1,
"errorCount": 0
},
"name": "modelUpgrade",
"lastModified": 1729089290040,
"isCompleted": true
},
"phase-1": {
"bookmark": 1727183347990,
"stats": {
"successCount": 29,
"skippedCount": 0,
"errorCount": 1
},
"name": "cfUpgrade",
"lastModified": 1729089310298,
"isCompleted": true
}
}
}
}
샘플 로그 파일
AEM 로그는 HTTP 끝점에서 가져온 실행 중인 콘텐츠 업그레이드의 상태 외에도 콘텐츠 수준의 진행 상황에 대한 자세한 정보를 제공합니다. 예:
#Successful model upgrade
com.adobe.cq.dam.cfm.impl.servicing.uuid.* Phase phase-0: resource: /conf/wknd-shared/settings/dam/cfm/models/article , status: SUCCESS, skips: [], errors: []
#Successful content fragment upgrade
com.adobe.cq.dam.cfm.impl.servicing.uuid.* Phase phase-1: resource: /content/dam/wknd-shared/en/magazine/san-diego-surf-spots/san-diego-surfspots , status: SUCCESS, skips: [], errors: []
#Unsuccessful/Skipped model upgrade
com.adobe.cq.dam.cfm.impl.servicing.uuid.* Phase phase-0: resource: /conf/wknd-shared/settings/dam/cfm/models/adventure , status: SKIPPED, skips: [Model: '/conf/wknd-shared/settings/dam/cfm/models/adventure', no upgradeable fields found], errors: []
#Unsuccessful content fragment upgrade
com.adobe.cq.dam.cfm.impl.servicing.uuid.* Phase phase-1: resource: /content/dam/wknd-shared/en/magazine/western-australia/western-australia-by-camper-van , status: FAILED, skips: [], errors: [Path '/content/dam/wknd-shared/en/magazine/western-australia/western-australia-by-camper-van', Variation: 'master' Field 'featuredImage', Value '/content/dam/wknd-shared/en/magazine/western-australia/adobestock_156407519.jpeg' is invalid; will not upgrade this field.]
또한 콘텐츠 조각 및 모델의 각 세그먼트(배치) 처리 후 누적 상태가 기록되어 지금까지의 진행 상황이 요약됩니다. 예:
com.adobe.cq.dam.cfm.impl.servicing.PhaseChainProcessor Phase phase-x, processed a segment, stats: {successCount=29, skippedCount=0, errorCount=1}
콘텐츠 업그레이드 중단
- 이미 변경한 내용을 되돌리지 않습니다.
- 은(는) 콘텐츠를 혼합 상태로 둘 수 있습니다
끝점 | HTTP 요청 유형 | 댓글 |
---|---|---|
/libs/dam/cfm/maintenance.json | POST | |
요청 매개 변수 | 값 | |
action | abort | |
jobId | <UUID> | 콘텐츠 업그레이드를 시작하기 위한 호출에서 반환된 jobId 입니다. |
응답 세부 정보 | 값 | |
상태 | JSON 값 |
콘텐츠 업그레이드의 자세한 상태를 포함합니다.
|
예 콘텐츠 업그레이드 요청 중단
요청
POST http://localhost:4502/libs/dam/cfm/maintenance.json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
Accept: application/json
{
"action": "abort",
"jobId": "b1dbf6f9-5f59-4007-b631-01b63cd17807"
"mode": "replicate",
}
응답
HTTP/1.1 200 OK
Date: Wed, 16 Oct 2024 14:39:03 GMT
{
"jobId": "b1dbf6f9-5f59-4007-b631-01b63cd17807",
...
"eventProcessed": 2,
"parameters": {
...
"abort": true,
...
},
"status": {
"jobStatus": "ABORTED",
...
}
}