시나리오 상세
    • PDF

    시나리오 상세

    • PDF

    Article Summary

    개요

    SourceDeploy 프로젝트의 시나리오 상세를 조회합니다.

    요청

    API URL

    GET 	{SOURCEDEPLOY_API_URL}/project/{projectId}/stage/{stageId}/scenario/{scenarioId}
    

    요청 Parameter

    항목타입설명비고
    projectIdstring프로젝트 IDprojectList API로 조회
    stageIdstringstage IDstageList API로 조회
    scenarioIdstring시나리오 IDscenarioList 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.idnumber프로젝트 id
    project.namestring프로젝트 이름
    stage.idnumberstage id
    stage.namestringstage 이름
    idnumber시나리오 id
    namestring시나리오 이름
    descriptionstring시나리오 설명
    typestring배포타겟 type"Server" | "AutoScalingGroup" | "KubernetesService" |"ObjectStorage"
    ConfigTScenarioServer | 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"
                }
            ]
        },
    }
    
    항목타입설명비고
    strategystring배포 전략"normal"
    sequenceboolean순차 배포 여부
    file.typestring배포 파일 type"ObjectStorage" | "SourceBuild" | "later"
    file.ObjectStorage.bucketstringObjectStorage 버킷이름file.type=ObjectStorage
    file.ObjectStorage.objectstringObjectStorage object 위치file.type=ObjectStorage
    file.SourceBuild.idnumberSourceBuild idfile.type=SourceBuild
    file.SourceBuild.namestringSourceBuild 프로젝트 이름file.type=SourceBuild
    rollbackboolean배포 실패 시 롤백
    cmd.pre.userstring배포 전 실행>실행 계정
    cmd.pre.cmdstring배포 전 실행>실행 명령
    cmd.deploy.sourcePathstring파일 배포> 소스 파일 경로
    cmd.deploy.deployPathstring파일 배포>배포 경로
    cmd.post.userstring배포 후 실행>실행 계정
    cmd.post.cmdstring배포 후 실행>실행 명령

    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"
        }
    }
    
    항목타입설명비고
    strategystring배포 전략"normal" | "blueGreen"
    sequenceboolean순차 배포 여부
    file.typestring배포 파일 type"ObjectStorage" | "SourceBuild" | "later"
    file.ObjectStorage.bucketstringObjectStorage 버킷이름file.type=ObjectStorage
    file.ObjectStorage.objectstringObjectStorage object 위치file.type=ObjectStorage
    file.SourceBuild.idnumberSourceBuild idfile.type=SourceBuild
    file.SourceBuild.namestringSourceBuild 프로젝트 이름file.type=SourceBuild
    rollbackboolean배포 실패 시 롤백
    cmd.pre.userstring배포 전 실행>실행 계정
    cmd.pre.cmdstring배포 전 실행>실행 명령
    cmd.deploy.sourcePathstring파일 배포> 소스 파일 경로
    cmd.deploy.deployPathstring파일 배포>배포 경로
    cmd.post.userstring배포 후 실행>실행 계정
    cmd.post.cmdstring배포 후 실행>실행 명령
    loadBalancer.loadBalancerTargetGroupNonumber로드밸런서 Target Group nostrategy=blueGreen
    loadBalancer.loadBalancerTargetGroupNamestring로드밸런서 Target Group 이름strategy=blueGreen
    loadBalancer.deleteAsgboolean기존 Auto Scaling Group 삭제 여부strategy=blueGreen
    loadBalancer.deleteServerboolean기존 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"
      }
    }
    
    항목타입설명비고
    strategystring배포 전략"rolling" |"blueGreen" |"canary"
    manifest.typestring매니페스트 파일 저장소"SourceCommit" | "Github Enterprise Server"
    manifest.urlstring리포지토리 URLmanifest.type=Github Enterprise Server 이고, SSH Key로 로그인 한 경우
    manifest.serverUrlstring서버 URLmanifest.type=Github Enterprise Server 이고, OAuth, Personal Access Token, Username/Password 으로 로그인한 경우
    manifest.ownerstring소유자manifest.type=Github Enterprise Server 일 때
    manifest.repositorystring리파지토리
    manifest.branchstring리파지토리 브랜치
    manifest.pathstring[]파일 위치
    canaryConfig.analysisTypestringCanary 분석 방법strategy=canary 일때,
    "manual" | "auto"
    canaryConfig.timeoutnumber배포/취소 최대시간strategy=canary & canaryConfig.analysisType=manual 일때
    canaryConfig.canaryCountnumberBaseline, Canary Pod 개수strategy=canary & (canaryConfig.analysisType=manual || canaryConfig.analysisType=auto) 일때
    canaryConfig.prometheusstringPrometheus Urlstrategy=canary & canaryConfig.analysisType=auto 일때
    canaryConfig.env.baselinestring분석 환경변수 > baselinestrategy=canary & canaryConfig.analysisType=auto 일때
    canaryConfig.env.canarystring분석 환경변수 > canarystrategy=canary & canaryConfig.analysisType=auto 일때
    canaryConfig.metrics.namestring메트릭 이름strategy=canary & canaryConfig.analysisType=auto 일때
    canaryConfig.metrics.successCriteriastring성공 기준strategy=canary & canaryConfig.analysisType=auto 일때
    "base" | "canary"
    canaryConfig.metrics.queryTypestring쿼리 타입strategy=canary & canaryConfig.analysisType=auto 일때
    "default" | "promQL"
    canaryConfig.metrics.weightnumber가중치strategy=canary & canaryConfig.analysisType=auto
    canaryConfig.metrics.metricstring메트릭strategy=canary & canaryConfig.analysisType=auto &canaryConfig.metrics.queryType="default"
    canaryConfig.metrics.filterstringFilterstrategy=canary & canaryConfig.analysisType=auto &canaryConfig.metrics.queryType="default"
    canaryConfig.metrics.querystring쿼리strategy=canary & canaryConfig.analysisType=auto & canaryConfig.metrics.queryType="promQL"
    canaryConfig.analysisConfig.durationnumber분석 시간strategy=canary & canaryConfig.analysisType=auto
    canaryConfig.analysisConfig.delaynumber분석 지연 시간strategy=canary & canaryConfig.analysisType=auto
    canaryConfig.analysisConfig.intervalnumber분석 주기strategy=canary & canaryConfig.analysisType=auto
    canaryConfig.analysisConfig.stepnumberMetric 수집 주기strategy=canary & canaryConfig.analysisType=auto
    canaryConfig.passScorenumber분석 성공 점수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.typestring배포 파일 type"ObjectStorage" | "SourceBuild" | "later"
    file.ObjectStorage.bucketstringObjectStorage 버킷이름file.type=ObjectStorage
    file.ObjectStorage.objectstringObjectStorage object 위치file.type=ObjectStorage
    file.SourceBuild.idnumberSourceBuild idfile.type=SourceBuild
    file.SourceBuild.namestringSourceBuild 프로젝트 이름file.type=SourceBuild
    path.sourcePathstring소스 파일 경로
    path.deployPathstring배포 경로

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.