변수와 표현식을 사용하면 파이프라인 작업에서 입력 매개 변수 및 출력 매개 변수를 사용할 수 있습니다. 입력한 매개 변수는 파이프라인 작업을 하나 이상의 변수, 표현식 또는 조건에 바인딩하고 실행 시 파이프라인 동작을 결정합니다.

파이프라인은 간단하거나 복잡한 소프트웨어 제공 솔루션을 실행할 수 있습니다.

파이프라인 작업을 함께 바인딩하는 경우 기본 및 복합 표현식을 포함할 수 있습니다. 그 결과, 파이프라인은 간단하거나 복잡한 소프트웨어 제공 솔루션을 실행할 수 있습니다.

파이프라인에서 매개 변수를 생성하려면 입력 또는 출력 탭을 클릭하고 달러 기호($) 및 표현식을 입력하여 변수를 추가합니다. 예를 들어 이 매개 변수는 ${Stage0.Task3.input.URL} URL을 호출하는 작업 입력으로 사용됩니다.

변수 바인딩 형식은 범위 및 키라는 구문 구성 요소를 사용합니다. SCOPE는 컨텍스트를 입력 또는 출력으로 정의하고 KEY는 세부 정보를 정의합니다. 매개 변수 예 ${Stage0.Task3.input.URL}에서 inputSCOPE이고 URL은 KEY입니다.

모든 작업의 출력 속성은 변수 바인딩의 여러 중첩 수준으로 확인할 수 있습니다.

파이프라인에서 변수 바인딩 사용에 대한 자세한 내용은 VMware Code Stream 파이프라인에서 변수 바인딩을 사용하는 방법 항목을 참조하십시오.

범위 및 키에 달러 표현식을 사용하여 파이프라인 작업 바인딩

달러 기호 변수에 표현식을 사용하여 파이프라인 작업을 바인딩할 수 있습니다. 표현식을 ${SCOPE.KEY.<PATH>}로 입력합니다.

파이프라인 작업의 동작을 확인하기 위해 각 표현식에서 SCOPE Code Stream에 사용되는 컨텍스트입니다. 범위는 작업이 수행하는 작업에 대한 세부 정보를 정의하는 KEY를 찾습니다. KEY의 값이 중첩된 개체인 경우 선택적 PATH를 제공할 수 있습니다.

제공된 예에서는 SCOPEKEY에 대해 설명하고 파이프라인에서 사용하는 방법을 보여줍니다.

표 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:
   - user@example.org
   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:
    - user@example.org
    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 사용

지원되는 파이프라인 작업에 표현식을 사용할 수 있습니다. 다음 예에서는 SCOPEKEY를 정의하고 구문을 확인하는 방법을 보여줍니다. 코드 예제에서는 MY_STAGEMY_TASK를 파이프라인 단계 및 작업 이름으로 사용합니다.

사용 가능한 작업에 대한 자세한 내용을 보려면 VMware 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입니다.

------

  • deploymentId: 배포의 ID

또는

  • deploymentName: 배포의 이름

------

DELETE_DEPLOYMENT

  • deploymentId: 배포의 ID

또는

  • deploymentName: 배포의 이름

ROLLBACK_DEPLOYMENT

다음 조합 중 하나입니다.

  • deploymentId: 배포의 ID

또는

  • deploymentName: 배포의 이름

------

  • 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 사용자 인터페이스에서 모든 속성에 대한 $ 바인딩을 얻을 수 있습니다.

  1. 작업 출력 속성 영역에서 View Output JSON을 클릭합니다.
  2. $ 바인딩을 찾으려면 속성을 입력합니다.
  3. 해당하는 $ 바인딩을 표시하는 검색 아이콘을 클릭합니다.

JSON 출력 예:

JSON 출력에는 address와 같은 용어를 검색할 수 있는 경로 찾기가 포함되며 Code Stream에는 바인딩에 대한 전체 정의가 표시됩니다.

샘플 배포 세부 정보 개체:

{
	"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": "user@vmware.com",
	"lastUpdatedAt": "2020-08-27T13:52:50.674957Z",
	"lastUpdatedBy": "user@vmware.com",
	"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: 수행할 반복 횟수

pollIntervalSeconds: 각 반복 사이의 대기 시간(초)

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>}

자세한 내용

작업의 바인딩 변수에 대한 자세한 내용은 다음을 참조하십시오.