시나리오 조회

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

배포 시나리오의 상세 정보를 조회합니다.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
GET /api/v1/project/{projectId}/stage/{stageId}/scenario/{scenarioId}

요청 헤더

SourceDeploy API에서 공통으로 사용하는 헤더에 대한 정보는 SourceDeploy 요청 헤더를 참조해 주십시오.

요청 경로 파라미터

요청 경로 파라미터에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
projectId String Required 프로젝트 아이디
stageId String Required 배포 스테이지 아이디
scenarioId String Required 배포 시나리오 아이디

요청 예시

요청 예시는 다음과 같습니다.

curl --location --request GET 'https://vpcsourcedeploy.apigw.gov-ntruss.com/api/v1/project/2***/stage/3***/scenario/2***' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}'

응답

응답 형식을 설명합니다.

응답 바디

응답 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
result Object - 응답 결과
result.project Object - 프로젝트 정보
result.project.id Number - 프로젝트 아이디
result.project.name String - 프로젝트 이름
result.stage Object - 배포 스테이지 정보
result.stage.id Number - 배포 스테이지 아이디
result.stage.name String - 배포 스테이지 이름
result.id Number - 배포 시나리오 아이디
result.name String - 배포 시나리오 이름
result.description String - 배포 시나리오 설명
result.type String - 배포 타깃
  • Server | AutoScalingGroup | KubernetesService | ObjectStorage
result.config Object - 배포 타깃 설정

TScenarioServer

TScenarioServer에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
strategy String - 배포 전략
  • normal: 기본 (유효값)
sequence Boolean - 순차 배포 여부
  • true | false
    • true: 순차 배포
    • false: 동시 배포
file Object - 배포 파일 정보
file.type String - 배포 파일 위치
  • ObjectStorage | SourceBuild | later
    • ObjectStorage: Object Storage
    • SourceBuild: SourceBuild
    • later: 나중에 설정
file.ObjectStorage Object - Object Storage 정보
  • file.typeObjectStorage인 경우, 하위 정보 포함하여 표시
file.ObjectStorage.bucket String - 버킷 이름
file.ObjectStorage.object String - 파일 이름
file.SourceBuild Object - SourceBuild 정보
  • file.typeSourceBuild인 경우, 하위 정보 포함하여 표시
file.SourceBuild.id Number - 빌드 프로젝트 아이디
file.SourceBuild.name String - 빌드 프로젝트 이름
rollback Boolean - 배포 실패 시 롤백 사용 여부
  • true | false
    • true: 사용
    • false: 사용 안 함
cmd.pre Array - 배포 전 실행 명령어 목록
cmd.deploy Array - 파일 배포 경로 목록
cmd.post Array - 배포 후 실행 명령어 목록

pre

pre에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
user String - 실행 계정
cmd String - 실행 명령

deploy

deploy에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
sourcePath String - 소스 파일 경로
deployPath String - 배포 경로

post

post에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
user String - 실행 계정
cmd String - 실행 명령

TScenarioAutoScalingGroup

TScenarioAutoScalingGroup에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
strategy String - 배포 전략
  • normal | blueGreen
    • normal: 기본
    • blueGreen: 블루/그린
sequence Boolean - 순차 배포 여부
  • true | false
    • true: 순차 배포
    • false: 동시 배포
file Object - 배포 파일 정보
file.type String - 배포 파일 위치
  • ObjectStorage | SourceBuild | later
    • ObjectStorage: Object Storage
    • SourceBuild: SourceBuild
    • later: 나중에 설정
file.ObjectStorage Object - Object Storage 정보
  • file.typeObjectStorage인 경우, 하위 정보 포함하여 표시
file.ObjectStorage.bucket String - 버킷 이름
file.ObjectStorage.object String - 파일 이름
file.SourceBuild Object - SourceBuild 정보
  • file.typeSourceBuild인 경우, 하위 정보 포함하여 표시
file.SourceBuild.id Number - 빌드 프로젝트 아이디
file.SourceBuild.name String - 빌드 프로젝트 이름
rollback Boolean - 배포 실패 시 롤백 사용 여부
  • true | false
    • true: 사용
    • false: 사용 안 함
cmd.pre Array - 배포 전 실행 명령어 목록
cmd.deploy Array - 파일 배포 경로 목록
cmd.post Array - 배포 후 실행 명령어 목록
loadBalancer Object - 로드 밸런서 정보
  • strategyblueGreen인 경우, 하위 정보 포함하여 표시
loadBalancer.loadBalancerTargetGroupNo Number - 로드 밸런서 Target Group 아이디
loadBalancer.loadBalancerTargetGroupName String - 로드 밸런서 Target Group 이름
loadBalancer.deleteAsg Boolean - 기존 Auto Scaling 그룹 삭제 여부
  • true | false
    • true: 삭제 및 반납
    • false: 유지
loadBalancer.deleteServer Boolean - 기존 Auto Scaling 그룹 소속 서버 반납 여부
  • true | false
    • true: 반납
    • false: 유지

pre

pre에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
user String - 실행 계정
cmd String - 실행 명령

deploy

deploy에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
sourcePath String - 소스 파일 경로
deployPath String - 배포 경로

post

post에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
user String - 실행 계정
cmd String - 실행 명령

TScenarioKubernetesService

