최적화된 GraphQL 필터링을 위해 콘텐츠 조각 업데이트
- 주제:
- 헤드리스
작성 대상:
- 관리자
- 개발자
GraphQL 필터의 성능을 최적화하려면 콘텐츠 조각을 업데이트하는 절차를 실행합니다.
사전 요구 사항
이 작업에 대한 사전 요구 사항은 다음과 같습니다.
-
AEM as a Cloud Service의 2023.1.0 이상 릴리스가 있는지 확인하십시오.
-
작업을 수행하는 사용자에게 필요한 권한이 있는지 확인하십시오.
- 최소한 Cloud Manager의
Deployment Manager
역할이 필요합니다.
- 최소한 Cloud Manager의
콘텐츠 조각 업데이트
-
Cloud Manager UI를 사용해 인스턴스에 대해 다음 변수를 설정하여 업데이트를 활성화합니다.
사용 가능한 변수는 다음과 같습니다.
이름 값 기본 값 서비스 적용 여부 유형 메모 1 CF_MIGRATION_ENABLED
1
0
모두 변수 콘텐츠 조각 마이그레이션 작업의 트리거를 활성화(!=0) 또는 비활성화(0)합니다. 2 CF_MIGRATION_ENFORCE
1
0
모두 변수 콘텐츠 조각의 리마이그레이션을 시행(!=0)합니다. 이 플래그를 0으로 설정하면 CF의 증분 마이그레이션이 수행됩니다. 즉, 어떤 이유로든 작업이 종료되면 다음에 작업을 실행했을 때 종료된 위치에서 마이그레이션이 시작됩니다. 최초의 마이그레이션은 시행(값=1)하는 것이 좋습니다. 3 CF_MIGRATION_BATCH
50
50
모두 변수 마이그레이션 후 콘텐츠 조각 수를 저장하기 위한 일괄 처리 크기입니다. 얼마나 많은 CF가 한 일괄 처리에서 저장소에 저장되는지와 관련이 있으며 저장소에 대한 쓰기 수를 최적화하는 데 사용할 수 있습니다. 4 CF_MIGRATION_LIMIT
1000
1000
모두 변수 한 번에 처리할 콘텐츠 조각의 최대 수입니다. CF_MIGRATION_INTERVAL
에 대한 메모도 참조하십시오.5 CF_MIGRATION_INTERVAL
60
600
모두 변수 다음 제한까지 남은 콘텐츠 조각을 처리하는 간격(초)입니다. 이 간격은 작업을 시작하기 전의 대기 시간이자 이후의 CF_MIGRATION_LIMIT 개수의 CF를 처리하는 사이의 지연 시간으로 간주됩니다. (*) NOTE
(*)CF_MIGRATION_INTERVAL
의 값은 또한 마이그레이션 작업의 총 실행 시간을 추정하는 데 도움이 될 수 있습니다.예:- 콘텐츠 조각의 총 수 = 20,000
- CF_MIGRATION_LIMIT = 1000
- CF_MIGRATION_INTERNAL = 60(초)
- 마이그레이션 완료에 필요한 대략적인 시간 = 60 + (20,000/1000 * 60) = 1260초 = 21분
시작 시 추가된 “60”초는 작업 시작 시 초기 지연으로 인한 것입니다.
이는 작업을 완료하는 데 필요한 최소한 의 시간이며 I/O 시간은 포함하지 않습니다. 소요되는 실제 시간은 이 추정치보다 더 클 수 있습니다. -
진행 상황과 업데이트 완료를 모니터링합니다.
이를 위해서는 다음의 작성자 및 골든 게시에 대한 로그를 모니터링하십시오.
-
com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob
-
작성자 로그, 예:
23.01.2023 13:13:45.926 *INFO* [sling-threadpool-09cbdb47-4d99-4c4c-b6d5-781b635ee21b-(apache-sling-job-thread-pool)-1-Content Fragment Upgrade Job Queue Config(cfm/upgrader)] com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob This instance<dd9ffdc1-0c28-4d04-9a96-5d4d223e457e> is the leader, will schedule the upgrade schedule job. ... 23.01.2023 13:13:45.941 *INFO* [sling-threadpool-09cbdb47-4d99-4c4c-b6d5-781b635ee21b-(apache-sling-job-thread-pool)-1-Content Fragment Upgrade Job Queue Config(cfm/upgrader)] com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob Scheduling content fragments upgrade from version 0 to 1, slingJobId: 2023/1/23/13/13/50e1a575-4cd7-497b-adf0-62cb5768eedb_0, enforce: true, limit: 1000, batch: 50, interval: 60s 23.01.2023 13:20:40.960 *INFO* [sling-threadpool-09cbdb47-4d99-4c4c-b6d5-781b635ee21b-(apache-sling-job-thread-pool)-1-Content Fragment Upgrade Job Queue Config(cfm/upgrader)] com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob Finished content fragments upgrade in 6m, slingJobId: 2023/1/23/13/13/50e1a575-4cd7-497b-adf0-62cb5768eedb_0, status: MaintenanceJobStatus{jobState=SUCCEEDED, statusMessage='Upgrade to version '1' succeeded.', errors=[], successCount=3781, failedCount=0, skippedCount=0}
-
골든 게시 로그, 예:
23.01.2023 12:35:05.150 *INFO* [sling-threadpool-8abcc1bb-cdcb-46d4-8565-942ad8a73209-(apache-sling-job-thread-pool)-1-Content Fragment Upgrade Job Queue Config(cfm/upgrader)] com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob This instance<ad1b399e-77be-408e-bc3f-57097498fddb> is the leader, will schedule the upgrade schedule job. 23.01.2023 12:35:05.161 *INFO* [sling-threadpool-8abcc1bb-cdcb-46d4-8565-942ad8a73209-(apache-sling-job-thread-pool)-1-Content Fragment Upgrade Job Queue Config(cfm/upgrader)] com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob Scheduling content fragments upgrade from version 0 to 1, slingJobId: 2023/1/23/12/34/ad1b399e-77be-408e-bc3f-57097498fddb_0, enforce: true, limit: 1000, batch: 50, interval: 60s ... 23.01.2023 12:40:45.180 *INFO* [sling-threadpool-8abcc1bb-cdcb-46d4-8565-942ad8a73209-(apache-sling-job-thread-pool)-1-Content Fragment Upgrade Job Queue Config(cfm/upgrader)] com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob Finished content fragments upgrade in 5m, slingJobId: 2023/1/23/12/34/ad1b399e-77be-408e-bc3f-57097498fddb_0, status: MaintenanceJobStatus{jobState=SUCCEEDED, statusMessage='Upgrade to version '1' succeeded.', errors=[], successCount=3781, failedCount=0, skippedCount=0}
-
Splunk를 사용하여 환경 로그에 대한 액세스를 활성화한 고객은 아래 예제 쿼리를 사용하여 업그레이드 프로세스를 모니터링할 수 있습니다. Splunk 로깅 활성화에 대한 자세한 내용은 프로덕션 및 스테이지 디버깅을 참조하십시오.
index=<indexName> sourcetype=aemerror aem_envId=<environmentId> msg="*com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob Finished*" (aem_tier=golden-publish OR aem_tier=author) | table _time aem_tier pod_name msg | sort -_time desc
위치:
environmentId
- 고객 환경 식별자 (예:e1234
)indexName
- 고객 색인 이름,aemerror
이벤트 수집
출력 예:
_time aem_tier pod_name msg 2023-04-21 06:00:35.723 작성자 cm-p1234-e1234-aem-author-76d6dc4b79-8lsb5 [sling-threadpool-bb5da4dd-6b05-4230-93ea-1d5cd242e24f-(apache-sling-job-thread-pool)-1-Content Fragment Upgrade Job Queue Config(cfm/upgrader)] com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob Finished content fragments upgrade in 391m, slingJobId: 2023/4/20/23/16/db7963df-e267-489b-b69a-5930b0dadb37_0, status: MaintenanceJobStatus{jobState=SUCCEEDED, statusMessage='Upgrade to version '1' succeeded.', errors=[], successCount=36756, failedCount=0, skippedCount=0} 2023-04-21 06:05:48.207 골든 게시 cm-p1234-e1234-aem-golden-publish-644487c9c5-lvkv2 [sling-threadpool-284b9a9a-8454-461e-9bdb-44866c6ddfb1-(apache-sling-job-thread-pool)-1-Content Fragment Upgrade Job Queue Config(cfm/upgrader)] com.adobe.cq.dam.cfm.impl.upgrade.UpgradeJob Finished content fragments upgrade in 211m, slingJobId: 2023/4/20/23/15/66c1690a-cdb7-4e66-bc52-90f33394ddfc_0, status: MaintenanceJobStatus{jobState=SUCCEEDED, statusMessage='Upgrade to version '1' succeeded.', errors=[], successCount=19557, failedCount=0, skippedCount=0} -
-
업데이트 절차를 비활성화합니다.
IMPORTANT
이 단계는 업그레이드를 완료하는 데 필요합니다.업데이트 절차가 실행된 후 클라우드 환경 변수
CF_MIGRATION_ENABLED
를 ‘0’으로 재설정하여 모든 포드의 재활용을 트리거합니다. -
이름 값 기본 값 서비스 적용 여부 유형 메모 CF_MIGRATION_ENABLED
0
0
모두 변수 콘텐츠 조각 마이그레이션 작업의 트리거를 비활성화(0)(또는 활성화(!=0))합니다. NOTE
이는 게시 계층에 중요한데, 콘텐츠 업데이트가 골든 게시에서만 수행되며, 포드를 재활용할 때 모든 일반 게시 포드가 골든 게시를 기반으로 하기 때문입니다.업데이트 절차가 완료되었는지 확인합니다.
Cloud Manager 개발자 콘솔의 저장소 브라우저를 사용해 콘텐츠 조각 데이터를 확인하여 업데이트가 정상적으로 완료되었는지 확인할 수 있습니다.
-
첫 번째 전체 마이그레이션 전까지는
cfGlobalVersion
속성이 존재하지 않습니다.
따라서 JCR 노드/content/dam
에 이 속성이 있고 값이1
이면 마이그레이션이 완료된 것입니다. -
개별 콘텐츠 조각에서 다음 속성을 확인할 수도 있습니다.
_strucVersion
의 값이1
이어야 함indexedData
구조가 존재해야 함
NOTE
이 절차는 작성자 및 게시 인스턴스에서 콘텐츠 조각을 업데이트합니다.따라서 Adobe는 저장소 브라우저를 통해 최소 한 명의 작성자 및 하나의 게시 인스턴스에 대해 검증을 수행하는 것을 권장합니다.
-
제한 사항
다음 제한 사항을 알아 두십시오.
-
GraphQL 필터의 성능 최적화는 모든 콘텐츠 조각을 완전히 업데이트한 후에만 가능합니다(JCR 노드
/content/dam
에cfGlobalVersion
속성이 있으면 업데이트가 완료된 것). -
업데이트 절차를 실행한 후 콘텐츠 패키지에서 콘텐츠 조각을 가져온 경우(
crx/de
사용) 해당 콘텐츠 조각은 업데이트 절차가 다시 실행될 때까지 GraphQL 쿼리 결과에서 고려되지 않습니다.
Experience Manager
- 개요
- 릴리스 정보
- 릴리스 정보
- AEMaaCS 기능 릴리스 정보
- AEMaaCS 유지 관리 릴리스 정보
- Cloud Manager 릴리스 정보
- 마이그레이션 도구 릴리스 정보
- Experience Manager 강화 커넥터용 Workfront 릴리스 정보
- 베리에이션 생성 릴리스 정보
- 범용 편집기 릴리스 정보
- 새로운 기능
- AEM Cloud Service의 주요 변경 사항
- 사용 중단 및 제거된 기능과 API
- 프리릴리스 채널
- 보안
- AEM as a Cloud Service 보안 개요
- AEM as a Cloud Service에 대한 고급 네트워킹 구성
- AEM as a Cloud Service에 대한 IMS 지원
- AEM as a Cloud Service에 대한 Same Site 쿠키 지원
- 메일 서비스에 대한 OAuth2 지원
- WAF 규칙이 포함된 트래픽 필터 규칙
- Adobe Developer Console에서 JWT 자격 증명 사용 중단
- AEM as a Cloud Service에 대한 IMS 통합 설정
- Sling 서비스 사용자 매핑 및 서비스 사용자 정의의 모범 사례
- 온보딩
- AEM as a Cloud Service 마이그레이션 여정
- Sites
- AEM Cloud Service의 AEM Sites에 대한 주요 변경 사항
- Sites 및 Edge Delivery Services
- 작성
- 관리
- AEM as a Cloud Service와 통합
- AEM as a Cloud Service용 실제 사용 모니터링
- Assets
- 개요 및 새로운 기능
- Assets as a Cloud Service 주요 변경 사항
- Assets 아키텍처
- 지원되는 파일 형식
- 자산 마이크로서비스 개요
- Assets에서의 접근성
- Assets as a Cloud Service Ultimate
- Assets as a Cloud Service Ultimate 활성화
- Assets as a Cloud Service Prime
- Assets Collaborator 사용자
- AEM Assets를 통합하면서 Edge Delivery Services용 콘텐츠 작성
- 디지털 자산 관리
- 마이크로 프론트엔드 자산 선택기
- 마이크로 프론트엔드 대상 선택기
- 자산 공유
- 자산 재처리
- 자산 마이크로서비스 사용 시작하기
- 자산 추가 및 업로드
- 자산 검색
- 일반적인 자산 관리 작업
- 게시 관리
- 3D 자산 미리보기
- 이미지용 스마트 태그
- 비디오 자산에 스마트 태그 지정
- 자산 구성 방법
- Adobe Stock 자산 사용
- 컬렉션 관리
- 메타데이터 개요
- Adobe Creative Cloud와 통합
- 메타데이터 추가 또는 편집 방법
- 폴더 자산 및 컬렉션 검토
- Assets Insights 사용 및 구성
- 메타데이터 프로필
- 메타데이터 스키마
- 비디오 자산 관리
- MSM을 사용하여 자산 재사용
- 자산 다운로드
- 편집할 자산 체크인 및 체크아웃
- 비공개 폴더 생성 및 공유
- 자산용 Digital Rights Management
- 자산에 워터마크 추가
- Creative Cloud API를 사용하여 자산 처리
- 이미지용 색상 태그
- PDF 문서 관리
- Assets 구성, 관리 및 확장
- 자산 공유 및 배치
- 콘텐츠 조각
- Dynamic Media
- Dynamic Media 여정: 기본 사항
- Experience League의 Dynamic Media 뉴스레터 아카이브
- Dynamic Media 설정
- Dynamic Media를 사용하여 작업
- Dynamic Media 구성
- Dynamic Media Prime 및 Ultimate
- Dynamic Media Prime 및 Ultimate 활성화
- 옵션 - Dynamic Media, 일반 설정 구성
- 옵션 - Dynamic Media, 게시 설정 구성
- Dynamic Media 문제 해결
- Dynamic Media 별칭 계정 구성
- Dynamic Media에서의 접근성
- Dynamic Media 자산 관리
- 이미지 품질 최적화 모범 사례
- 이미지 프로필
- 비디오 프로필
- Dynamic Media 이미지 사전 설정 관리
- Dynamic Media 이미지 사전 설정 적용
- Dynamic Media 뷰어 사전 설정 관리
- Dynamic Media 뷰어 사전 설정 적용
- 일괄 처리 집합 사전 설정
- Dynamic Media의 방식으로 CDN 캐시 무효화
- Dynamic Media Classic의 방식으로 CDN 캐시 무효화
- 스마트 이미징
- 클라이언트측 디바이스 픽셀 비율을 활용한 스마트 이미징
- Dynamic Media 자산 전송
- Dynamic Media 템플릿
- Dynamic Media의 핫링크 보호 활성화
- 3D 지원
- Dynamic Media 제한 사항
- 이미지 세트
- 파노라마 이미지
- 혼합 미디어 세트
- 스핀 세트
- Dynamic Media의 비디오
- 슬라이드 배너
- 대화형 이미지
- 대화형 비디오
- 360 VR 비디오
- Dynamic Media 뷰어를 Adobe Analytics 및 Adobe Experience Platform 태그와 통합
- 빠른 보기를 사용하여 사용자 정의 팝업 만들기
- 반응형 사이트에 최적화된 이미지 게재
- Dynamic Media 자산 미리보기
- 페이지에 Dynamic Media 자산 추가
- 웹 페이지에 Dynamic Video 또는 Dynamic Image 뷰어 임베드
- 웹 애플리케이션에 URL 연결
- 규칙 세트를 사용하여 URL 변환
- Dynamic Media 자산 게시
- Dynamic Media의 선택적 게시를 사용하여 작업
- 선택기를 사용하여 작업
- 콘텐츠 FAQ의 HTTP2 게재
- Flash 뷰어 서비스 종료
- DHTML 뷰어 서비스 종료
- OpenAPI 기능이 포함된 Dynamic Media
- Assets 보기로 작업
- Content Hub
- 개요
- Content Hub 배포
- 브랜드 승인 자산을 Content Hub로 업로드 또는 가져오기
- Content Hub 사용자 인터페이스 구성
- Content Hub에 대한 자산 승인
- Content Hub에서 자산 검색
- 자산 속성
- Content Hub에서 자산 공유
- Content Hub를 사용하여 자산 다운로드
- Content Hub에서 라이선스가 부여된 자산 관리
- Content Hub에서 컬렉션 관리
- Content Hub에서 Adobe Express를 사용하여 이미지 편집
- Content Hub의 Asset Insights
- Content Hub에 대해 자주 묻는 질문
- 모범 사례
- Adobe Workfront와 통합
- Adobe Express와 통합
- Creative Cloud와 통합
- Forms
- 개요
- 설정 및 마이그레이션
- 통합
- 서비스
- Adobe Sign과 AEM Forms as a Cloud Service 통합
- DocuSign과 AEM Forms as a Cloud Service 통합
- Adobe Analytics에 적응형 양식 통합
- 적응형 양식 분석 보고서 보기 및 이해
- Adobe Workfront Fusion에 적응형 양식 제출
- Microsoft Power Automate와 적응형 양식 통합
- AEM Sites 페이지에 적응형 양식 임베드
- 외부 웹 페이지에 핵심 구성 요소 기반 적응형 양식 임베드
- 외부 웹 페이지에 기초 구성 요소 기반 적응형 양식 임베드
- Adobe Marketo Engage와 적응형 양식 통합
- Forms 데이터 모델
- 서비스
- 적응형 양식
- 적응형 양식 조각 만들기
- AEM Sites 페이지 또는 경험 조각에 적응형 양식 추가
- 핵심 구성 요소
- 적응형 양식 만들기
- 적응형 양식 만들기
- 핵심 구성 요소 기반 적응형 양식의 레이아웃 설정
- 적응형 양식 조각 만들기
- 적응형 양식의 테마 만들기 - 핵심 구성 요소
- 핵심 구성 요소 기반 적응형 템플릿 만들기
- XFA Forms 템플릿 기반 적응형 양식(핵심 구성 요소) 만들기
- 적응형 양식의 기록 문서 생성
- 기계 번역 또는 인간 번역을 사용하여 적응형 양식 번역
- 리디렉션 페이지 또는 감사 메시지 구성
- 반복 가능한 섹션으로 양식 만들기
- 적응형 양식에 대한 제출 액션 구성
- Azure Blob Storage에 적응형 양식 제출
- Microsoft에 적응형 양식 제출
- Microsoft® SharePoint에 적응형 양식 연결
- AEM 적응형 양식과 AEM Workflow 통합
- 적응형 양식의 REST 엔드포인트에 제출 액션 구성
- 적응형 양식의 이메일 보내기 제출 액션 구성
- 적응형 양식에서 Google reCAPTCHA 사용
- 적응형 양식 핵심 구성 요소의 hCaptcha 사용
- 적응형 양식 핵심 구성 요소의 Turnstile Captcha 사용
- 적응형 양식에서 사용자 정의 오류 핸들러 추가
- 핵심 구성 요소 기반 적응형 양식의 로케일 추가
- 적응형 양식에 대한 JSON 스키마 디자인 (핵심 구성 요소)
- 적응형 양식에 버전 관리, 댓글 및 주석 추가
- 적응형 양식 비교
- 사용자 정의 제출 액션 만들기
- Experience Manager Forms에서 게시 관리
- 핵심 구성 요소 기반 적응형 양식의 규칙 편집기 소개
- 핵심 구성 요소 기반 적응형 양식의 사용자 정의 함수 소개
- Forms 포털 및 해당 구성 요소 소개
- 적응형 양식 만들기
- 기초 구성 요소
- 적응형 양식 키워드
- 양식 미리보기
- 인터랙티브 커뮤니케이션
- Forms 중심 워크플로
- 커뮤니케이션 API
- 트랜잭션 보고서
- 개발자 API 참조
- 문제 해결
- Screens
- Content and Commerce
- Edge Delivery Services
- Edge Delivery Services 개요
- AEM과 함께 Edge Delivery Services 사용
- 작성 방법 선택
- WYSIWYG 작성
- 문서 기반 작성
- 애플리케이션 빌드
- 애플리케이션 실행
- Forms 빌드
- 개요
- WYSIWYG 작성
- Edge Delivery Services용 Forms Universal Editor 소개 - 전체 안내서
- 범용 편집기를 사용하여 작성을 시작하는 방법 - 단계별 자습서
- Universal Editor 인터페이스 안내서: 도구, 기능 및 탐색 설명
- 모바일 친화적인 Forms 만들기: 범용 편집기의 반응형 디자인
- 아름다운 Forms 디자인: 범용 편집기를 위한 스타일 및 테마 지정 가이드
- Forms에 동적 동작 추가: 규칙 편집기에 대한 전체 안내서
- 양식 제출 안내서: 양식 제출 작업 구성 및 사용자 지정
- 스팸으로부터 Forms 보호: reCAPTCHA 보안 추가
- Forms 게시 및 배포 방법: 범용 편집기 게시 안내서
- 사용자 지정 양식 구성 요소 빌드: 유니버설 편집기에 대한 개발자 안내서
- 문서 기반 작성
- 첫 번째 양식 작성: Google Sheets 및 Excel로 빠른 시작 안내서
- Google Sheets 또는 Excel을 사용하여 Forms을 만드는 방법: 단계별 안내서
- 적응형 양식 블록의 다양한 구성 요소
- 양식을 Google Sheets에 연결: 데이터 수집 설정 안내서
- 양식을 라이브로 만들기: 게시 및 데이터 수집 안내서
- 아름다운 Forms 디자인: 스타일 및 사용자 지정 안내서
- 성공 메시지 만들기: 양식의 감사 페이지 사용자 지정
- 양식 제출 안내서: Forms 제출 서비스 사용
- 동적 양식 필드: URL에서 옵션 로드
- 스마트 동작 추가: 양식 규칙 및 논리 안내서
- 동적 Forms 만들기: 반복 가능한 섹션 추가
- Forms 보호: reCAPTCHA 보안 추가
- Edge Delivery 리소스
- Headless
- 생성형 AI
- 구현
- AEM as a Cloud Service용 애플리케이션 구현
- Cloud Manager 사용
- AEM as a Cloud Service용 개발
- AEM 프로젝트 구조
- AEM 프로젝트 저장소 구조 패키지
- AEM as a Cloud Service SDK
- AEM 신속한 개발 환경
- AEM as a Cloud Service 개발 지침
- AEM as a Cloud Service Developer Console (Beta)
- 로깅
- 로그 전달
- 구성 및 구성 브라우저
- AEM 기술 기초
- API 참조 자료
- OpenAPI 기반 API
- 서버측 API용 액세스 토큰 생성
- 빠른 사이트 생성 및 프론트엔드 맞춤화
- 프론트엔드 파이프라인으로 Sites 개발
- 사이트 템플릿 및 테마 맞춤화
- AEM Headful 및 Headless
- Sling 모델 내보내기 도구를 통한 ResourceResolver 직렬화 비활성화
- 전체 스택 AEM 개발
- 범용 편집기
- Headless 경험 관리
- 하이브리드 및 SPA 개발
- 개발자 도구
- 개인화
- AEM as a Cloud Service 구성 및 확장
- AEM as a Cloud Service에 배포
- 작성자 계층
- 콘텐츠 게재 개요
- 커넥터
- 운영
- 규정 준수