MENU
      시나리오 상세

        시나리오 상세


        기사 요약

        개요

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

        요청

        API URL

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

        요청 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"
        }
        JSON
        항목타입설명비고
        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"
              }
            ]
          }
        }
        JSON
        항목타입설명비고
        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"
          }
        }
        JSON
        항목타입설명비고
        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"
          }
        }
        JSON
        항목타입설명비고
        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"
            }
          ]
        }
        JSON
        항목타입설명비고
        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.