Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menanyakan alur kerja menggunakan AWS Glue API
AWS Glue menyediakan API yang kaya untuk mengelola alur kerja. Anda dapat mengambil tampilan statis dari sebuah alur kerja atau tampilan dinamis dari sebuah alur kerja yang berjalan dengan menggunakan AWS Glue API. Untuk informasi selengkapnya, lihat Alur Kerja.
Menanyakan tampilan statis
Gunakan operasi API GetWorkflow
untuk mendapatkan tampilan statis yang menunjukkan desain sebuah alur kerja. Operasi ini mengembalikan grafik diarahkan yang terdiri dari simpul dan edge, di mana simpul merupakan pemicu, tugas, atau crawler. Edge menentukan hubungan antara simpul. Mereka diwakili oleh konektor (panah) pada grafik di konsol AWS Glue.
Anda juga dapat menggunakan operasi ini dengan perpustakaan pengolahan grafis populer seperti NetworkX, igraph, JGrapht, dan Kerangka Kerja Java Universal Network/Graph (JUNG). Karena semua perpustakaan ini mewakili grafik yang sama, maka diperlukan hanya transformasi minimal.
Tampilan statis yang dikembalikan oleh API ini adalah up-to-date tampilan terbanyak menurut definisi pemicu terbaru yang terkait dengan alur kerja.
Definisi grafik
Sebuah grafik alur kerja G adalah pasangan diurutkan (N, E), di mana N adalah satu set simpul dan E satu set edge. Simpul adalah simpul dalam grafik yang diidentifikasi oleh nomor unik. Sebuah simpul dapat berupa jenis pemicu, tugas, atau crawler. Misalnya: {name:T1, type:Trigger, uniqueId:1}, {name:J1, type:Job,
uniqueId:2}
.
Edge adalah 2-tuple dalam bentuk (src, dest
), di mana src
dan dest
adalah simpul dan ada edge diarahkan dari src
ke dest
.
Contoh kueri tampilan statis
Anggap pemicu bersyarat T, yang memicu tugas J2 setelah penyelesaian tugas J1.
J1 ---> T ---> J2
Simpul: J1, T, J2
Edge: (J1, T), (T, J2)
Menanyakan tampilan dinamis
Gunakan operasi API GetWorkflowRun
untuk mendapatkan tampilan dinamis dari alur kerja yang berjalan. Operasi ini mengembalikan tampilan statis yang sama dari grafik bersama dengan metadata yang dikaitkan ke eksekusi alur kerja.
Untuk menjalankan, simpul yang mewakili tugas dalam panggilan GetWorkflowRun
memiliki daftar eksekusi tugas yang dimulai sebagai bagian dari eksekusi alur kerja terbaru. Anda dapat menggunakan daftar ini untuk menampilkan status eksekusi dari setiap tugas dalam grafik itu sendiri. Untuk dependensi hilir yang belum dijalankan, kolom ini diatur ke null
. Informasi grafik membuat Anda mengetahui status alur kerja saat ini pada setiap titik waktu.
Tampilan dinamis yang dikembalikan oleh API ini didasarkan pada tampilan statis yang disajikan saat eksekusi alur kerja dimulai.
Contoh simpul waktu aktif: {name:T1, type: Trigger, uniqueId:1}
, {name:J1, type:Job, uniqueId:2,
jobDetails:{jobRuns}}
, {name:C1, type:Crawler, uniqueId:3,
crawlerDetails:{crawls}}
Contoh 1: Tampilan dinamis
Contoh berikut mengilustrasikan sebuah alur kerja dua pemicu sederhana.
-
Simpul: t1, j1, t2, j2
-
Edge: (t1, j1), (j1, t2), (t2, j2)
Respons GetWorkflow
berisi hal berikut ini.
{ Nodes : [ { "type" : Trigger, "name" : "t1", "uniqueId" : 1 }, { "type" : Job, "name" : "j1", "uniqueId" : 2 }, { "type" : Trigger, "name" : "t2", "uniqueId" : 3 }, { "type" : Job, "name" : "j2", "uniqueId" : 4 } ], Edges : [ { "sourceId" : 1, "destinationId" : 2 }, { "sourceId" : 2, "destinationId" : 3 }, { "sourceId" : 3, "destinationId" : 4 } }
Respons GetWorkflowRun
berisi hal berikut ini.
{ Nodes : [ { "type" : Trigger, "name" : "t1", "uniqueId" : 1, "jobDetails" : null, "crawlerDetails" : null }, { "type" : Job, "name" : "j1", "uniqueId" : 2, "jobDetails" : [ { "id" : "jr_12334", "jobRunState" : "SUCCEEDED", "errorMessage" : "error string" } ], "crawlerDetails" : null }, { "type" : Trigger, "name" : "t2", "uniqueId" : 3, "jobDetails" : null, "crawlerDetails" : null }, { "type" : Job, "name" : "j2", "uniqueId" : 4, "jobDetails" : [ { "id" : "jr_1233sdf4", "jobRunState" : "SUCCEEDED", "errorMessage" : "error string" } ], "crawlerDetails" : null } ], Edges : [ { "sourceId" : 1, "destinationId" : 2 }, { "sourceId" : 2, "destinationId" : 3 }, { "sourceId" : 3, "destinationId" : 4 } }
Contoh 2: Beberapa pekerjaan dengan pemicu bersyarat
Contoh berikut menunjukkan sebuah alur kerja dengan beberapa eksekusi dan sebuah pemicu bersyarat (t3).
Consider Flow: T(t1) ---> J(j1) ---> T(t2) ---> J(j2) | | | | >+------> T(t3) <-----+ | | J(j3) Graph generated: Nodes: t1, t2, t3, j1, j2, j3 Edges: (t1, j1), (j1, t2), (t2, j2), (j1, t3), (j2, t3), (t3, j3)