パラメータ化されたテンプレートを使用したパイプラインの作成 - AWS Data Pipeline

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

パラメータ化されたテンプレートを使用したパイプラインの作成

パラメータ化されたテンプレートを使用して、パイプライン定義をカスタマイズできます。これにより、共通のパイプライン定義を作成しておき、このパイプライン定義を新しいパイプラインに追加するときに、異なるパラメータを指定することができます。

パイプライン定義myVariablesへの追加

パイプライン定義ファイルを作成するときは、#{myVariable}。 変数の前にプレフィックス を付ける必要がありますmy。 たとえば、次のパイプライン定義ファイル pipeline-definition.json には、以下の変数が含まれています。myShellCmd, myS3InputLoc, および myS3OutputLoc.

注記

パイプライン定義には、50 パラメーターという上限があります。

{ "objects": [ { "id": "ShellCommandActivityObj", "input": { "ref": "S3InputLocation" }, "name": "ShellCommandActivityObj", "runsOn": { "ref": "EC2ResourceObj" }, "command": "#{myShellCmd}", "output": { "ref": "S3OutputLocation" }, "type": "ShellCommandActivity", "stage": "true" }, { "id": "Default", "scheduleType": "CRON", "failureAndRerunMode": "CASCADE", "schedule": { "ref": "Schedule_15mins" }, "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "S3InputLocation", "name": "S3InputLocation", "directoryPath": "#{myS3InputLoc}", "type": "S3DataNode" }, { "id": "S3OutputLocation", "name": "S3OutputLocation", "directoryPath": "#{myS3OutputLoc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", "type": "S3DataNode" }, { "id": "Schedule_15mins", "occurrences": "4", "name": "Every 15 minutes", "startAt": "FIRST_ACTIVATION_DATE_TIME", "type": "Schedule", "period": "15 Minutes" }, { "terminateAfter": "20 Minutes", "id": "EC2ResourceObj", "name": "EC2ResourceObj", "instanceType":"t1.micro", "type": "Ec2Resource" } ] }

パラメータオブジェクトの定義

パイプライン定義に含まれる変数を定義したパラメータオブジェクトのファイルは、個別に作成することができます。たとえば、次の parameters.json JSON ファイル (、) には、myShellCmd, myS3InputLoc, および myS3OutputLoc 上記のパイプライン定義の例からの 変数。

{ "parameters": [ { "id": "myShellCmd", "description": "Shell command to run", "type": "String", "default": "grep -rc \"GET\" ${INPUT1_STAGING_DIR}/* > ${OUTPUT1_STAGING_DIR}/output.txt" }, { "id": "myS3InputLoc", "description": "S3 input location", "type": "AWS::S3::ObjectKey", "default": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data" }, { "id": "myS3OutputLoc", "description": "S3 output location", "type": "AWS::S3::ObjectKey" } ] }
注記

個別のファイルを使用する代わりに、これらのオブジェクトをパイプライン定義ファイルに直接追加することもできます。

次の表では、パラメータオブジェクトの属性を説明しています。

パラメータ属性
属性 タイプ  説明
id 文字列 パラメータの一意な識別子。入力中または表示中に値を隠すには、プレフィックスとしてアスタリスク(*)を追加します たとえば、 *myVariable — 。 これにより、 によって保存される前に値が暗号化されることに注意してくださいAWS Data Pipeline。
description 文字列 パラメータの説明。
type String、Integer、Double、または AWS::S3::ObjectKey パラメータの型。入力値の許容範囲と検証規則を定義します。デフォルト値は String です。
optional Boolean パラメータがオプションか必須かを示します。デフォルト: false
allowedValues Strings のリスト パラメータに許可されている値をすべて列挙します。
default 文字列 パラメータのデフォルト値。パラメータ値を使用して、このパラメータの値を指定すると、デフォルト値を上書きします。
isArray Boolean パラメータが配列かどうかを示します。

パラメータ値の定義

個別のファイルを作成し、パラメータ値を使用して変数を定義することができます。たとえば、次の file://values.json JSON ファイル () には、 の値が含まれています。myS3OutputLoc 上記のパイプライン定義例からの 変数。

{ "values": { "myS3OutputLoc": "myOutputLocation" } }

パイプライン定義の送信

パイプライン定義を送信する際には、パラメータ、パラメータオブジェクト、パラメータ値を指定できます。たとえば、AWS CLI コマンド put-pipeline-definition を次のように使用できます。

$ aws datapipeline put-pipeline-definition --pipeline-id id --pipeline-definition file://pipeline-definition.json \ --parameter-objects file://parameters.json --parameter-values-uri file://values.json
注記

パイプライン定義には、50 パラメーターという上限があります。parameter-values-uri 用のファイルサイズには、15 KB という上限があります。