Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat skrip tata letak cetak biru
Skrip tata letak cetak biru harus menyertakan fungsi yang menghasilkan entitas dalam alur kerja Anda. Anda dapat memberi nama fungsi ini apa pun yang Anda suka. AWS Gluemenggunakan file konfigurasi untuk menentukan nama fungsi yang sepenuhnya memenuhi syarat.
Fungsi tata letak Anda melakukan hal-hal berikut:
-
(Opsional) Instansiasi kelas
Job
untuk membuat objekJob
, dan memberikan argumen sepertiCommand
danRole
. Ini adalah properti pekerjaan yang akan Anda tentukan jika Anda membuat pekerjaan menggunakan AWS Glue konsol atau API. -
(Opsional) Instansiasi kelas
Crawler
untuk membuat objekCrawler
, dan memberikan nama, peran, dan argumen target. -
Untuk menunjukkan dependensi antara objek (entitas alur kerja), berikan
DependsOn
dan argumen tambahanWaitForDependencies
untukJob()
danCrawler()
. Argumen ini dijelaskan nanti dalam bagian ini. -
Membuat instance
Workflow
kelas untuk membuat objek alur kerja yang dikembalikan keAWS Glue, meneruskan argumen,Name
argumen, danEntities
argumen opsional.OnSchedule
ArgumenEntities
menentukan semua tugas dan crawler yang akan disertakan dalam alur kerja. Untuk melihat bagaimana membangun sebuah objekEntities
, lihat contoh proyek dalam bagian ini nanti. -
Mengembalikan objek
Workflow
.
Untuk definisi Job
, Crawler
, dan kelas Workflow
, lihat AWS Gluereferensi kelas cetak biru.
Fungsi tata letak harus menerima argumen-argumen masukan berikut.
Pendapat | Deskripsi |
---|---|
user_params |
Kamus Python tentang nama parameter dan nilai-nilai cetak biru. Untuk informasi selengkapnya, lihat Menentukan parameter cetak biru. |
system_params |
Kamus Python berisi dua properti: region dan accountId . |
Berikut ini adalah contoh skrip tata letak generator dalam sebuah file bernama Layout.py
:
import argparse import sys import os import json from awsglue.blueprint.workflow import * from awsglue.blueprint.job import * from awsglue.blueprint.crawler import * def generate_layout(user_params, system_params): etl_job = Job(Name="{}_etl_job".format(user_params['WorkflowName']), Command={ "Name": "glueetl", "ScriptLocation": user_params['ScriptLocation'], "PythonVersion": "2" }, Role=user_params['PassRole']) post_process_job = Job(Name="{}_post_process".format(user_params['WorkflowName']), Command={ "Name": "pythonshell", "ScriptLocation": user_params['ScriptLocation'], "PythonVersion": "2" }, Role=user_params['PassRole'], DependsOn={ etl_job: "SUCCEEDED" }, WaitForDependencies="AND") sample_workflow = Workflow(Name=user_params['WorkflowName'], Entities=Entities(Jobs=[etl_job, post_process_job])) return sample_workflow
Skrip contoh mengimpor perpustakaan cetak biru yang diperlukan dan menyertakan fungsi generate_layout
yang menghasilkan sebuah alur kerja dengan dua tugas. Ini adalah skrip yang sangat sederhana. Skrip yang lebih kompleks dapat menggunakan logika dan parameter tambahan untuk menghasilkan sebuah alur kerja dengan banyak tugas dan crawler, atau bahkan sejumlah variabel tugas dan crawler.
Menggunakan DependsOn argumen
Argumen DependsOn
adalah sebuah representasi kamus dependensi yang dimiliki entitas ini atas entitas lain dalam alur kerja. Ia memiliki bentuk berikut.
DependsOn = {dependency1 : state, dependency2 : state, ...}
Kunci dalam kamus ini mewakili referensi objek, bukan nama, entitas, sedangkan nilainya adalah string yang sesuai dengan status yang harus diperhatikan. AWS Gluemenyimpulkan pemicu yang tepat. Untuk status yang valid, lihat Struktur Kondisi.
Sebagai contoh, sebuah tugas mungkin bergantung pada keberhasilan penyelesaian sebuah crawler. Jika anda menentukan sebuah objek crawler bernama crawler2
sebagai berikut:
crawler2 = Crawler(Name="my_crawler", ...)
Maka sebuah objek yang tergantung pada crawler2
akan mencakup argumen konstruktor seperti:
DependsOn = {crawler2 : "SUCCEEDED"}
Misalnya:
job1 = Job(Name="Job1",
...
, DependsOn = {crawler2 : "SUCCEEDED", ...})
Jika DependsOn
dihilangkan dan diganti sebuah entitas, maka entitas tersebut tergantung pada pemicu awal alur kerja.
Menggunakan WaitForDependencies argumen
Argumen WaitForDependencies
mendefinisikan apakah sebuah entitas tugas atau crawler harus menunggu sampai semua entitas yang tergantung selesai atau sampai salah satu selesai.
Nilai yang diijinkan adalah "AND
" atau "ANY
".
Menggunakan OnSchedule argumen
Argumen OnSchedule
untuk konstruktor kelas Workflow
adalah sebuah ekspresi cron
yang menentukan definisi pemicu awal untuk alur kerja.
Jika argumen ini ditentukan, AWS Glue membuat pemicu jadwal dengan jadwal yang sesuai. Jika tidak ditentukan, maka pemicu awal untuk alur kerja adalah pemicu sesuai permintaan.