TScenarioKubernetesService에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
strategy String - 배포 전략
  • rolling | blueGreen | canary
    • rolling: Rolling
    • blueGreen: 블루/그린
    • canary: Canary
manifest Object - 매니페스트 정보
manifest.type String - 매니페스트 파일 저장소
  • SourceCommit | Github Enterprise Server
manifest.url String - Git 리포지토리 URL
  • manifest.typeGithub Enterprise Server이고 SSH Key 방식으로 로그인한 경우, 표시
manifest.serverUrl String - 서버 URL
  • manifest.typeGithub Enterprise Server이고 OAuth이나 Personal Access Token, Username/Password 방식으로 로그인한 경우, 표시
result.env Object - 빌드 환경 정보
manifest.owner String - Github Enterprise Server 소유자
  • manifest.typeGithub Enterprise Server인 경우, 표시
manifest.repository String - 리포지토리 이름
  • manifest.typeSourceCommit인 경우, 표시
manifest.branch String - 브랜치 이름
  • manifest.typeSourceCommit인 경우, 표시
manifest.path Array - 파일 위치 목록
canaryConfig Object - Canary 분석 설정
  • strategycanary인 경우, 하위 정보 포함하여 표시
canaryConfig.analysisType String - Canary 분석 방법
  • manual | auto
    • manual: 수동
    • auto: 자동
canaryConfig.canaryCount Number - Baseline, Canary Pod 수
canaryConfig.timeout Number - 타임아웃(분)
  • Canary 배포/취소 여부의 최대 결정 시간
  • canaryConfig.analysisTypemanual인 경우, 표시
canaryConfig.prometheus String - Prometheus Url
  • canaryConfig.analysisTypeauto인 경우, 표시
canaryConfig.env Object - 분석 환경 변수
  • canaryConfig.analysisTypeauto인 경우, 하위 정보 포함하여 표시
canaryConfig.env.baseline String - 분석 환경 변수: Baseline 이름
canaryConfig.env.canary String - 분석 환경 변수: Canary 이름
canaryConfig.metrics Array - Metric 설정 목록
  • canaryConfig.analysisTypeauto인 경우, 표시
canaryConfig.analysisConfig Object - 분석 설정
  • canaryConfig.analysisTypeauto인 경우, 하위 정보 포함하여 표시
canaryConfig.analysisConfig.duration Number - 분석 시간(분)
canaryConfig.analysisConfig.delay Number - 분석 지연 시간(분)
canaryConfig.analysisConfig.interval Number - 분석 주기(분)
canaryConfig.analysisConfig.step Number - Metric 수집 주기(초)
canaryConfig.passScore Number - 분석 성공 점수

metrics

metrics에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
name String - Metric 이름
successCriteria String - 성공 기준
  • base | canary
    • base: Baseline > Canary
    • canary: Baseline < Canary
queryType String - 쿼리 타입
  • default | promQL
weight Number - Metric 가중치
metric String - Metric 값
  • queryTypedefault인 경우, 표시
filter String - Filter 값
  • queryTypedefault인 경우, 표시
query String - 쿼리
  • queryTypepromQL인 경우, 표시

TScenarioObjectStorage

배포 타깃이 ObjectStorage인 경우, result.config에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
file Object - 배포 파일 정보
file.type String - 배포 파일 위치
  • ObjectStorage | SourceBuild | later
    • ObjectStorage: Object Storage
    • SourceBuild: SourceBuild
    • later: 나중에 설정
file.ObjectStorage Object - Object Storage 정보
  • file.typeObjectStorage인 경우, 하위 정보 포함하여 표시
file.ObjectStorage.bucket String - 버킷 이름
file.ObjectStorage.object String - 파일 이름
file.SourceBuild Object - SourceBuild 정보
  • file.typeSourceBuild인 경우, 하위 정보 포함하여 표시
file.SourceBuild.id Number - 빌드 프로젝트 아이디
file.SourceBuild.name String - 빌드 프로젝트 이름
path Array - 파일 배포 경로 목록

path

path에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
sourcePath String - 소스 파일 경로
deployPath String - 배포 경로

응답 상태 코드

SourceDeploy API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 SourceDeploy 응답 상태 코드를 참조해 주십시오.

응답 예시

응답 예시는 다음과 같습니다.

{
    "result": {
        "project": {
            "id": 2***,
            "name": "deploy3"
        },
        "stage": {
            "id": 3***,
            "name": "dev-sv"
        },
        "id": 2***,
        "name": "testscenario",
        "description": "",
        "type": "Server",
        "config": {
            "strategy": "normal",
            "sequence": true,
            "file": {
                "type": "ObjectStorage",
                "ObjectStorage": {
                    "bucket": "data2",
                    "object": "sample_build_output.zip"
                }
            },
            "rollback": true,
            "cmd": {
                "pre": [
                    {
                        "user": "root",
                        "cmd": "rm -f /home/root/hello-deploy/hello.py"
                    }
                ],
                "deploy": [
                    {
                        "sourcePath": "hello.py",
                        "deployPath": "/home/root/hello-deploy/"
                    }
                ],
                "post": [
                    {
                        "user": "root",
                        "cmd": "cd /home/root/hello-deploy/ && python3 hello.py"
                    }
                ]
            }
        }
    }
}