Halaman ini menjelaskan cara menjalankan tugas Dataflow menggunakan Template Flex. Dengan Template Flex, Anda dapat memaketkan pipeline Dataflow sehingga Anda dapat menjalankan pipeline tanpa memiliki lingkungan pengembangan Apache Beam.
Izin yang diperlukan
Saat Anda menjalankan Template Flex, Dataflow akan membuat tugas untuk Anda. Untuk membuat tugas, akun layanan Dataflow memerlukan izin berikut:
dataflow.serviceAgent
Saat Anda pertama kali menggunakan Dataflow, layanan akan menetapkan peran ini untuk Anda, sehingga Anda tidak perlu memberikan izin ini.
Secara default, akun layanan Compute Engine digunakan untuk VM peluncur dan VM pekerja. Akun layanan memerlukan peran dan kemampuan berikut:
- Storage Object Admin (
roles/storage.objectAdmin) - Pelihat (
roles/viewer) - Dataflow Worker (
roles/dataflow.worker) - Akses baca dan tulis ke bucket penyiapan
- Akses baca ke image Template Flex
Untuk memberikan akses baca dan tulis ke bucket penyiapan, Anda dapat menggunakan peran
Storage Object Admin (roles/storage.objectAdmin). Untuk mengetahui informasi selengkapnya,
lihat Peran IAM untuk Cloud Storage.
Untuk memberikan akses baca ke image Template Flex, Anda dapat menggunakan peran
Storage Object Viewer (roles/storage.objectViewer). Untuk mengetahui informasi selengkapnya,
lihat Mengonfigurasi kontrol akses.
Menjalankan Template Flex
Untuk menjalankan Template Flex, gunakan perintah
gcloud dataflow flex-template run:
gcloud dataflow flex-template run JOB_ID \ --template-file-gcs-location gs://TEMPLATE_FILE_LOCATION \ --region REGION \ --staging-location STAGING_LOCATION \ --temp-location TEMP_LOCATION \ --parameters PARAMETERS \ --additional-user-labels LABELS \
Ganti kode berikut:
JOB_ID: ID untuk tugas AndaTEMPLATE_FILE_LOCATION: lokasi file template di Cloud StorageREGION: region tempat menjalankan tugas DataflowSTAGING_LOCATION: lokasi Cloud Storage untuk menyimpan file lokalTEMP_LOCATION: lokasi Cloud Storage untuk menulis file sementara. Jika tidak disetel, nilai defaultnya adalah lokasi penyiapan.PARAMETERS: parameter pipeline untuk tugasLABELS: Opsional. Label yang dilampirkan ke tugas Anda, menggunakan formatKEY_1=VALUE_1,KEY_2=VALUE_2,....
Selama langkah penyiapan peluncuran template, Dataflow menulis file ke lokasi penyiapan. Dataflow membaca file yang di-staging ini untuk membuat grafik tugas. Selama langkah eksekusi, Dataflow menulis file ke lokasi sementara.
Menetapkan opsi pipeline
Untuk menetapkan opsi pipeline saat Anda menjalankan Template Fleksibel, gunakan flag berikut
dalam perintah gcloud dataflow flex-template run:
parameters: Gunakan flag ini untuk menyetel jenis opsi pipeline berikut:Opsi pipeline yang didukung oleh Template Flex. Untuk mengetahui daftar opsi yang didukung oleh Template Flex, lihat Opsi pipeline.
Opsi pipeline yang dideklarasikan dalam metadata template.
additional-pipeline-options: Gunakan tanda ini untuk menyetel opsi pipeline Apache Beam lainnya yang tidak didukung langsung oleh Template Flex.additional-experiments: Gunakan tanda ini untuk menyetel opsi pipeline eksperimental (setara dengan opsiexperiments).
gcloud
Sertakan opsi pipeline menggunakan flag
parameters.Sertakan eksperimen runtime dan opsi pipeline menggunakan flag
additional-experimentsdanadditional-pipeline-options.
Saat meneruskan parameter jenis List atau Map, Anda mungkin perlu menentukan
parameter dalam file YAML dan menggunakan flag flags-file.
API
Sertakan opsi pipeline menggunakan kolom
parameters.Sertakan eksperimen runtime dan opsi pipeline menggunakan kolom
additionalExperimentsdanadditionalPipelineOptions.
Contoh berikut menunjukkan cara menyertakan opsi pipeline, eksperimen, dan opsi tambahan dalam isi permintaan:
{
"jobName": "my-flex-template-job",
"parameters": {
"option_defined_in_metadata": "value"
},
"environment": {
"additionalExperiments": [
"use_runner_v2"
],
"additionalPipelineOptions": {
"common_pipeline_option": "value"
}
}
}
Saat menggunakan Template Flex, Anda dapat mengonfigurasi beberapa opsi pipeline selama inisialisasi pipeline, tetapi opsi pipeline lainnya tidak dapat diubah. Jika argumen command line yang diperlukan oleh Template Flex ditimpa, tugas dapat mengabaikan, mengganti, atau membuang opsi pipeline yang diteruskan oleh peluncur template. Tugas mungkin gagal diluncurkan, atau tugas yang tidak menggunakan Template Flex mungkin diluncurkan. Untuk mengetahui informasi selengkapnya, lihat Gagal membaca file tugas.
Selama inisialisasi pipeline, jangan ubah opsi pipeline berikut:
Java
runnerprojectjobNametemplateLocationregion
Python
runnerprojectjob_nametemplate_locationregion
Go
runnerprojectjob_nametemplate_locationregion
Memblokir kunci SSH project dari VM yang menggunakan kunci SSH berbasis metadata
Anda dapat mencegah VM menerima kunci SSH yang disimpan dalam metadata project dengan memblokir kunci SSH project dari VM. Gunakan flag additional-experiments dengan
opsi layanan block_project_ssh_keys:
--additional-experiments=block_project_ssh_keys
Untuk mengetahui informasi selengkapnya, lihat Opsi layanan Dataflow.
Memperbarui tugas Template Flex
Contoh permintaan berikut menunjukkan cara memperbarui tugas streaming template menggunakan metode projects.locations.flexTemplates.launch. Jika Anda ingin menggunakan gcloud CLI, lihat Memperbarui pipeline yang ada.
Jika Anda ingin memperbarui template klasik, gunakan projects.locations.templates.launch sebagai gantinya.
Ikuti langkah-langkah untuk membuat tugas streaming dari Template Flex. Kirim permintaan POST HTTP berikut dengan nilai yang diubah:
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/flexTemplates:launch { "launchParameter": { "update": true "jobName": "JOB_NAME", "parameters": { "input_subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME", "output_table": "PROJECT_ID:DATASET.TABLE_NAME" }, "containerSpecGcsPath": "STORAGE_PATH" }, }- Ganti
PROJECT_IDdengan project ID Anda. - Ganti
REGIONdengan region Dataflow tugas yang Anda perbarui. - Ganti
JOB_NAMEdengan nama persis tugas yang ingin Anda perbarui. - Tetapkan
parameterske daftar key-value pair Anda. Parameter yang tercantum khusus untuk contoh template ini. Jika Anda menggunakan template kustom, ubah parameter sesuai kebutuhan. Jika Anda menggunakan template contoh, ganti variabel berikut.- Ganti
SUBSCRIPTION_NAMEdengan nama langganan Pub/Sub Anda. - Ganti
DATASETdengan nama set data BigQuery Anda. - Ganti
TABLE_NAMEdengan nama tabel BigQuery Anda.
- Ganti
- Ganti
STORAGE_PATHdengan lokasi Cloud Storage file template. Lokasi harus diawali dengangs://.
- Ganti
Gunakan parameter
environmentuntuk mengubah setelan lingkungan. Untuk mengetahui informasi selengkapnya, lihatFlexTemplateRuntimeEnvironment.Opsional: Untuk mengirim permintaan menggunakan curl (Linux, macOS, atau Cloud Shell), simpan permintaan ke file JSON, lalu jalankan perintah berikut:
curl -X POST -d "@FILE_PATH" -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/flexTemplates:launchGanti FILE_PATH dengan jalur ke file JSON yang berisi isi permintaan.
Gunakan antarmuka pemantauan Dataflow untuk memverifikasi bahwa tugas baru dengan nama yang sama telah dibuat. Tugas ini memiliki status Diperbarui.
Langkah berikutnya
- Pelajari cara membangun Template Fleksibel untuk pipeline Apache Beam Anda.
- Untuk mengetahui lebih lanjut Template Klasik, Template Flex, dan skenario kasus penggunaannya, lihat Template Dataflow.
- Untuk mengetahui informasi pemecahan masalah Template Flex, lihat Memecahkan masalah waktu tunggu habis Template Flex.
- Untuk mengetahui lebih banyak tentang arsitektur referensi, diagram, dan praktik terbaik lainnya, jelajahi Pusat Arsitektur Cloud.