Erstellen einer Pipeline mithilfe parametrisierter Vorlagen - AWS Data Pipeline

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen einer Pipeline mithilfe parametrisierter Vorlagen

Sie können eine Pipeline-Definition anhand einer parametrisierten Vorlage anpassen. Auf diese Weise können Sie eine gemeinsame Pipeline-Definition erstellen, aber unterschiedliche Parameter konfigurieren, wenn Sie die Pipeline-Definition zu einer neuen Pipeline hinzufügen.

MyVariables zur Pipeline-Definition hinzufügen

Geben Sie beim Erstellen der Pipeline-Definitionsdatei mithilfe der folgenden Syntax Variablen an: #{myVariable}. Der Variablen muss my vorangestellt werden. Die folgende Pipeline-Definitionsdateipipeline-definition.json, enthält beispielsweise die folgenden Variablen: myShellCmd, myS3 InputLoc und OutputLocmyS3.

Anmerkung

In einer Pipeline-Definition sind maximal 50 Parameter zulässig.

{ "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" } ] }

Definieren Sie Parameterobjekte

Sie können eine separate Datei mit Parameterobjekten erstellen, um die Variablen in Ihrer Pipeline-Definition zu definieren. Die folgende JSON-Datei,parameters.json, enthält beispielsweise Parameterobjekte für die OutputLoc Variablen myShellCmd, myS3 InputLoc und myS3 aus der obigen Beispiel-Pipeline-Definition.

{ "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" } ] }
Anmerkung

Sie können diese Objekte der Pipeline-Definitionsdatei anstatt über eine separate Datei auch direkt hinzufügen.

Die folgende Tabelle beschreibt die Attribute für Parameterobjekte.

Parameterattribute
Attribut Typ Beschreibung
id Zeichenfolge Der eindeutige Bezeichner des Parameters. Wenn der Wert bei der Eingabe oder Anzeige maskiert werden soll, fügen Sie als Präfix ein Sternchen ('*') hinzu. Zum Beispiel *myVariable —. Dabei ist zu beachten, dass der Wert dadurch auch verschlüsselt wird, bevor er durch AWS Data Pipeline gespeichert wird.
description Zeichenfolge Eine Beschreibung des Parameters.
type Zeichenfolge, Ganzzahl, Double oder AWS::S3::ObjectKey Der Parametertyp zur Definition des zulässigen Bereichs von Eingabewerten und Validierungsregeln. Der Standardwert ist eine Zeichenfolge.
optional Boolesch Gibt an, ob der Parameter optional oder erforderlich ist. Der Standardwert ist false.
allowedValues Liste von Zeichenfolgen Listet alle zulässigen Werte für den Parameter auf.
default Zeichenfolge Der Standardwert für den Parameter. Wenn Sie mithilfe von Parameterwerten einen Wert für diesen Parameter angeben, wird der Standardwert durch ihn überschrieben.
isArray Boolesch Gibt an, ob der Parameter ein Array ist.

Definieren von Parameterwerten

Sie können eine separate Datei zur Definition von Variablen mithilfe von Parameterwerten erstellen. Die folgende JSON-Datei,file://values.json, enthält beispielsweise den Wert für die OutputLocmyS3-Variable aus der obigen Beispiel-Pipeline-Definition.

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

Einreichung der Pipeline-Definition

Wenn Sie Ihre Pipeline-Definition senden, können Sie Parameter, Parameterobjekte und Parameterwerte angeben. Sie können den put-pipeline-definitionAWS CLIBefehl beispielsweise wie folgt verwenden:

$ 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
Anmerkung

In einer Pipeline-Definition sind maximal 50 Parameter zulässig. Die Größe der Datei für parameter-values-uri darf maximal 15 kB betragen.