AWS Data Pipeline 使用 的範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Data Pipeline 使用 的範例 AWS CLI

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 來執行動作和實作常見案例 AWS Data Pipeline。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 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

下列程式碼範例示範如何使用 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

下列程式碼範例示範如何使用 create-pipeline

AWS CLI

建立管道

此範例會建立管道:

aws datapipeline create-pipeline --name my-pipeline --unique-id my-pipeline-token

下列為範例輸出:

{ "pipelineId": "df-00627471SOVYZEXAMPLE" }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreatePipeline

下列程式碼範例示範如何使用 deactivate-pipeline

AWS CLI

若要停用管道

此範例會停用指定的管道:

aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE

若要僅在所有執行中的活動都完成後停用管道,請使用下列命令:

aws datapipeline deactivate-pipeline --pipeline-id df-00627471SOVYZEXAMPLE --no-cancel-active

下列程式碼範例示範如何使用 delete-pipeline

AWS CLI

若要刪除管道

此範例會刪除指定的管道:

aws datapipeline delete-pipeline --pipeline-id df-00627471SOVYZEXAMPLE
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeletePipeline

下列程式碼範例示範如何使用 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

下列程式碼範例示範如何使用 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://my-s3-bucket/", "myS3InputLoc": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data", "myShellCmd": "grep -rc \"GET\" ${INPUT1_STAGING_DIR}/* > ${OUTPUT1_STAGING_DIR}/output.txt" } }

下列程式碼範例示範如何使用 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

下列程式碼範例示範如何使用 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

下列程式碼範例示範如何使用 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": [] }

下列程式碼範例示範如何使用 remove-tags

AWS CLI

從管道移除標籤

此範例會從指定的管道移除指定的標籤:

aws datapipeline remove-tags --pipeline-id df-00627471SOVYZEXAMPLE --tag-keys environment
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 RemoveTags