변수와 표현식을 사용하면 파이프라인 작업에서 입력 매개 변수 및 출력 매개 변수를 사용할 수 있습니다. 입력한 매개 변수는 파이프라인 작업을 하나 이상의 변수, 표현식 또는 조건에 바인딩하고 실행 시 파이프라인 동작을 결정합니다.
파이프라인은 간단하거나 복잡한 소프트웨어 제공 솔루션을 실행할 수 있습니다.
파이프라인 작업을 함께 바인딩하는 경우 기본 및 복합 표현식을 포함할 수 있습니다. 그 결과, 파이프라인은 간단하거나 복잡한 소프트웨어 제공 솔루션을 실행할 수 있습니다.
파이프라인에서 매개 변수를 생성하려면 입력 또는 출력 탭을 클릭하고 달러 기호($) 및 표현식을 입력하여 변수를 추가합니다. 예를 들어 이 매개 변수는 ${Stage0.Task3.input.URL}
URL을 호출하는 작업 입력으로 사용됩니다.
변수 바인딩 형식은 범위 및 키라는 구문 구성 요소를 사용합니다. SCOPE
는 컨텍스트를 입력 또는 출력으로 정의하고 KEY
는 세부 정보를 정의합니다. 매개 변수 예 ${Stage0.Task3.input.URL}
에서 input
은 SCOPE
이고 URL은 KEY
입니다.
모든 작업의 출력 속성은 변수 바인딩의 여러 중첩 수준으로 확인할 수 있습니다.
파이프라인에서 변수 바인딩 사용에 대한 자세한 내용은 Code Stream 파이프라인에서 변수 바인딩을 사용하는 방법 항목을 참조하십시오.
범위 및 키에 달러 표현식을 사용하여 파이프라인 작업 바인딩
달러 기호 변수에 표현식을 사용하여 파이프라인 작업을 바인딩할 수 있습니다. 표현식을 ${SCOPE.KEY.<PATH>}
로 입력합니다.
파이프라인 작업의 동작을 확인하기 위해 각 표현식에서 SCOPE
은 Code Stream에 사용되는 컨텍스트입니다. 범위는 작업이 수행하는 작업에 대한 세부 정보를 정의하는 KEY
를 찾습니다. KEY
의 값이 중첩된 개체인 경우 선택적 PATH
를 제공할 수 있습니다.
제공된 예에서는 SCOPE
및 KEY
에 대해 설명하고 파이프라인에서 사용하는 방법을 보여줍니다.
표 1.
SCOPE 및 KEY 사용
SCOPE |
표현식 및 예제의 목적 |
KEY |
파이프라인에서 SCOPE 및 KEY를 사용하는 방법 |
input |
파이프라인의 입력 속성: ${input.input1} |
입력 속성의 이름 |
작업에서 파이프라인의 입력 속성을 참조하려면 다음 형식을 사용합니다.
tasks:
mytask:
type: REST
input:
url: ${input.url}
action: get
input:
url: https://www.vmware.com
|
output |
파이프라인의 출력 속성: ${output.output1} |
출력 속성의 이름 |
알림을 보내기 위한 출력 속성을 참조하려면 다음 형식을 사용합니다.
notifications:
email:
- endpoint: MyEmailEndpoint
subject: "Deployment Successful"
event: COMPLETED
to:
- [email protected]
body: |
Pipeline deployed the service successfully. Refer ${output.serviceURL}
|
task input |
작업에 대한 입력: ${MY_STAGE.MY_TASK.input.SOMETHING} |
알림에서 작업의 입력을 나타냅니다. |
Jenkins 작업이 시작되면 작업 입력에서 트리거된 작업의 이름을 참조할 수 있습니다. 이 경우 다음 형식을 사용하여 알림을 전송합니다.
notifications:
email:
- endpoint: MyEmailEndpoint
stage: MY_STAGE
task: MY_TASK
subject: "Build Started"
event: STARTED
to:
- [email protected]
body: |
Jenkins job ${MY_STAGE.MY_TASK.input.job} started for commit id ${input.COMMITID}.
|
task output |
작업의 출력: ${MY_STAGE.MY_TASK.output.SOMETHING} |
후속 작업에서의 작업 출력을 나타냅니다. |
작업 2에서 파이프라인 작업 1의 출력을 참조하려면 다음 형식을 사용합니다.
taskOrder:
- task1
- task2
tasks:
task1:
type: REST
input:
action: get
url: https://www.example.org/api/status
task2:
type: REST
input:
action: post
url: https://status.internal.example.org/api/activity
payload: ${MY_STAGE.task1.output.responseBody}
|
var |
변수: ${var.myVariable} |
끝점의 변수를 참조합니다. |
암호의 끝점에서 비밀 변수를 참조하려면 다음 형식을 사용합니다.
---
project: MyProject
kind: ENDPOINT
name: MyJenkinsServer
type: jenkins
properties:
url: https://jenkins.example.com
username: jenkinsUser
password: ${var.jenkinsPassword}
|
var |
변수: ${var.myVariable} |
파이프라인에서 변수를 참조합니다. |
파이프라인 URL에서 변수를 참조하려면 다음 형식을 사용합니다.
tasks:
task1:
type: REST
input:
action: get
url: ${var.MY_SERVER_URL}
|
task status |
작업의 상태: ${MY_STAGE.MY_TASK.status} ${MY_STAGE.MY_TASK.statusMessage} |
|
|
stage status |
단계의 상태: ${MY_STAGE.status} ${MY_STAGE.statusMessage} |
|
|
기본 표현식
파이프라인에서 표현식과 함께 변수를 사용할 수 있습니다. 이 요약에는 사용할 수 있는 기본 표현식이 포함되어 있습니다.
표현식 |
설명 |
${comments} |
파이프라인 실행 요청 시 제공되는 주석입니다. |
${duration} |
파이프라인 실행의 기간입니다. |
${endTime} |
완료된 경우 파이프라인 실행 종료 시간(UTC)입니다. |
${executedOn} |
시작 시간과 마찬가지로, 파이프라인 실행 시작 시간(UTC)입니다. |
${executionId} |
파이프라인 실행의 ID입니다. |
${executionUrl} |
사용자 인터페이스에서 파이프라인 실행으로 이동하는 URL입니다. |
${name} |
파이프라인의 이름입니다. |
${requestBy} |
실행을 요청한 사용자의 이름입니다. |
${stageName} |
단계 범위에서 사용되는 경우 현재 단계의 이름입니다. |
${startTime} |
파이프라인 실행 시작 시간(UTC)입니다. |
${status} |
실행의 상태입니다. |
${statusMessage} |
파이프라인 실행의 상태 메시지입니다. |
${taskName} |
작업 입력 또는 알림에서 사용되는 경우 현재 작업의 이름입니다. |
파이프라인 작업에 SCOPE 및 KEY 사용
지원되는 파이프라인 작업에 표현식을 사용할 수 있습니다. 다음 예에서는 SCOPE
및 KEY
를 정의하고 구문을 확인하는 방법을 보여줍니다. 코드 예제에서는 MY_STAGE
및 MY_TASK
를 파이프라인 단계 및 작업 이름으로 사용합니다.
사용 가능한 작업에 대한 자세한 내용을 보려면 Code Stream에서 사용할 수 있는 작업 유형 항목을 참조하십시오.
표 2.
게이팅 작업
작업 |
Scope |
Key |
작업에서 SCOPE 및 KEY를 사용하는 방법 |
사용자 작업 |
|
Input |
summary : 사용자 작업에 대한 요청 요약 description : 사용자 작업에 대한 요청 설명 approvers : 승인자 이메일 주소 목록. 여기서 각 항목은 쉼표가 있는 변수이거나, 별도의 이메일에 대해 세미콜론을 사용할 수 있음 approverGroups : 플랫폼 및 ID에 대한 승인자 그룹 주소 목록 sendemail : True로 설정하면 필요에 따라 요청 또는 응답 시 이메일 알림 전송 expirationInDays : 요청의 만료 시간을 나타내는 일 수 |
${MY_STAGE.MY_TASK.input.summary} ${MY_STAGE.MY_TASK.input.description} ${MY_STAGE.MY_TASK.input.approvers} ${MY_STAGE.MY_TASK.input.approverGroups} ${MY_STAGE.MY_TASK.input.sendemail} ${MY_STAGE.MY_TASK.input.expirationInDays} |
|
Output |
index : 요청을 나타내는 6자리 16진수 문자열 respondedBy : 사용자 작업을 승인/거부한 사람의 계정 이름 respondedByEmail : 응답한 사람의 이메일 주소 comments : 응답 중에 제공된 설명 |
${MY_STAGE.MY_TASK.output.index} ${MY_STAGE.MY_TASK.output.respondedBy} ${MY_STAGE.MY_TASK.output.respondedByEmail} ${MY_STAGE.MY_TASK.output.comments} |
조건 |
|
|
Input |
condition : 평가할 조건. 조건이 True로 평가되면 작업이 완료로 표시되며 다른 응답은 작업이 실패함 |
${MY_STAGE.MY_TASK.input.condition} |
|
Output |
result : 평가 시 결과 |
${MY_STAGE.MY_TASK.output.response} |
표 3.
파이프라인 작업
작업 |
Scope |
Key |
작업에서 SCOPE 및 KEY를 사용하는 방법 |
파이프라인 |
|
Input |
name : 실행할 파이프라인의 이름 inputProperties : 중첩된 파이프라인 실행에 전달할 입력 속성 |
${MY_STAGE.MY_TASK.input.name} ${MY_STAGE.MY_TASK.input.inputProperties} # 모든 속성 참조 ${MY_STAGE.MY_TASK.input.inputProperties.input1} # 입력1의 값 참조 |
|
Output |
executionStatus : 파이프라인 실행 상태 executionIndex : 파이프라인 실행의 인덱스 outputProperties : 파이프라인 실행의 출력 속성: |
${MY_STAGE.MY_TASK.output.executionStatus} ${MY_STAGE.MY_TASK.output.executionIndex} ${MY_STAGE.MY_TASK.output.outputProperties} # 모든 속성 참조 ${MY_STAGE.MY_TASK.output.outputProperties.output1} # 출력1의 값 참조 |
표 4.
지속적 통합 작업 자동화
작업 |
Scope |
Key |
작업에서 SCOPE 및 KEY를 사용하는 방법 |
CI |
|
Input |
steps : 실행할 명령을 나타내는 문자열 집합 export : 단계를 실행한 후 보존할 환경 변수 artifacts : 공유 경로에서 보존할 아티팩트의 경로 process : JUnit, JaCoCo, Checkstyle, FindBugs 처리를 위한 구성 요소의 집합 |
${MY_STAGE.MY_TASK.input.steps} ${MY_STAGE.MY_TASK.input.export} ${MY_STAGE.MY_TASK.input.artifacts} ${MY_STAGE.MY_TASK.input.process} ${MY_STAGE.MY_TASK.input.process[0].path} # 첫 번째 구성 경로 참조 |
|
Output |
exports : 입력 export 에서 내보낸 환경 변수를 나타내는 키-값 쌍 artifacts : 성공적으로 보존된 아티팩트 경로 processResponse : 입력 process 에 대한 처리 결과 집합 |
${MY_STAGE.MY_TASK.output.exports} # 모든 내보내기 참조 ${MY_STAGE.MY_TASK.output.exports.myvar} # myvar 값 참조 ${MY_STAGE.MY_TASK.output.artifacts} ${MY_STAGE.MY_TASK.output.processResponse} ${MY_STAGE.MY_TASK.output.processResponse[0].result} # 첫 번째 프로세스 구성의 결과 |
사용자 지정 |
|
Input |
name : 사용자 지정 통합의 이름 version : 릴리스 또는 폐기된 사용자 지정 통합의 버전 properties : 사용자 지정 통합에 보낼 속성 |
${MY_STAGE.MY_TASK.input.name} ${MY_STAGE.MY_TASK.input.version} ${MY_STAGE.MY_TASK.input.properties} #모든 속성 참조 ${MY_STAGE.MY_TASK.input.properties.property1} #속성1의 값 참조 |
|
Output |
properties : 사용자 지정 통합 응답의 출력 속성 |
${MY_STAGE.MY_TASK.output.properties} #모든 속성 참조 ${MY_STAGE.MY_TASK.output.properties.property1} #속성1의 값 참조 |
표 5.
지속적 배포 작업 자동화: 클라우드 템플릿
작업 |
Scope |
Key |
작업에서 SCOPE 및 KEY를 사용하는 방법 |
클라우드 템플릿 |
|
|
Input |
action : createDeployment, updateDeployment, deleteDeployment, rollbackDeployment 중 하나 blueprintInputParams : 배포 생성 및 배포 업데이트 작업에 사용 allowDestroy : 배포 업데이트 프로세스에서 시스템이 제거될 수 있습니다. CREATE_DEPLOYMENT
blueprintName : 클라우드 템플릿의 이름
blueprintVersion : 클라우드 템플릿의 버전
또는
fileUrl : GIT 서버를 선택한 후 원격 클라우드 템플릿 YAML의 URL입니다.
UPDATE_DEPLOYMENT 다음 조합 중 하나입니다.
blueprintName : 클라우드 템플릿의 이름
blueprintVersion : 클라우드 템플릿의 버전
또는
fileUrl : GIT 서버를 선택한 후 원격 클라우드 템플릿 YAML의 URL입니다.
------
또는
------ DELETE_DEPLOYMENT
또는
ROLLBACK_DEPLOYMENT 다음 조합 중 하나입니다.
또는
------
blueprintName : 클라우드 템플릿의 이름
rollbackVersion : 롤백할 버전
|
|
|
Output |
|
다른 작업 또는 파이프라인의 출력에 바인딩할 수 있는 매개 변수:
- 배포 이름은 ${Stage0.Task0.output.deploymentName}으로 액세스할 수 있습니다.
- 배포 ID는 ${Stage0.Task0.output.deploymentId}로 액세스할 수 있습니다.
- 배포 세부 정보는 복합 개체이며, JSON 결과를 사용하여 내부 세부 정보에 액세스할 수 있습니다.
속성에 액세스하려면 점 연산자를 사용하여 JSON 계층을 따릅니다. 예를 들어 리소스 Cloud_Machine_1 [0]의 주소에 액세스하려는 경우 $ 바인딩은 다음과 같습니다. ${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].address} 마찬가지로 버전의 경우 $ 바인딩은 다음과 같습니다. ${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].flavor} Code Stream 사용자 인터페이스에서 모든 속성에 대한 $ 바인딩을 얻을 수 있습니다.
- 작업 출력 속성 영역에서 View Output JSON을 클릭합니다.
- $ 바인딩을 찾으려면 속성을 입력합니다.
- 해당하는 $ 바인딩을 표시하는 검색 아이콘을 클릭합니다.
|
JSON 출력 예:
샘플 배포 세부 정보 개체:
{
"id": "6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
"name": "deployment_6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
"description": "Pipeline Service triggered operation",
"orgId": "434f6917-4e34-4537-b6c0-3bf3638a71bc",
"blueprintId": "8d1dd801-3a32-4f3b-adde-27f8163dfe6f",
"blueprintVersion": "1",
"createdAt": "2020-08-27T13:50:24.546215Z",
"createdBy": "[email protected]",
"lastUpdatedAt": "2020-08-27T13:52:50.674957Z",
"lastUpdatedBy": "[email protected]",
"inputs": {},
"simulated": false,
"projectId": "267f8448-d26f-4b65-b310-9212adb3c455",
"resources": {
"Cloud_Machine_1[0]": {
"id": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
"name": "Cloud_Machine_1[0]",
"powerState": "ON",
"address": "10.108.79.33",
"resourceLink": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
"componentTypeId": "Cloud.vSphere.Machine",
"endpointType": "vsphere",
"resourceName": "Cloud_Machine_1-mcm110615-146929827053",
"resourceId": "1606fbcd-40e5-4edc-ab85-7b559aa986ad",
"resourceDescLink": "/resources/compute-descriptions/1952d1d3-15f0-4574-ae42-4fbf8a87d4cc",
"zone": "Automation / Vms",
"countIndex": "0",
"image": "ubuntu",
"count": "1",
"flavor": "small",
"region": "MYBU",
"_clusterAllocationSize": "1",
"osType": "LINUX",
"componentType": "Cloud.vSphere.Machine",
"account": "bha"
}
},
"status": "CREATE_SUCCESSFUL",
"deploymentURI": "https://api.yourenv.com/automation-ui/#/deployment-ui;ash=/deployment/6a031f92-d0fa-42c8-bc9e-3b260ee2f65b"
}
표 6.
지속적인 배포 작업 자동화: Kubernetes
작업 |
Scope |
Key |
작업에서 SCOPE 및 KEY를 사용하는 방법 |
Kubernetes |
|
Input |
action : GET, CREATE, APPLY, DELETE, ROLLBACK 중 하나
timeout : 모든 작업에 대한 전체 시간 초과
filterByLabel : K8S labelSelector를 사용하여GET 작업에 대해 필터링할 추가 레이블
GET, CREATE, DELETE, APPLY
yaml : 처리하여 Kubernetes에 보낼 인라인 YAML
parameters : KEY, VALUE 쌍 - $$KEY를 인라인 YAML 입력 영역의 VALUE로 바꿈
filePath : YAML을 가져올 SCM Git 끝점의 상대 경로(제공된 경우)
scmConstants : KEY, VALUE 쌍 - $${KEY}를 SCM을 통해 가져온 YAML의 VALUE로 바꿈
continueOnConflict : True로 설정하면 리소스가 이미 있는 경우 작업이 계속됨
ROLLBACK
resourceType : 롤백할 리소스 유형
resourceName : 롤백할 리소스 이름
namespace : 롤백을 수행해야 하는 네임스페이스
revision : 롤백할 개정
|
${MY_STAGE.MY_TASK.input.action} #수행할 작업을 결정합니다. ${MY_STAGE.MY_TASK.input.timeout} ${MY_STAGE.MY_TASK.input.filterByLabel} ${MY_STAGE.MY_TASK.input.yaml} ${MY_STAGE.MY_TASK.input.parameters} ${MY_STAGE.MY_TASK.input.filePath} ${MY_STAGE.MY_TASK.input.scmConstants} ${MY_STAGE.MY_TASK.input.continueOnConflict} ${MY_STAGE.MY_TASK.input.resourceType} ${MY_STAGE.MY_TASK.input.resourceName} ${MY_STAGE.MY_TASK.input.namespace} ${MY_STAGE.MY_TASK.input.revision} |
|
Output |
response : 전체 응답 캡처 response.<RESOURCE> : configMaps, deployments, endpoints, ingresses, jobs, namespaces, pods, replicaSets, replicationControllers, secrets, services, statefulSets, nodes, loadBalancers에 해당하는 리소스 response.<RESOURCE>.<KEY> : apiVersion, kind, metadata, spec 중 하나에 해당하는 키 |
${MY_STAGE.MY_TASK.output.response} ${MY_STAGE.MY_TASK.output.response.} |
표 7.
개발, 테스트 및 배포 애플리케이션 통합
작업 |
Scope |
Key |
작업에서 SCOPE 및 KEY를 사용하는 방법 |
Bamboo |
|
Input |
plan : 계획의 이름 planKey :계획 키 variables : 계획에 전달할 변수 parameters : 계획에 전달할 매개 변수 |
${MY_STAGE.MY_TASK.input.plan} ${MY_STAGE.MY_TASK.input.planKey} ${MY_STAGE.MY_TASK.input.variables} ${MY_STAGE.MY_TASK.input.parameters} # 모든 매개 변수 참조 ${MY_STAGE.MY_TASK.input.parameters.param1} # param1의 값 참조 |
|
Output |
resultUrl : 결과 빌드의 URL buildResultKey : 결과 빌드의 키 buildNumber : 빌드 번호 buildTestSummary : 실행된 테스트의 요약 successfulTestCount : 테스트 결과 통과 failedTestCount : 테스트 결과 실패 skippedTestCount : 테스트 결과 건너뜀 artifacts : 빌드의 아티팩트 |
${MY_STAGE.MY_TASK.output.resultUrl} ${MY_STAGE.MY_TASK.output.buildResultKey} ${MY_STAGE.MY_TASK.output.buildNumber} ${MY_STAGE.MY_TASK.output.buildTestSummary} # 모든 결과 참조 ${MY_STAGE.MY_TASK.output.successfulTestCount} # 특정 테스트 수 참조 ${MY_STAGE.MY_TASK.output.buildNumber} |
Jenkins |
|
Input |
job : Jenkins 작업의 이름 parameters : 작업에 전달할 매개 변수 |
${MY_STAGE.MY_TASK.input.job} ${MY_STAGE.MY_TASK.input.parameters} # 모든 매개 변수 참조 ${MY_STAGE.MY_TASK.input.parameters.param1} # 매개 변수의 값 참조 |
|
Output |
job : Jenkins 작업의 이름 jobId : 결과 작업의 ID(예: 1234) jobStatus : Jenkins의 상태 jobResults : 테스트/코드 범위 결과 수집 jobUrl : 결과 작업 실행의 URL |
${MY_STAGE.MY_TASK.output.job} ${MY_STAGE.MY_TASK.output.jobId} ${MY_STAGE.MY_TASK.output.jobStatus} ${MY_STAGE.MY_TASK.output.jobResults} # 모든 결과 참조 ${MY_STAGE.MY_TASK.output.jobResults.junitResponse} # JUnit 결과 참조 ${MY_STAGE.MY_TASK.output.jobResults.jacocoRespose} # JaCoCo 결과 참조 ${MY_STAGE.MY_TASK.output.jobUrl} |
TFS |
|
Input |
projectCollection : TFS에서 프로젝트 수집 teamProject : 사용 가능한 수집에서 선택한 프로젝트 buildDefinitionId : 실행할 빌드 정의 ID |
${MY_STAGE.MY_TASK.input.projectCollection } ${MY_STAGE.MY_TASK.input.teamProject} ${MY_STAGE.MY_TASK.input.buildDefinitionId} |
|
Output |
buildId : 결과 빌드 ID buildUrl : 빌드 요약을 방문하기 위한 URL logUrl : 로그 방문을 위한 URL dropLocation : 아티팩트의 삭제 위치(있는 경우) |
${MY_STAGE.MY_TASK.output.buildId} ${MY_STAGE.MY_TASK.output.buildUrl} ${MY_STAGE.MY_TASK.output.logUrl} ${MY_STAGE.MY_TASK.output.dropLocation} |
vRO |
|
Input |
workflowId : 실행할 워크플로의 ID parameters : 워크플로에 전달할 매개 변수 |
${MY_STAGE.MY_TASK.input.workflowId} ${MY_STAGE.MY_TASK.input.parameters} |
|
Output |
workflowExecutionId : 워크플로 실행 ID properties : 워크플로 실행의 출력 속성 |
${MY_STAGE.MY_TASK.output.workflowExecutionId} ${MY_STAGE.MY_TASK.output.properties} |
표 8.
API를 통해 다른 애플리케이션 통합
작업 |
Scope |
Key |
작업에서 SCOPE 및 KEY를 사용하는 방법 |
REST |
|
Input |
url : 호출할 URL action : 사용할 HTTP 메서드 headers : 전달할 HTTP 헤더 payload : 요청 페이로드 fingerprint : https URL과 일치시킬 지문 allowAllCerts : true로 설정하면 URL이 https인 인증서일 수 있음 |
${MY_STAGE.MY_TASK.input.url} ${MY_STAGE.MY_TASK.input.action} ${MY_STAGE.MY_TASK.input.headers} ${MY_STAGE.MY_TASK.input.payload} ${MY_STAGE.MY_TASK.input.fingerprint} ${MY_STAGE.MY_TASK.input.allowAllCerts} |
|
Output |
responseCode : HTTP 응답 코드 responseHeaders : HTTP 응답 헤더 responseBody : 수신한 응답의 문자열 형식 responseJson : 컨텐츠 유형이 application/json인 경우 통과 가능한 응답 |
${MY_STAGE.MY_TASK.output.responseCode} ${MY_STAGE.MY_TASK.output.responseHeaders} ${MY_STAGE.MY_TASK.output.responseHeaders.header1} # 응답 헤더 'header1' 참조 ${MY_STAGE.MY_TASK.output.responseBody} ${MY_STAGE.MY_TASK.output.responseJson} # JSON으로 응답 참조 ${MY_STAGE.MY_TASK.output.responseJson.a.b.c} # 응답에서 a.b.c JSON 경로 다음에 나오는 중첩된 개체 참조 |
폴링 |
|
Input |
url : 호출할 URL headers : 전달할 HTTP 헤더 exitCriteria : 작업이 성공하거나 실패하기 위해 충족해야 하는 조건. '성공'→ 표현식,'실패'→ 표현식의 키-값 쌍 pollCount : 수행할 반복 횟수. Code Stream 관리자는 폴링 수를 최대 10000으로 설정할 수 있습니다. pollIntervalSeconds : 각 반복 사이의 대기 시간(초). 폴링 간격은 60초보다 크거나 같아야 합니다. ignoreFailure : True로 설정하면 중간 응답 실패를 무시함 fingerprint : https URL과 일치시킬 지문 allowAllCerts : true로 설정하면 URL이 https인 인증서일 수 있음 |
${MY_STAGE.MY_TASK.input.url} ${MY_STAGE.MY_TASK.input.headers} ${MY_STAGE.MY_TASK.input.exitCriteria} ${MY_STAGE.MY_TASK.input.pollCount} ${MY_STAGE.MY_TASK.input.pollIntervalSeconds} ${MY_STAGE.MY_TASK.input.ignoreFailure} ${MY_STAGE.MY_TASK.input.fingerprint} ${MY_STAGE.MY_TASK.input.allowAllCerts} |
|
Output |
responseCode : HTTP 응답 코드 responseBody : 수신한 응답의 문자열 형식 responseJson : 컨텐츠 유형이 application/json인 경우 통과 가능한 응답 |
${MY_STAGE.MY_TASK.output.responseCode} ${MY_STAGE.MY_TASK.output.responseBody} ${MY_STAGE.MY_TASK.output.responseJson} # Refer to response as JSON |
표 9.
원격 및 사용자 정의 스크립트 실행
작업 |
Scope |
Key |
작업에서 SCOPE 및 KEY를 사용하는 방법 |
PowerShell PowerShell 작업을 실행하려면 다음을 수행해야 합니다.
|
|
Input |
host : 시스템의 IP 주소 또는 호스트 이름 username : 연결에 사용할 사용자 이름 password : 연결에 사용할 암호 useTLS : https연결 시도 trustCert : True로 설정하면 자체 서명된 인증서를 신뢰함 script : 실행할 스크립트 workingDirectory : 스크립트를 실행하기 전에 전환할 디렉토리 경로 environmentVariables : 설정할 환경 변수의 키-값 쌍 arguments : 스크립트에 전달할 인수 |
${MY_STAGE.MY_TASK.input.host} ${MY_STAGE.MY_TASK.input.username} ${MY_STAGE.MY_TASK.input.password} ${MY_STAGE.MY_TASK.input.useTLS} ${MY_STAGE.MY_TASK.input.trustCert} ${MY_STAGE.MY_TASK.input.script} ${MY_STAGE.MY_TASK.input.workingDirectory} ${MY_STAGE.MY_TASK.input.environmentVariables} ${MY_STAGE.MY_TASK.input.arguments} |
|
Output |
response : $SCRIPT_RESPONSE_FILE 파일의 컨텐츠 responseFilePath : $SCRIPT_RESPONSE_FILE의 값 exitCode : 프로세스 종료 코드 logFilePath : stdout를 포함하는 파일 경로 errorFilePath : stderr를 포함하는 파일 경로 |
${MY_STAGE.MY_TASK.output.response} ${MY_STAGE.MY_TASK.output.responseFilePath} ${MY_STAGE.MY_TASK.output.exitCode} ${MY_STAGE.MY_TASK.output.logFilePath} ${MY_STAGE.MY_TASK.output.errorFilePath} |
SSH |
|
Input |
host : 시스템의 IP 주소 또는 호스트 이름 username : 연결에 사용할 사용자 이름 password : 연결에 사용할 암호(필요한 경우 privateKey를 사용할 수 있음) privateKey : 연결에 사용할 PrivateKey passphrase : privateKey 잠금 해제를 위한 선택적 암호 script : 실행할 스크립트 workingDirectory : 스크립트를 실행하기 전에 전환할 디렉토리 경로 environmentVariables : 설정할 환경 변수의 키-값 쌍 |
${MY_STAGE.MY_TASK.input.host} ${MY_STAGE.MY_TASK.input.username} ${MY_STAGE.MY_TASK.input.password} ${MY_STAGE.MY_TASK.input.privateKey} ${MY_STAGE.MY_TASK.input.passphrase} ${MY_STAGE.MY_TASK.input.script} ${MY_STAGE.MY_TASK.input.workingDirectory} ${MY_STAGE.MY_TASK.input.environmentVariables} |
|
Output |
response : $SCRIPT_RESPONSE_FILE 파일의 컨텐츠 responseFilePath : $SCRIPT_RESPONSE_FILE의 값 exitCode : 프로세스 종료 코드 logFilePath : stdout를 포함하는 파일 경로 errorFilePath : stderr를 포함하는 파일 경로 |
${MY_STAGE.MY_TASK.output.response} ${MY_STAGE.MY_TASK.output.responseFilePath} ${MY_STAGE.MY_TASK.output.exitCode} ${MY_STAGE.MY_TASK.output.logFilePath} ${MY_STAGE.MY_TASK.output.errorFilePath} |
작업 간에 변수 바인딩을 사용하는 방법
다음 예에서는 파이프라인 작업에서 변수 바인딩을 사용하는 방법을 보여 줍니다.
표 10.
샘플 구문 형식
예 |
구문 |
파이프라인 알림 및 파이프라인 출력 속성에 대해 작업 출력 값을 사용하려는 경우 |
${<Stage Key>.<Task Key>.output.<Task output key>} |
이전 작업 출력 값을 현재 작업에 대한 입력으로 참조하려는 경우 |
${<Previous/Current Stage key>.<Previous task key not in current Task group>.output.<task output key>} |
자세한 내용
작업의 바인딩 변수에 대한 자세한 내용은 다음을 참조하십시오.