구성 파이프라인 사용하기 config-pipelines
구성 파이프라인을 사용하여 로그 전달 설정, 제거 관련 유지 관리 작업 및 다양한 CDN 구성과 같은 다양한 구성을 AEM as a Cloud Service에 배포하는 방법에 대해 알아봅니다.
개요 overview
Cloud Manager 구성 파이프라인은 YAML 형식으로 생성된 구성 파일을 대상 환경에 배포합니다. 로그 전달, 제거 관련 유지 관리 작업 및 여러 CDN 기능을 포함하여 AEM as a Cloud Service의 다양한 기능을 이러한 방식으로 구성할 수 있습니다.
구성 파이프라인은 Cloud Manager을 통해 프로덕션(샌드박스가 아닌) 프로그램의 개발, 스테이지 및 프로덕션 환경 유형에 배포할 수 있습니다. 명령줄 도구를 사용하여 RDE(빠른 개발 환경)에 구성 파일을 배포할 수 있습니다.
이 문서의 다음 섹션에서는 구성 파이프라인을 사용하는 방법 및 그에 대한 구성을 구성하는 방법에 대한 중요한 정보에 대한 개요를 제공합니다. 구성 파이프라인에서 지원하는 기능의 전체 또는 하위 집합에서 공유되는 일반적인 개념에 대해 설명합니다.
- 지원되는 구성 - 구성 파이프라인으로 배포할 수 있는 구성 목록
- 구성 파이프라인 만들기 및 관리 - 구성 파이프라인을 만드는 방법.
- 일반 구문 - 구성 간에 공유된 구문
- 폴더 구조 - 구성에 필요한 구조 구성 파이프라인을 설명합니다.
- 비밀 환경 변수 - 환경 변수를 사용하여 구성에 비밀을 표시하지 않는 예입니다.
지원되는 구성 configurations
다음 표는 이러한 구성의 포괄적인 목록을 제공하며, 개별 구성 구문 및 기타 정보를 설명하는 전용 설명서에 대한 링크를 제공합니다.
kind
값LogForwarding
구성 파이프라인 생성 및 관리 creating-and-managing
파이프라인을 만들고 구성하는 방법에 대한 자세한 내용은 CI/CD 파이프라인 문서를 참조하십시오.
Cloud Manager에서 구성 파이프라인을 만들 때 파이프라인을 구성할 때 전체 스택 코드 이 아닌 대상 배포 를 선택해야 합니다.
앞에서 설명한 대로 RDE에 대한 구성은 파이프라인이 아닌 명령줄 도구를 사용하여 배포됩니다.
일반 구문 common-syntax
각 구성 파일은 다음 예제 코드 조각과 유사한 속성으로 시작됩니다.
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
kind
version
envTypes
metadata
노드의 자식 속성입니다. 가능한 값은 dev, stage, prod 또는 모든 조합이며 구성이 처리될 환경 유형을 결정합니다. 예를 들어 배열에 dev
만 포함된 경우 구성이 스테이지 또는 프로덕션 환경에 배포되더라도 구성이 로드되지 않습니다.yq
유틸리티를 사용하여 구성 파일의 YAML 형식을 로컬로 확인할 수 있습니다(예: yq cdn.yaml
).
폴더 구조 folder-structure
/config
또는 유사한 이름의 폴더는 트리의 맨 위에 있어야 하며 그 아래 트리 어딘가에 YAML 파일이 하나 더 있어야 합니다.
예:
/config
cdn.yaml
또는
/config
/dev
cdn.yaml
/config
아래의 폴더 이름 및 파일 이름은 임의의 이름입니다. 그러나 YAML 파일에는 유효한 kind
속성 값이 있어야 합니다.
일반적으로 구성은 모든 환경에 배포됩니다. 각 환경에 대해 모든 속성 값이 동일하면 단일 YAML 파일로 충분합니다. 하지만 낮은 환경을 테스트하는 등의 경우에는 환경마다 속성 값이 다른 것이 일반적입니다.
다음 섹션에서는 파일을 구조화하기 위한 몇 가지 전략을 설명합니다.
모든 환경을 위한 단일 구성 파일 single-file
파일 구조는 다음과 유사합니다.
/config
cdn.yaml
logForwarding.yaml
모든 환경 및 모든 구성 유형(CDN, 로그 전달 등)에 대해 동일한 구성으로 충분한 경우 이 구조를 사용합니다. 이 시나리오에서는 envTypes
배열 속성에 모든 환경 유형이 포함됩니다.
kind: "cdn"
version: "1"
metadata:
envTypes: ["dev", "stage", "prod"]
암호 유형 환경 변수를 사용하면 ${{SPLUNK_TOKEN}}
참조에 표시된 대로 암호 속성이 환경별로 달라질 수 있습니다
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "AEMaaCS"
환경 유형별 개별 파일 file-per-env
파일 구조는 다음과 유사합니다.
/config
cdn-dev.yaml
cdn-stage.yaml
cdn-prod.yaml
logForwarding-dev.yaml
logForwarding-stage.yaml
logForwarding-prod.yaml
속성 값에 차이가 있을 수 있는 경우 이 구조를 사용합니다. 예를들어, 파일에서 envTypes
배열 값은 접미사와 일치해야 합니다
값이 ["dev"]
인 cdn-dev.yaml
및 logForwarding-dev.yaml
, 값이 ["stage"]
인 cdn-stage.yaml
및 logForwarding-stage.yaml
등입니다.
환경당 폴더 folder-per-env
이 전략에서는 환경당 별도의 config
폴더가 있으며 각 폴더에 대해 Cloud Manager에서 선언된 별도의 파이프라인이 있습니다.
이 접근 방식은 각 개발 환경에 고유한 속성 값이 있는 경우 특히 유용합니다.
파일 구조는 다음과 유사합니다.
/config/dev1
cdn.yaml
logForwarding.yaml
/config/dev2
cdn.yaml
logForwarding.yaml
/config/prod
cdn.yaml
logForwarding.yaml
이 방법의 변형은 환경당 별도의 분기를 유지 관리하는 것입니다.
보안 환경 변수 secret-env-vars
중요한 정보를 소스 제어에 저장할 필요가 없도록 구성 파일은 secret 유형의 Cloud Manager 환경 변수를 지원합니다. 로그 전달을 비롯한 일부 구성의 경우 특정 속성에 대해 보안 환경 변수가 필수입니다.
아래 코드 조각은 구성에 보안 환경 변수 ${{SPLUNK_TOKEN}}
이(가) 사용되는 방법의 예입니다.
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "AEMaaCS"
환경 변수를 사용하는 방법에 대한 자세한 내용은 Cloud Manager 환경 변수 문서를 참조하십시오.