시나리오 상세
- 인쇄
- PDF
시나리오 상세
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
개요
SourceDeploy 프로젝트의 시나리오 상세를 조회합니다.
요청
API URL
GET {SOURCEDEPLOY_API_URL}/project/{projectId}/stage/{stageId}/scenario/{scenarioId}
요청 Parameter
항목 | 타입 | 설명 | 비고 |
---|---|---|---|
projectId | string | 프로젝트 ID | projectList API로 조회 |
stageId | string | stage ID | stageList API로 조회 |
scenarioId | string | 시나리오 ID | scenarioList API로 조회 |
요청 Query
없음
요청 Body
없음
응답
응답 Body
{
"project": {
"id": "number",
"name": "string"
},
"stage": {
"id": "number",
"name": "string"
},
"id": "number",
"name": "string",
"description": "string",
"type": "string",
"config": "TScenarioServer" | "TScenarioAutoScaling" | "TSecnarioKubernetesService" | "TSecnarioObjectStorage"
}
항목 | 타입 | 설명 | 비고 |
---|---|---|---|
project.id | number | 프로젝트 id | |
project.name | string | 프로젝트 이름 | |
stage.id | number | stage id | |
stage.name | string | stage 이름 | |
id | number | 시나리오 id | |
name | string | 시나리오 이름 | |
description | string | 시나리오 설명 | |
type | string | 배포타겟 type | "Server" | "AutoScalingGroup" | "KubernetesService" |"ObjectStorage" |
Config | TScenarioServer | TScenarioAutoScalingGroup | TSecnarioKubernetesService | 시나리오 설정 | type="Server"일때, TScenarioServer type="AutoScalingGroup" 일때, TScenarioAutoScalingGroup type="KubernetesService" 일때,TSecnarioKubernetesService type="ObjectStorage" 일때,TSecnarioObjectStorage |
TScenarioServer
{
"strategy": "string",
"sequence": "boolean",
"file": {
"type": "string",
"ObjectStorage": {
"bucket": "string",
"object": "string"
},
"SourceBuild": {
"id": "number",
"name": "string"
}
},
"rollback": "boolean",
"cmd": {
"pre": [
{
"user": "string",
"cmd": "string"
}
],
"deploy": [
{
"sourcePath": "string",
"deployPath": "string"
}
],
"post": [
{
"user": "string",
"cmd": "string"
}
]
}
}
항목 | 타입 | 설명 | 비고 |
---|---|---|---|
strategy | string | 배포 전략 | "normal" |
sequence | boolean | 순차 배포 여부 | |
file.type | string | 배포 파일 type | "ObjectStorage" | "SourceBuild" | "later" |
file.ObjectStorage.bucket | string | ObjectStorage 버킷이름 | file.type=ObjectStorage |
file.ObjectStorage.object | string | ObjectStorage object 위치 | file.type=ObjectStorage |
file.SourceBuild.id | number | SourceBuild id | file.type=SourceBuild |
file.SourceBuild.name | string | SourceBuild 프로젝트 이름 | file.type=SourceBuild |
rollback | boolean | 배포 실패 시 롤백 | |
cmd.pre.user | string | 배포 전 실행>실행 계정 | |
cmd.pre.cmd | string | 배포 전 실행>실행 명령 | |
cmd.deploy.sourcePath | string | 파일 배포> 소스 파일 경로 | |
cmd.deploy.deployPath | string | 파일 배포>배포 경로 | |
cmd.post.user | string | 배포 후 실행>실행 계정 | |
cmd.post.cmd | string | 배포 후 실행>실행 명령 |
TScenarioAutoScalingGroup
{
"strategy": "string",
"sequence": "boolean",
"file": {
"type": "string",
"ObjectStorage": {
"bucket": "string",
"object": "string"
},
"SourceBuild": {
"id": "number",
"name": "string"
}
},
"rollback": "boolean",
"cmd": {
"pre": [
{
"user": "string",
"cmd": "string"
}
],
"deploy": [
{
"sourcePath": "string",
"deployPath": "string"
}
],
"post": [
{
"user": "string",
"cmd": "string"
}
]
},
"loadBalancer": {
"loadBalancerTargetGroupNo": "number",
"loadBalancerTargetGroupName": "string",
"deleteAsg": "boolean",
"deleteServer": "boolean"
}
}
항목 | 타입 | 설명 | 비고 |
---|---|---|---|
strategy | string | 배포 전략 | "normal" | "blueGreen" |
sequence | boolean | 순차 배포 여부 | |
file.type | string | 배포 파일 type | "ObjectStorage" | "SourceBuild" | "later" |
file.ObjectStorage.bucket | string | ObjectStorage 버킷이름 | file.type=ObjectStorage |
file.ObjectStorage.object | string | ObjectStorage object 위치 | file.type=ObjectStorage |
file.SourceBuild.id | number | SourceBuild id | file.type=SourceBuild |
file.SourceBuild.name | string | SourceBuild 프로젝트 이름 | file.type=SourceBuild |
rollback | boolean | 배포 실패 시 롤백 | |
cmd.pre.user | string | 배포 전 실행>실행 계정 | |
cmd.pre.cmd | string | 배포 전 실행>실행 명령 | |
cmd.deploy.sourcePath | string | 파일 배포> 소스 파일 경로 | |
cmd.deploy.deployPath | string | 파일 배포>배포 경로 | |
cmd.post.user | string | 배포 후 실행>실행 계정 | |
cmd.post.cmd | string | 배포 후 실행>실행 명령 | |
loadBalancer.loadBalancerTargetGroupNo | number | 로드밸런서 Target Group no | strategy=blueGreen |
loadBalancer.loadBalancerTargetGroupName | string | 로드밸런서 Target Group 이름 | strategy=blueGreen |
loadBalancer.deleteAsg | boolean | 기존 Auto Scaling Group 삭제 여부 | strategy=blueGreen |
loadBalancer.deleteServer | boolean | 기존 Auto Scaling Group 내 서버 삭제 여부 | strategy=blueGreen |
TSecnarioKubernetesService
{
"manifest": {
"type": "string",
"url": "string",
"serverUrl": "string",
"owner": "string",
"repository": "string",
"branch": "string",
"path": ["string"]
},
"strategy": "string",
"canaryConfig": {
"canaryCount": "number",
"analysisType": "string",
"timeout": "number",
"prometheus": "string",
"env": {
"baseline": "string",
"canary": "string"
},
"metrics": [
{
"name": "string",
"successCriteria": "string",
"queryType": "string",
"weight": "number",
"metric": "string",
"filter": "string",
"query": "string"
}
],
"analysisConfig": {
"duration": "number",
"delay": "number",
"interval": "number",
"step": "number"
},
"passScore": "number"
}
}
항목 | 타입 | 설명 | 비고 |
---|---|---|---|
strategy | string | 배포 전략 | "rolling" |"blueGreen" |"canary" |
manifest.type | string | 매니페스트 파일 저장소 | "SourceCommit" | "Github Enterprise Server" |
manifest.url | string | 리포지토리 URL | manifest.type=Github Enterprise Server 이고, SSH Key로 로그인 한 경우 |
manifest.serverUrl | string | 서버 URL | manifest.type=Github Enterprise Server 이고, OAuth, Personal Access Token, Username/Password 으로 로그인한 경우 |
manifest.owner | string | 소유자 | manifest.type=Github Enterprise Server 일 때 |
manifest.repository | string | 리파지토리 | |
manifest.branch | string | 리파지토리 브랜치 | |
manifest.path | string[] | 파일 위치 | |
canaryConfig.analysisType | string | Canary 분석 방법 | strategy=canary 일때, "manual" | "auto" |
canaryConfig.timeout | number | 배포/취소 최대시간 | strategy=canary & canaryConfig.analysisType=manual 일때 |
canaryConfig.canaryCount | number | Baseline, Canary Pod 개수 | strategy=canary & (canaryConfig.analysisType=manual || canaryConfig.analysisType=auto) 일때 |
canaryConfig.prometheus | string | Prometheus Url | strategy=canary & canaryConfig.analysisType=auto 일때 |
canaryConfig.env.baseline | string | 분석 환경변수 > baseline | strategy=canary & canaryConfig.analysisType=auto 일때 |
canaryConfig.env.canary | string | 분석 환경변수 > canary | strategy=canary & canaryConfig.analysisType=auto 일때 |
canaryConfig.metrics.name | string | 메트릭 이름 | strategy=canary & canaryConfig.analysisType=auto 일때 |
canaryConfig.metrics.successCriteria | string | 성공 기준 | strategy=canary & canaryConfig.analysisType=auto 일때 "base" | "canary" |
canaryConfig.metrics.queryType | string | 쿼리 타입 | strategy=canary & canaryConfig.analysisType=auto 일때 "default" | "promQL" |
canaryConfig.metrics.weight | number | 가중치 | strategy=canary & canaryConfig.analysisType=auto |
canaryConfig.metrics.metric | string | 메트릭 | strategy=canary & canaryConfig.analysisType=auto &canaryConfig.metrics.queryType="default" |
canaryConfig.metrics.filter | string | Filter | strategy=canary & canaryConfig.analysisType=auto &canaryConfig.metrics.queryType="default" |
canaryConfig.metrics.query | string | 쿼리 | strategy=canary & canaryConfig.analysisType=auto & canaryConfig.metrics.queryType="promQL" |
canaryConfig.analysisConfig.duration | number | 분석 시간 | strategy=canary & canaryConfig.analysisType=auto |
canaryConfig.analysisConfig.delay | number | 분석 지연 시간 | strategy=canary & canaryConfig.analysisType=auto |
canaryConfig.analysisConfig.interval | number | 분석 주기 | strategy=canary & canaryConfig.analysisType=auto |
canaryConfig.analysisConfig.step | number | Metric 수집 주기 | strategy=canary & canaryConfig.analysisType=auto |
canaryConfig.passScore | number | 분석 성공 점수 | strategy=canary & canaryConfig.analysisType=auto |
TSecnarioObjectStorage
{
"file": {
"type": "string",
"ObjectStorage": {
"bucket": "string",
"object": "string"
},
"SourceBuild": {
"id": "number",
"name": "string"
}
},
"path": [
{
"sourcePath": "string",
"deployPath": "string"
}
]
}
항목 | 타입 | 설명 | 비고 |
---|---|---|---|
file.type | string | 배포 파일 type | "ObjectStorage" | "SourceBuild" | "later" |
file.ObjectStorage.bucket | string | ObjectStorage 버킷이름 | file.type=ObjectStorage |
file.ObjectStorage.object | string | ObjectStorage object 위치 | file.type=ObjectStorage |
file.SourceBuild.id | number | SourceBuild id | file.type=SourceBuild |
file.SourceBuild.name | string | SourceBuild 프로젝트 이름 | file.type=SourceBuild |
path.sourcePath | string | 소스 파일 경로 | |
path.deployPath | string | 배포 경로 |
이 문서가 도움이 되었습니까?