Creazione di una pipeline utilizzando modelli parametrizzati - AWS Data Pipeline

AWS Data Pipeline non è più disponibile per i nuovi clienti. Clienti esistenti di AWS Data Pipeline possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di una pipeline utilizzando modelli parametrizzati

È possibile utilizzare un modello parametrizzato per personalizzare una definizione di pipeline. In questo modo è possibile creare una definizione di pipeline comune offrendo diversi parametri quando si aggiunge la definizione di pipeline a una nuova pipeline.

Aggiungi myVariables alla definizione della pipeline

Quando si crea il file di definizione della pipeline, specificare le variabili utilizzando la sintassi seguente: #{myVariable}. È necessario che la variabile abbia il prefisso my. Ad esempio, il seguente file di definizione della pipeline include le seguenti variabili: myShellCmdMyS3 e MyS3 InputLoc. pipeline-definition.json OutputLoc

Nota

Una definizione di pipeline dispone di un limite massimo di 50 parametri.

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

Definire oggetti parametrici

È possibile creare un file separato con gli oggetti dei parametri che definisca le variabili della definizione della pipeline. Ad esempio, il seguente file JSON contiene oggetti parameters.json parametrici per le OutputLoc variabili myShellCmd, MyS3 e MyS3 della InputLoc definizione della pipeline di esempio sopra riportata.

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

È possibile aggiungere questi oggetti direttamente al file di definizione della pipeline invece di utilizzare un file separato.

La tabella seguente descrive gli attributi per gli oggetti dei parametri.

Attributi dei parametri
Attributo Type (Tipo) Descrizione
id Stringa Identificatore univoco del parametro. Per mascherare il valore mentre è digitato o visualizzato, aggiungere un asterisco (*) come prefisso. Ad esempio, *myVariable —. Da notare che questo, inoltre, crittografa il valore prima di essere memorizzato da AWS Data Pipeline.
description Stringa Descrizione del parametro.
type Stringa, numero intero, doppio o AWS::S3::ObjectKey Il tipo di parametro che definisce l'intervallo consentito di valori di input e regole di convalida. L'impostazione predefinita è Stringa.
facoltativo Boolean Indica se il parametro è obbligatorio o facoltativo. Il valore predefinito è false.
allowedValues Elenco di stringhe Enumera tutti i valori consentiti per il parametro.
default Stringa Il valore predefinito per il parametro. Se si specifica un valore per questo parametro utilizzando i valori dei parametri, sostituisce il valore di default.
isArray Boolean Indica se il parametro è un array.

Definire i valori di parametro

È possibile creare un file separato per definire le variabili utilizzando i valori dei parametri. Ad esempio, il seguente file JSON contiene il valore per la OutputLoc variabile MyS3 dalla definizione di pipeline di esempio sopra riportata. file://values.json

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

Invio della definizione della pipeline

Quando si invia la definizione di pipeline, è possibile specificare i parametri, gli oggetti dei parametri e i valori dei parametri. Ad esempio, puoi usare il put-pipeline-definitionAWS CLIcomando come segue:

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

Una definizione di pipeline dispone di un limite massimo di 50 parametri. La dimensione del file per parameter-values-uri dispone di un limite massimo di 15 KB.