Membuat pipa Menggunakan template parametrized - AWS Data Pipeline

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat pipa Menggunakan template parametrized

Anda dapat menggunakan templat parametris untuk menyesuaikan definisi alur. Hal ini memungkinkan Anda untuk membuat definisi alur yang umum tetapi memberikan parameter yang berbeda saat Anda menambahkan definisi alur ke alur baru.

Tambahkan MyVariables ke definisi pipeline

Ketika Anda membuat file definisi alur, tentukan variabel menggunakan sintaks berikut: #{myVariabel}. Diperlukan agar variabel menggunakan prefiks my. Misalnya, file definisi pipeline berikut,pipeline-definition.json, termasuk variabel berikut:, myS3 myShellCmd, dan myS3 InputLoc. OutputLoc

catatan

Definisi alur memiliki batas atas 50 parameter.

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

Tentukan objek parameter

Anda dapat membuat file terpisah dengan objek parameter yang mendefinisikan variabel dalam definisi alur Anda. Misalnya, file JSON berikut, berisi objek parameter untuk OutputLoc variabelparameters.json, myS3 myShellCmdInputLoc, dan myS3 dari definisi pipeline contoh di atas.

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

Anda dapat menambahkan objek ini langsung ke file definisi alur alih-alih menggunakan file terpisah.

Tabel berikut menjelaskan atribut untuk objek parameter.

Atribut parameter
Atribut Tipe Deskripsi
id String Pengidentifikasi unik dari parameter. Untuk menutupi nilai saat diketik atau ditampilkan, tambahkan tanda bintang ('*') sebagai prefiks. Misalnya, *myVariable —. Perhatikan bahwa ini juga mengenkripsi nilai sebelum disimpan oleh AWS Data Pipeline.
deskripsi String Deskripsi parameter.
jenis String, Integer, Double, atau AWS::S3::ObjectKey Jenis parameter yang menentukan rentang nilai input dan aturan validasi yang diizinkan. Default-nya adalah String.
pilihan Boolean Menunjukkan apakah parameter adalah opsional atau diperlukan. Defaultnya adalah false.
allowedValues Daftar String Menghitung semua nilai yang diizinkan untuk parameter.
default String Nilai default untuk parameter. Jika Anda menentukan nilai untuk parameter ini menggunakan nilai parameter, nilai default akan ditimpa.
isArray Boolean Menunjukkan apakah parameter adalah array.

Menentukan Nilai Parameter

Anda dapat membuat file terpisah untuk mendefinisikan variabel Anda menggunakan nilai parameter. Misalnya, file JSON berikut,file://values.json, berisi nilai untuk OutputLoc variabel myS3 dari definisi contoh pipeline di atas.

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

Mengirimkan definisi pipeline

Ketika Anda mengirimkan definisi alur Anda, Anda dapat menentukan parameter, objek parameter, dan nilai-nilai parameter. Misalnya, Anda dapat menggunakan put-pipeline-definitionAWS CLIperintah sebagai berikut:

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

Definisi alur memiliki batas atas 50 parameter. Ukuran file untuk parameter-values-uri memiliki batas atas 15 KB.