

# AWS Data Pipeline를 사용한 예시AWS CLI
<a name="cli_data-pipeline_code_examples"></a>

다음 코드 예시에서는 AWS Data Pipeline에서 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

*작업*은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

**Topics**
+ [작업](#actions)

## 작업
<a name="actions"></a>

### `activate-pipeline`
<a name="data-pipeline_ActivatePipeline_cli_topic"></a>

다음 코드 예시는 `activate-pipeline`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인을 활성화하는 방법**  
이 예제에서는 지정된 파이프라인을 활성화합니다.  

```
aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE
```
특정 날짜 및 시간에 파이프라인을 활성화하려면 다음 명령을 사용합니다.  

```
aws datapipeline activate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --start-timestamp 2015-04-07T00:00:00Z
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ActivatePipeline](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/activate-pipeline.html)을 참조하세요.

### `add-tags`
<a name="data-pipeline_AddTags_cli_topic"></a>

다음 코드 예시는 `add-tags`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인에 태그를 추가하는 방법**  
이 예제에서는 지정된 파이프라인에 지정된 태그를 추가합니다.  

```
aws datapipeline add-tags --pipeline-id df-00627471SOVYZEXAMPLE --tags key=environment,value=production key=owner,value=sales
```
태그를 보려면 describe-pipelines 명령을 사용합니다. 예를 들어, 예제 명령에서 추가된 태그는 describe-pipelines의 출력에 다음과 같이 나타납니다.  

```
{
    ...
        "tags": [
            {
                "value": "production",
                "key": "environment"
            },
            {
                "value": "sales",
                "key": "owner"
            }
        ]
    ...
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [AddTags](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/add-tags.html)를 참조하세요.

### `create-pipeline`
<a name="data-pipeline_CreatePipeline_cli_topic"></a>

다음 코드 예시는 `create-pipeline`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인을 생성하는 방법**  
이 예제에서는 파이프라인을 생성합니다.  

```
aws datapipeline create-pipeline --name my-pipeline --unique-id my-pipeline-token
```
다음은 예제 출력입니다.  

```
{
    "pipelineId": "df-00627471SOVYZEXAMPLE"
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [CreatePipeline](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/create-pipeline.html)을 참조하세요.

### `deactivate-pipeline`
<a name="data-pipeline_DeactivatePipeline_cli_topic"></a>

다음 코드 예시는 `deactivate-pipeline`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인을 비활성화하는 방법**  
이 예제에서는 지정된 파이프라인을 비활성화합니다.  

```
aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE
```
실행 중인 모든 활동이 완료된 후에만 파이프라인을 비활성화하려면 다음 명령을 사용합니다.  

```
aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --no-cancel-active
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DeactivatePipeline](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/deactivate-pipeline.html)을 참조하세요.

### `delete-pipeline`
<a name="data-pipeline_DeletePipeline_cli_topic"></a>

다음 코드 예시는 `delete-pipeline`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인을 삭제하는 방법**  
이 예제에서는 지정된 파이프라인을 삭제합니다.  

```
aws datapipeline delete-pipeline --pipeline-id df-00627471SOVYZEXAMPLE
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DeletePipeline](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/delete-pipeline.html)을 참조하세요.

### `describe-pipelines`
<a name="data-pipeline_DescribePipelines_cli_topic"></a>

다음 코드 예시는 `describe-pipelines`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인을 설명하는 방법**  
이 예제에서는 지정된 파이프라인을 설명합니다.  

```
aws datapipeline describe-pipelines --pipeline-ids df-00627471SOVYZEXAMPLE
```
다음은 예제 출력입니다.  

```
{
  "pipelineDescriptionList": [
      {
          "fields": [
              {
                  "stringValue": "PENDING",
                  "key": "@pipelineState"
              },
              {
                  "stringValue": "my-pipeline",
                  "key": "name"
              },
              {
                  "stringValue": "2015-04-07T16:05:58",
                  "key": "@creationTime"
              },
              {
                  "stringValue": "df-00627471SOVYZEXAMPLE",
                  "key": "@id"
              },
              {
                  "stringValue": "123456789012",
                  "key": "pipelineCreator"
              },
              {
                  "stringValue": "PIPELINE",
                  "key": "@sphere"
              },
              {
                  "stringValue": "123456789012",
                  "key": "@userId"
              },
              {
                  "stringValue": "123456789012",
                  "key": "@accountId"
              },
              {
                  "stringValue": "my-pipeline-token",
                  "key": "uniqueId"
              }
          ],
          "pipelineId": "df-00627471SOVYZEXAMPLE",
          "name": "my-pipeline",
          "tags": []
      }
  ]
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DescribePipelines](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/describe-pipelines.html)를 참조하세요.

### `get-pipeline-definition`
<a name="data-pipeline_GetPipelineDefinition_cli_topic"></a>

다음 코드 예시는 `get-pipeline-definition`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인 정의를 가져오는 방법**  
이 예제에서는 지정된 파이프라인의 파이프라인 정의를 가져옵니다.  

```
aws datapipeline get-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE
```
다음은 예제 출력입니다.  

```
{
  "parameters": [
      {
          "type": "AWS::S3::ObjectKey",
          "id": "myS3OutputLoc",
          "description": "S3 output folder"
      },
      {
          "default": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data",
          "type": "AWS::S3::ObjectKey",
          "id": "myS3InputLoc",
          "description": "S3 input folder"
      },
      {
          "default": "grep -rc \"GET\" ${INPUT1_STAGING_DIR}/* > ${OUTPUT1_STAGING_DIR}/output.txt",
          "type": "String",
          "id": "myShellCmd",
          "description": "Shell command to run"
      }
  ],
  "objects": [
      {
          "type": "Ec2Resource",
          "terminateAfter": "20 Minutes",
          "instanceType": "t1.micro",
          "id": "EC2ResourceObj",
          "name": "EC2ResourceObj"
      },
      {
          "name": "Default",
          "failureAndRerunMode": "CASCADE",
          "resourceRole": "DataPipelineDefaultResourceRole",
          "schedule": {
              "ref": "DefaultSchedule"
          },
          "role": "DataPipelineDefaultRole",
          "scheduleType": "cron",
          "id": "Default"
      },
      {
          "directoryPath": "#{myS3OutputLoc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}",
          "type": "S3DataNode",
          "id": "S3OutputLocation",
          "name": "S3OutputLocation"
      },
      {
          "directoryPath": "#{myS3InputLoc}",
          "type": "S3DataNode",
          "id": "S3InputLocation",
          "name": "S3InputLocation"
      },
      {
          "startAt": "FIRST_ACTIVATION_DATE_TIME",
          "name": "Every 15 minutes",
          "period": "15 minutes",
          "occurrences": "4",
          "type": "Schedule",
          "id": "DefaultSchedule"
      },
      {
          "name": "ShellCommandActivityObj",
          "command": "#{myShellCmd}",
          "output": {
              "ref": "S3OutputLocation"
          },
          "input": {
              "ref": "S3InputLocation"
          },
          "stage": "true",
          "type": "ShellCommandActivity",
          "id": "ShellCommandActivityObj",
          "runsOn": {
              "ref": "EC2ResourceObj"
          }
      }
  ],
  "values": {
      "myS3OutputLoc": "s3://amzn-s3-demo-bucket/",
      "myS3InputLoc": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data",
      "myShellCmd": "grep -rc \"GET\" ${INPUT1_STAGING_DIR}/* > ${OUTPUT1_STAGING_DIR}/output.txt"
  }
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GetPipelineDefinition](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/get-pipeline-definition.html)을 참조하세요.

### `list-pipelines`
<a name="data-pipeline_ListPipelines_cli_topic"></a>

다음 코드 예시는 `list-pipelines`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인을 나열하는 방법**  
이 예제에서는 파이프라인을 나열합니다.  

```
aws datapipeline list-pipelines
```
다음은 예제 출력입니다.  

```
{
  "pipelineIdList": [
      {
          "id": "df-00627471SOVYZEXAMPLE",
          "name": "my-pipeline"
      },
      {
          "id": "df-09028963KNVMREXAMPLE",
          "name": "ImportDDB"
      },
      {
          "id": "df-0870198233ZYVEXAMPLE",
          "name": "CrossRegionDDB"
      },
      {
          "id": "df-00189603TB4MZEXAMPLE",
          "name": "CopyRedshift"
      }
  ]
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListPipelines](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/list-pipelines.html)를 참조하세요.

### `list-runs`
<a name="data-pipeline_ListRuns_cli_topic"></a>

다음 코드 예시는 `list-runs`의 사용 방법을 보여줍니다.

**AWS CLI**  
**예제 1: 파이프라인 실행을 나열하는 방법**  
다음 `list-runs` 예제에서는 지정된 파이프라인에 대한 실행을 나열합니다.  

```
aws datapipeline list-runs --pipeline-id df-00627471SOVYZEXAMPLE
```
출력:  

```
    Name                       Scheduled Start        Status                     ID                                              Started                Ended
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.  EC2ResourceObj             2015-04-12T17:33:02    CREATING                   @EC2ResourceObj_2015-04-12T17:33:02             2015-04-12T17:33:10
2.  S3InputLocation            2015-04-12T17:33:02    FINISHED                   @S3InputLocation_2015-04-12T17:33:02            2015-04-12T17:33:09    2015-04-12T17:33:09
3.  S3OutputLocation           2015-04-12T17:33:02    WAITING_ON_DEPENDENCIES    @S3OutputLocation_2015-04-12T17:33:02           2015-04-12T17:33:09
4.  ShellCommandActivityObj    2015-04-12T17:33:02    WAITING_FOR_RUNNER         @ShellCommandActivityObj_2015-04-12T17:33:02    2015-04-12T17:33:09
```
**예제 2: 지정된 날짜 사이의 파이프라인 실행을 나열하는 방법**  
다음 `list-runs` 예제에서는 `--start-interval`을 사용하여 출력에 포함할 날짜를 지정합니다.  

```
aws datapipeline list-runs --pipeline-id df-01434553B58A2SHZUKO5 --start-interval 2017-10-07T00:00:00,2017-10-08T00:00:00
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListRuns](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/list-runs.html)를 참조하세요.

### `put-pipeline-definition`
<a name="data-pipeline_PutPipelineDefinition_cli_topic"></a>

다음 코드 예시는 `put-pipeline-definition`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인 정의를 업로드하는 방법**  
이 예제에서는 지정된 파이프라인 정의를 지정된 파이프라인에 업로드합니다.  

```
aws datapipeline put-pipeline-definition --pipeline-id df-00627471SOVYZEXAMPLE --pipeline-definition file://my-pipeline-definition.json
```
다음은 예제 출력입니다.  

```
{
  "validationErrors": [],
  "errored": false,
  "validationWarnings": []
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [PutPipelineDefinition](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/put-pipeline-definition.html)을 참조하세요.

### `remove-tags`
<a name="data-pipeline_RemoveTags_cli_topic"></a>

다음 코드 예시는 `remove-tags`의 사용 방법을 보여줍니다.

**AWS CLI**  
**파이프라인에서 태그를 제거하는 방법**  
이 예제에서는 지정된 파이프라인에서 지정된 태그를 제거합니다.  

```
aws datapipeline remove-tags --pipeline-id df-00627471SOVYZEXAMPLE --tag-keys environment
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [RemoveTags](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datapipeline/remove-tags.html)를 참조하세요.