AWS Data Pipeline 신규 고객은 더 이상 이용할 수 없습니다. 의 기존 고객은 정상적으로 서비스를 계속 이용할 AWS Data Pipeline 수 있습니다. 자세히 알아보기
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
ShellCommandActivity
명령 또는 스크립트를 실행합니다. ShellCommandActivity
를 사용하여 시계열 또는 Cron 같은 예약된 작업을 실행할 수 있습니다.
stage
필드를 true로 설정하고 와 함께 사용하면 스테이징 데이터 개념이 ShellCommandActivity
지원됩니다. 즉, Amazon S3에서 Amazon EC2 또는 로컬 환경과 같은 스테이지 위치로 데이터를 이동하고, 스크립트와 를 사용하여 데이터에 대한 작업을 수행하고ShellCommandActivity
, Amazon S3로 다시 이동할 수 있습니다. S3DataNode
이 경우 셸 명령이 입력 S3DataNode
에 연결되면 셸 스크립트는 ShellCommandActivity
입력 필드를 참조해 ${INPUT1_STAGING_DIR}
, ${INPUT2_STAGING_DIR}
및 기타 필드를 사용하는 데이터에서 직접 작동할 수 있습니다.
마찬가지로 쉘 명령의 출력을 출력 디렉터리에서 스테이징하여 ${OUTPUT1_STAGING_DIR}
, ${OUTPUT2_STAGING_DIR}
등에 의해 참조되는 Amazon S3에 자동으로 푸시할 수 있습니다.
이러한 표현식을 통해 데이터 변환 논리에 사용할 셸 명령에 명령줄 인수로 전달할 수 있습니다.
ShellCommandActivity
는 Linux 스타일의 오류 코드 및 문자열을 반환합니다. ShellCommandActivity
에서 오류가 발생하면 반환된 error
는 0이 아닌 값이 됩니다.
예
다음은 이 객체 유형의 예제입니다.
{ "id" : "CreateDirectory", "type" : "ShellCommandActivity", "command" : "mkdir new-directory" }
구문
액체 호출 필드 | 설명 | 슬롯 유형 |
---|---|---|
schedule |
이 객체는 이 객체의 종속 실행 순서를 설정하려면 다른 객체로 이 요구 사항을 충족하려면, 예컨대 대부분의 경우에는 모든 객체가 상속할 수 있도록 부하를 분산하기 위해 예정보다 약간 앞서 물리적 객체를 AWS Data Pipeline 생성하되 일정에 따라 실행합니다. 선택형 일정 구성 예제에 대한 자세한 내용은 https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html 단원을 참조하십시오. |
참조 개체, 예: “스케줄”: {"ref”:” myScheduleId “} |
필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 |
---|---|---|
명령 | 실행할 명령입니다. $ 을 사용하여 명령의 파라미터를 지정할 위치 파라미터와 scriptArgument 를 참조합니다. 이 값 및 연결된 파라미터는 Task Runner를 실행 중인 환경에서 작동해야 합니다. |
String |
scriptUri | 셸 명령으로 다운로드하고 실행할 파일의 Amazon S3 URI 경로입니다. 단 하나의 scriptUri 또는 command 필드만 지정합니다. scriptUri 는 파라미터를 사용할 수 없으며, command 를 사용합니다. |
String |
필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 |
---|---|---|
runsOn | 활동이나 명령을 실행하는 데 필요한 컴퓨팅 리소스 (예: Amazon EC2 인스턴스 또는 Amazon EMR 클러스터). | 참조 객체, 예: "runsOn“: {" ref”:” “} myResourceId |
workerGroup | 작업 라우팅에 사용됩니다. workerGroup 이 있을 때 runsOn 값을 제공하면 workerGroup 이 무시됩니다. |
String |
선택 필드 | 설명 | 슬롯 유형 |
---|---|---|
attemptStatus | 원격 활동에서 가장 최근에 보고한 상태입니다. | String |
attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 지정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | 기간 |
dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체, 예: "dependsOn“: {" ref”:” myActivityId “} |
failureAndRerun모드 | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 |
입력 | 입력 데이터의 위치입니다. | 참조 객체, 예: “입력”: {"ref”:” myDataNode Id "} |
lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand (으)로 설정되지 않은 경우에만 트리거됩니다. |
기간 |
maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer |
maximumRetries | 장애 시 재시도 최대 횟수. | Integer |
onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체, 예: "onFail“: {" ref”:” myActionId “} |
onLateAction | 객체가 아직 예약되지 않았거나 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체, 예: "onLateAction“: {" ref”:” myActionId “} |
onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체, 예: "onSuccess“: {" ref”:” myActionId “} |
output | 출력 데이터의 위치입니다. | 참조 객체, 예: “출력”: {"ref”:” myDataNode Id "} |
parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체, 예: “부모”: {"ref”:” myBaseObject Id "} |
pipelineLogUri | Amazon S3 URI (예: 파이프라인 로그 's3://BucketName/Key/' 업로드용) |
String |
precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족될 때까지는 데이터 노드가 READY "“로 표시되지 않습니다. | 참조 객체, 예: “전제 조건”: {"ref”:” “} myPreconditionId |
reportProgressTimeout | 원격 작업에서 reportProgress 를 연속으로 호출하는 제한 시간입니다. 이것이 설정되면 지정 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주되어 재시도될 수 있습니다. |
기간 |
retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | 기간 |
scheduleType |
파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 값은
|
열거 |
scriptArgument | 명령으로 지정된 명령에 전달할 JSON 형식의 문자열 배열입니다. 예를 들어, 명령이 echo $1 $2 인 경우 scriptArgument 를 "param1", "param2" 로 지정합니다. 여러 인수와 파라미터의 경우,
"scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2" 와 같이 scriptArgument 를 전달합니다. scriptArgument 는 command 와 함께 사용해야 하며 scriptUri 절과 함께 사용하면 오류가 발생합니다. |
String |
stage | 스테이징 활성화 여부를 결정하며, 셸 명령을 사용하여 ${INPUT1_STAGING_DIR} 및
${OUTPUT1_STAGING_DIR} 같은 스테이징 데이터 변수에 액세스할 수 있습니다. |
불 |
stderr | 명령에서 리디렉션된 시스템 오류 메시지를 수신하는 경로입니다. runsOn 필드를 사용할 경우에는 활동을 실행할 리소스가 임시적이므로 Amazon S3 경로가 되어야 합니다. 그러나 workerGroup 필드를 지정할 경우에는 로컬 파일 경로가 허용됩니다. |
String |
stdout | 명령에서 리디렉션된 출력을 수신하는 Amazon S3 경로입니다. runsOn 필드를 사용할 경우에는 활동을 실행할 리소스가 임시적이므로 Amazon S3 경로가 되어야 합니다. 그러나 workerGroup 필드를 지정할 경우에는 로컬 파일 경로가 허용됩니다. |
String |
실행 시간 필드 | 설명 | 슬롯 유형 |
---|---|---|
@activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 개체, 예: "activeInstances“: {" ref”:” myRunnableObject Id "} |
@actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime |
@actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime |
cancellationReason | 이 객체가 취소된 경우의 cancellationReason 입니다. |
String |
@cascadeFailedOn | 객체 실패를 유발한 종속 체인에 대한 설명입니다. | 참조 객체, 예: "cascadeFailedOn“: {" ref”:” myRunnableObject Id "} |
emrStepLog | Amazon EMR 단계 로그는 Amazon EMR 활동 시도에서만 사용할 수 있습니다. | String |
errorId | 이 객체가 실패한 경우의 errorId 입니다. |
String |
errorMessage | 이 객체가 실패한 경우의 errorMessage 입니다. |
String |
errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | String |
@finishedTime | 객체의 실행이 완료된 시간입니다. | DateTime |
hadoopJobLog | Amazon EMR 기반 활동 시도 시 하둡 작업 로그를 사용할 수 있습니다. | String |
@healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | String |
@healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | String |
@ 시간 healthStatusUpdated | 상태가 마지막으로 업데이트된 시간입니다. | DateTime |
hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | String |
@lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime |
@ latestCompletedRun 시간 | 실행이 완료된 최근 실행 시간입니다. | DateTime |
@latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime |
@nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime |
reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime |
@scheduledEndTime | 객체의 일정 종료 시간입니다. | DateTime |
@scheduledStartTime | 객체의 일정 시작 시간입니다. | DateTime |
@상태 | 객체의 상태입니다. | String |
@version | 객체를 만드는 데 사용된 AWS Data Pipeline 버전. | String |
@waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체, 예: "waitingOn“: {" ref”:” myRunnableObject Id "} |
시스템 필드 | 설명 | 슬롯 유형 |
---|---|---|
@오류 | 잘못 형성된 객체를 설명하는 오류입니다. | String |
@pipelineId | 이 객체가 속하는 파이프라인의 ID입니다. | String |
@sphere | 수명 주기상 객체의 위치. 구성요소 객체가 인스턴스 객체를 트리거하고, 인스턴스 객체는 시도 객체를 실행합니다. | String |