콘텐츠로 이동

기록 버전 복제



POST /api/v1/pipeline_history/{pipeline_history_uuid}/clone

개요

기록 설정에서 새 Pipeline v1을 생성합니다. source를 지정하지 않으면 기록 값을 따르고, 빈 배열을 명시적으로 전달하면 빈 값으로 대체되며, 이후 생성 검증이 계속 실행됩니다.

경로 매개변수

매개변수 이름 유형 필수 설명
pipeline_history_uuid string Y 기록 목록 historyRecord[].uuid로 반환된 기록 UUID이며, Pipeline UUID나 숫자 id가 아닙니다.

Body 요청 매개변수

매개변수 이름 유형 필수 설명
name string Y 새 Pipeline 이름
빈 값 허용: False
빈 문자열 허용: False
최대 길이: 256
$notSearchRegExp: [^a-zA-Z0-9_\u4e00-\u9fa5-]+
type string Y 새 Pipeline 실행 유형
빈 값 허용: False
허용 값: ['local', 'central']
source array 선택적 새 source 목록. 지정하지 않으면 기록 버전의 source를 사용합니다.
빈 값 허용: False
isForce boolean 기본 Pipeline 충돌 확인
빈 값 허용: False

매개변수 추가 설명

지정된 기록 설정에서 독립적인 Pipeline을 생성합니다. 이전 버전 보존, 새 규칙 생성 또는 실행 유형 전환에 적합하며, 소스 Pipeline은 수정되지 않습니다.

매개변수 및 동작

name과 type은 필수입니다. type=local은 로컬 Pipeline, type=central은 중앙 Pipeline을 의미합니다. 새 이름은 최대 256자이며, 허용 문자 제약은 일반 생성 인터페이스와 동일합니다. 이름과 source는 기존 생성 검증을 통과해야 합니다.

source를 지정하지 않으면 기록 값을 상속합니다. 빈 배열([])을 명시적으로 전달하면 빈 목록으로 대체되고, 비어 있지 않은 배열을 명시적으로 전달하면 새 목록이 사용됩니다. 특수 카테고리는 기존 비즈니스 규칙에 따라 source가 조립되므로, 빈 배열이 카테고리 검증이나 소스 충돌을 우회한다고 보장할 수 없습니다. 기록 source를 그대로 사용하면 원래 Pipeline과 충돌하는 경우가 많으므로, 대상 실행 유형과 카테고리에 맞는 새 source를 선택하는 것이 좋습니다.

새 리소스는 configVersion=1부터 시작하며, 출처는 history/history_clone으로 표시되고 소스 기록 UUID, Pipeline UUID 및 버전 번호가 유지됩니다. 클론은 원본 리소스의 전체 기록 체인을 상속하지 않으며, 기본 Pipeline(asDefault=0)으로 자동 설정되지 않습니다. 나머지 설정은 기록 스냅샷에서 가져오므로, 이 요청에서 content, category 또는 extend를 임의로 제출할 수 없습니다. 추가 편집이 필요하면 클론 후 일반 수정 인터페이스를 호출하세요.

isForce는 Front와의 정렬을 위해 유지되는 기본 충돌 확인 매개변수이며, 기본값은 false입니다. 기록 클론은 현재 asDefault=0으로 고정되어 있으므로 일반적으로 설정할 필요가 없습니다. 이 매개변수로 이름/source 검증을 건너뛸 수 없습니다.

사용 전제 조건

소속 워크스페이스의 DF-API-KEY를 사용하여 OpenAPI 서비스를 호출합니다. 조회에는 읽기 권한이 필요하고, 복원 및 클론에는 Pipeline 관리 및 쓰기 권한이 필요합니다. 이 인터페이스는 요청 본문을 통해 다른 워크스페이스나 작업자를 지정하는 것을 지원하지 않습니다. 예제의 Endpoint, 리소스 UUID 및 API-Key는 모두 자리 표시자이므로 교체한 후 호출하고, 로그에 API Key를 출력하지 마세요.

응답 예제는 가상 리소스를 사용하여 일반적인 비즈니스 필드를 보여줍니다. 실제 응답에는 일반 Pipeline 인터페이스의 다른 필드가 포함될 수 있습니다. 호출자는 새로 추가된 필드와 호환되어야 합니다.

버전 필드

필드 의미
configVersion 구성 버전 번호. 새 리소스는 1부터 시작하며, 활성화/비활성화는 이 버전을 증가시키지 않습니다.
configVersionAt 이 구성 버전의 생성 시간. Unix 초 단위 타임스탬프이며 밀리초가 아닙니다.
configVersionOperator / configVersionOperatorInfo 작업자 식별자 및 표시 정보. 표시 정보를 해석할 수 없으면 빈 객체일 수 있습니다.
configVersionSource / configVersionAction 버전 출처 및 동작(예: openapi/modify, history/history_restore)
configVersionSourceInfo 출처 추가 정보. 기록 작업에는 pipelineHistoryUUID, pipelineUUID, configVersion이 포함됩니다.
createAt 기록 스냅샷 보관 시간. configVersionAt보다 늦을 수 있으며, 기록 목록 보존 기간은 이 필드를 기준으로 계산됩니다.

기록의 config.content와 config.testData는 Base64 인코딩 문자열입니다. 호출자는 먼저 Base64로 디코딩한 후 UTF-8로 읽어야 합니다. testData는 테스트 샘플이며 읽기 또는 복원 인터페이스로 자동 실행되지 않습니다. configVersionSourceInfo의 출처 버전 번호를 현재 버전 번호로 착각하지 마세요.

응답 및 재시도

성공 시 content는 일반 생성 인터페이스의 Pipeline 객체를 그대로 사용하며, uuid는 새 리소스 UUID입니다. 소스 UUID는 configVersionSourceInfo에 있습니다. 생성 작업은 멱등 키를 제공하지 않으므로, 시간 초과 후 대상 리소스가 생성되었는지 먼저 조회하여 무조건적인 재시도로 인한 중복 생성이나 이름 충돌을 방지하세요. 권한이 없거나, 소스가 존재하지 않거나, 소속 Pipeline이 삭제된 경우 리소스가 생성되지 않습니다.

요청 예시

curl -X POST 'https://openapi.guance.com/api/v1/pipeline_history/<pipeline_history_uuid>/clone' -H 'DF-API-KEY: <API-Key>' -H 'Content-Type: application/json' -d '{"name":"copy","type":"local","source":[]}'

응답

{
    "code": 200,
    "content": {
        "name": "copy",
        "type": "local",
        "category": "logging",
        "source": [],
        "content": "YWRkX2tleShjaXR5LCAic2hhbmdoYWkiKQ==",
        "testData": "W10=",
        "dataType": "line_protocol",
        "asDefault": 0,
        "enableByLogBackup": 0,
        "extend": {},
        "id": 11,
        "uuid": "pl_copy",
        "workspaceUUID": "wksp_example",
        "status": 0,
        "creator": "acnt_example",
        "updator": "acnt_example",
        "createAt": 1788799900,
        "updateAt": 1788800200,
        "deleteAt": -1,
        "configVersion": 1,
        "configVersionAt": 1788800200,
        "configVersionOperator": "acnt_example",
        "configVersionSource": "history",
        "configVersionAction": "history_clone",
        "configVersionSourceInfo": {
            "pipelineHistoryUUID": "plh_example",
            "pipelineUUID": "pl_example",
            "configVersion": 2
        }
    },
    "errorCode": "",
    "message": "",
    "success": true,
    "traceId": "TRACE_EXAMPLE"
}

문서 평가

이 페이지가 도움이 되었나요?