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 | - | 배포 타깃
|
result.config |
Object | - | 배포 타깃 설정
|
TScenarioServer
TScenarioServer
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
strategy |
String | - | 배포 전략
|
sequence |
Boolean | - | 순차 배포 여부
|
file |
Object | - | 배포 파일 정보 |
file.type |
String | - | 배포 파일 위치
|
file.ObjectStorage |
Object | - | Object Storage 정보
|
file.ObjectStorage.bucket |
String | - | 버킷 이름 |
file.ObjectStorage.object |
String | - | 파일 이름 |
file.SourceBuild |
Object | - | SourceBuild 정보
|
file.SourceBuild.id |
Number | - | 빌드 프로젝트 아이디 |
file.SourceBuild.name |
String | - | 빌드 프로젝트 이름 |
rollback |
Boolean | - | 배포 실패 시 롤백 사용 여부
|
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 | - | 배포 전략
|
sequence |
Boolean | - | 순차 배포 여부
|
file |
Object | - | 배포 파일 정보 |
file.type |
String | - | 배포 파일 위치
|
file.ObjectStorage |
Object | - | Object Storage 정보
|
file.ObjectStorage.bucket |
String | - | 버킷 이름 |
file.ObjectStorage.object |
String | - | 파일 이름 |
file.SourceBuild |
Object | - | SourceBuild 정보
|
file.SourceBuild.id |
Number | - | 빌드 프로젝트 아이디 |
file.SourceBuild.name |
String | - | 빌드 프로젝트 이름 |
rollback |
Boolean | - | 배포 실패 시 롤백 사용 여부
|
cmd.pre |
Array | - | 배포 전 실행 명령어 목록 |
cmd.deploy |
Array | - | 파일 배포 경로 목록 |
cmd.post |
Array | - | 배포 후 실행 명령어 목록 |
loadBalancer |
Object | - | 로드 밸런서 정보
|
loadBalancer.loadBalancerTargetGroupNo |
Number | - | 로드 밸런서 Target Group 아이디 |
loadBalancer.loadBalancerTargetGroupName |
String | - | 로드 밸런서 Target Group 이름 |
loadBalancer.deleteAsg |
Boolean | - | 기존 Auto Scaling 그룹 삭제 여부
|
loadBalancer.deleteServer |
Boolean | - | 기존 Auto Scaling 그룹 소속 서버 반납 여부
|
pre
pre
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
user |
String | - | 실행 계정 |
cmd |
String | - | 실행 명령 |
deploy
deploy
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
sourcePath |
String | - | 소스 파일 경로 |
deployPath |
String | - | 배포 경로 |
post
post
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
user |
String | - | 실행 계정 |
cmd |
String | - | 실행 명령 |
TScenarioKubernetesService
TScenarioKubernetesService
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
strategy |
String | - | 배포 전략
|
manifest |
Object | - | 매니페스트 정보 |
manifest.type |
String | - | 매니페스트 파일 저장소
|
manifest.url |
String | - | Git 리포지토리 URL
|
manifest.serverUrl |
String | - | 서버 URL
|
result.env |
Object | - | 빌드 환경 정보 |
manifest.owner |
String | - | Github Enterprise Server 소유자
|
manifest.repository |
String | - | 리포지토리 이름
|
manifest.branch |
String | - | 브랜치 이름
|
manifest.path |
Array | - | 파일 위치 목록 |
canaryConfig |
Object | - | Canary 분석 설정
|
canaryConfig.analysisType |
String | - | Canary 분석 방법
|
canaryConfig.canaryCount |
Number | - | Baseline, Canary Pod 수 |
canaryConfig.timeout |
Number | - | 타임아웃(분)
|
canaryConfig.prometheus |
String | - | Prometheus Url
|
canaryConfig.env |
Object | - | 분석 환경 변수
|
canaryConfig.env.baseline |
String | - | 분석 환경 변수: Baseline 이름 |
canaryConfig.env.canary |
String | - | 분석 환경 변수: Canary 이름 |
canaryConfig.metrics |
Array | - | Metric 설정 목록
|
canaryConfig.analysisConfig |
Object | - | 분석 설정
|
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 | - | 성공 기준
|
queryType |
String | - | 쿼리 타입
|
weight |
Number | - | Metric 가중치 |
metric |
String | - | Metric 값
|
filter |
String | - | Filter 값
|
query |
String | - | 쿼리
|
TScenarioObjectStorage
배포 타깃이 ObjectStorage
인 경우, result.config
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
file |
Object | - | 배포 파일 정보 |
file.type |
String | - | 배포 파일 위치
|
file.ObjectStorage |
Object | - | Object Storage 정보
|
file.ObjectStorage.bucket |
String | - | 버킷 이름 |
file.ObjectStorage.object |
String | - | 파일 이름 |
file.SourceBuild |
Object | - | SourceBuild 정보
|
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"
}
]
}
}
}
}