

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

 


****  

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

 


****  

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

 


****  

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

 


****  

| 실행 시간 필드 | 설명 | 슬롯 유형 | 
| --- | --- | --- | 
| @activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체. 예: "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime | 
| @actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime | 
| cancellationReason | 이 객체가 취소된 경우의 cancellationReason입니다. | 문자열 | 
| @cascadeFailedOn | 객체 실패를 유발한 종속 체인에 대한 설명입니다. | 참조 객체. 예: "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| 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":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

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

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