

AWS Data Pipeline 는 더 이상 신규 고객이 사용할 수 없습니다. 의 기존 고객은 평소와 같이 서비스를 계속 사용할 AWS Data Pipeline 수 있습니다. [자세히 알아보기](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# ShellCommandActivity
<a name="dp-object-shellcommandactivity"></a>

 명령 또는 스크립트를 실행합니다. `ShellCommandActivity`를 사용하여 시계열 또는 Cron 같은 예약된 작업을 실행할 수 있습니다.

`stage` 필드가 참으로 설정되고 `S3DataNode`과(와) 함께 사용되는 경우 `ShellCommandActivity`은(는) 데이터 스테이징 개념을 지원합니다. 즉, Amazon S3에서 스테이지 위치(예: Amazon EC2 또는 로컬 환경)로 데이터를 이동하고 스크립트 및 `ShellCommandActivity`을(를) 사용하여 데이터에 대한 작업을 수행한 후 이를 다시 Amazon S3로 이동할 수 있습니다.

이 경우 셸 명령이 입력 `S3DataNode`에 연결되면 셸 스크립트는 `ShellCommandActivity` 입력 필드를 참조해 `${INPUT1_STAGING_DIR}`, `${INPUT2_STAGING_DIR}` 및 기타 필드를 사용하는 데이터에서 직접 작동할 수 있습니다.

마찬가지로 쉘 명령의 출력을 출력 디렉터리에서 스테이징하여 `${OUTPUT1_STAGING_DIR}`, `${OUTPUT2_STAGING_DIR}` 등에 의해 참조되는 Amazon S3에 자동으로 푸시할 수 있습니다.

이러한 표현식을 통해 데이터 변환 논리에 사용할 셸 명령에 명령줄 인수로 전달할 수 있습니다.

`ShellCommandActivity`는 Linux 스타일의 오류 코드 및 문자열을 반환합니다. `ShellCommandActivity`에서 오류가 발생하면 반환된 `error`는 0이 아닌 값이 됩니다.

## 예제
<a name="shellcommandactivity-example"></a>

다음은 이 객체 유형의 예제입니다.

```
{
  "id" : "CreateDirectory",
  "type" : "ShellCommandActivity",
  "command" : "mkdir new-directory"
}
```

## 구문
<a name="shellcommandactivity-syntax"></a>


****  

| 액체 호출 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| schedule | 이 객체는 `schedule` 간격을 실행할 때 호출됩니다.<br />이 객체의 종속 실행 순서를 설정하려면 다른 객체로 `schedule` 참조를 지정합니다.<br />이 요구 사항을 충족하려면, 예컨대 `"schedule": {"ref": "DefaultSchedule"}`을 지정하여 객체에서 `schedule`을 명시적으로 설정합니다.<br />대부분의 경우에는 모든 객체가 상속할 수 있도록 `schedule` 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 파이프라인이 일정 트리로 구성된 경우(마스터 일정 안의 일정) 일정 참조가 있는 부모 객체를 생성합니다.<br />로드를 분산하기 위해는 물리적 객체를 일정보다 약간 앞서 AWS Data Pipeline 생성하지만 일정에 따라 실행합니다.<br />선택형 일정 구성 예제에 대한 자세한 내용은 단원을 참조하세요[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html) | 참조 객체. 예: "schedule":{"ref":"myScheduleId"} | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| 명령 | 실행할 명령입니다. $을 사용하여 명령의 파라미터를 지정할 위치 파라미터와 scriptArgument를 참조합니다. 이 값 및 연결된 파라미터는 Task Runner를 실행 중인 환경에서 작동해야 합니다. | 문자열 | 
| scriptUri | 파일을 다운로드하여 셸 명령으로 실행할 Amazon S3 URI 경로입니다. 단 하나의 scriptUri 또는 command 필드만 지정합니다. scriptUri는 파라미터를 사용할 수 없으며, command를 사용합니다. | 문자열 | 

 


****  

| 필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| runsOn | Amazon EC2 인스턴스 또는 Amazon EMR 클러스터 등, 활동이나 명령을 실행할 전산 리소스입니다. | 참조 객체. 예: "runsOn":{"ref":"myResourceId"} | 
| workerGroup | 작업 라우팅에 사용됩니다. workerGroup이 있을 때 runsOn 값을 제공하면 workerGroup이 무시됩니다. | 문자열 | 

 


****  

| 선택 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| attemptStatus | 원격 활동에서 가장 최근에 보고한 상태입니다. | 문자열 | 
| attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 지정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | Period | 
| dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체. 예: "dependsOn":{"ref":"myActivityId"} | 
| failureAndRerunMode | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 | 
| 입력 | 입력 데이터의 위치입니다. | 참조 객체, 예: "input":{"ref":"myDataNodeId"} | 
| lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand(으)로 설정되지 않은 경우에만 트리거됩니다. | Period | 
| maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer | 
| maximumRetries | 장애 시 재시도 최대 횟수. | Integer | 
| onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체. 예: "onFail":{"ref":"myActionId"} | 
| onLateAction | 객체가 아직 예약되지 않았거나 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체. 예: "onLateAction":{"ref":"myActionId"} | 
| onSuccess | 현재 객체 성공 시 실행할 작업입니다. | 참조 객체. 예: "onSuccess":{"ref":"myActionId"} | 
| output | 출력 데이터의 위치입니다. | 참조 객체, 예: "output":{"ref":"myDataNodeId"} | 
| parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체. 예: "parent":{"ref":"myBaseObjectId"} | 
| pipelineLogUri | 파이프라인의 로그를 업로드할 Amazon S3 URI(예:'s3://BucketName/Key/')입니다. | 문자열 | 
| precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족되기 전까지 데이터 노드에 "READY"가 표시되지 않습니다. | 참조 객체. 예: "precondition":{"ref":"myPreconditionId"} | 
| reportProgressTimeout | 원격 작업에서 reportProgress를 연속으로 호출하는 제한 시간입니다. 이것이 설정되면 지정 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주되어 재시도될 수 있습니다. | Period | 
| retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | Period | 
| scheduleType | 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다.<br />값은 `cron`, `ondemand` 및 `timeseries`입니다.<br />`timeseries`로 설정하면 각 간격이 종료될 때 인스턴스 일정이 지정됩니다.<br />`Cron`로 설정하면 각 간격이 시작될 때 인스턴스 일정이 지정됩니다.<br />`ondemand`로 설정하면 활성화될 때마다 한 번씩 파이프라인을 실행할 수 있습니다. 이 경우 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. `ondemand` 일정을 사용하려면 기본 객체에서 이것을 파이프라인의 객체에 유일한 `scheduleType`으로 지정합니다. `ondemand` 파이프라인을 사용하려면 후속 실행마다 `ActivatePipeline` 작업을 호출합니다. | 열거 | 
| scriptArgument | 명령으로 지정된 명령에 전달할 문자열의 JSON 형식 어레이입니다. 예를 들어, 명령이 echo $1 $2인 경우 scriptArgument를 "param1", "param2"로 지정합니다. 여러 인수와 파라미터의 경우,  "scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2"와 같이 scriptArgument를 전달합니다. scriptArgument는 command와 함께 사용해야 하며 scriptUri 절과 함께 사용하면 오류가 발생합니다. | 문자열 | 
| stage | 스테이징 활성화 여부를 결정하며, 셸 명령을 사용하여 ${INPUT1\_STAGING\_DIR} 및  ${OUTPUT1\_STAGING\_DIR} 같은 스테이징 데이터 변수에 액세스할 수 있습니다. | 부울 | 
| stderr | 명령에서 리디렉션된 시스템 오류 메시지를 수신하는 경로입니다. runsOn 필드를 사용할 경우에는 활동을 실행할 리소스가 임시적이므로 Amazon S3 경로가 되어야 합니다. 그러나 workerGroup 필드를 지정할 경우에는 로컬 파일 경로가 허용됩니다. | 문자열 | 
| stdout | 명령에서 리디렉션된 출력을 수신하는 Amazon S3 경로입니다. runsOn 필드를 사용할 경우에는 활동을 실행할 리소스가 임시적이므로 Amazon S3 경로가 되어야 합니다. 그러나 workerGroup 필드를 지정할 경우에는 로컬 파일 경로가 허용됩니다. | 문자열 | 

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":{"ref":"myRunnableObjectId"} | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패를 유발한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":{"ref":"myRunnableObjectId"} | 
| emrStepLog | Amazon EMR 활동 시도 시에만 사용할 수 있는 Amazon EMR 단계 로그. | 문자열 | 
| errorId | 이 객체가 실패한 경우의 errorId입니다. | 문자열 | 
| errorMessage | 이 객체가 실패한 경우의 errorMessage입니다. | 문자열 | 
| errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | 문자열 | 
| @finishedTime | 객체의 실행이 완료된 시간입니다. | DateTime | 
| hadoopJobLog | Amazon EMR 기반 활동 시도 시에만 사용할 수 있는 Hadoop 작업 로그. | 문자열 | 
| @healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | 문자열 | 
| @healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | 문자열 | 
| @healthStatusUpdatedTime | 상태가 마지막으로 업데이트된 시간입니다. | DateTime | 
| hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | 문자열 | 
| @lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime | 
| @latestCompletedRunTime | 실행이 완료된 최근 실행 시간입니다. | DateTime | 
| @latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime | 
| @nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime | 
| reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime | 
| @scheduledEndTime | 객체의 일정 종료 시간입니다. | DateTime | 
| @scheduledStartTime | 객체의 일정 시작 시간입니다. | DateTime | 
| @상태 | 객체의 상태입니다. | 문자열 | 
| @version | 객체를 생성하는 데 사용되는 AWS Data Pipeline 버전입니다. | 문자열 | 
| @waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체. 예: "waitingOn":{"ref":"myRunnableObjectId"} | 

 


****  

| 시스템 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @오류 | 잘못 형성된 객체를 설명하는 오류입니다. | 문자열 | 
| @pipelineId | 이 객체가 속하는 파이프라인의 ID입니다. | 문자열 | 
| @sphere | 수명 주기상 객체의 위치. 구성요소 객체가 인스턴스 객체를 트리거하고, 인스턴스 객체는 시도 객체를 실행합니다. | 문자열 | 

## 참고
<a name="shellcommandactivity-seealso"></a>
+ [CopyActivity](dp-object-copyactivity.md)
+ [EmrActivity](dp-object-emractivity.md)