Template Pub/Sub to Redis adalah pipeline streaming yang membaca pesan dari langganan Pub/Sub dan menulis payload pesan ke Redis. Kasus penggunaan paling umum dari template ini adalah mengekspor log ke Redis Enterprise untuk analisis log berbasis penelusuran lanjutan secara real time.
- Sebelum menulis ke Redis, Anda dapat menerapkan fungsi JavaScript yang ditentukan pengguna ke payload pesan.
- Setiap pesan yang mengalami kegagalan pemrosesan akan diteruskan ke topik Pub/Sub yang belum diproses untuk pemecahan masalah dan pemrosesan ulang lebih lanjut.
- Untuk keamanan tambahan, aktifkan koneksi SSL saat menyiapkan koneksi endpoint database Anda. Template ini tidak mendukung TLS bersama.
Persyaratan pipeline
- Langganan Pub/Sub sumber harus ada sebelum menjalankan pipeline.
- Topik Pub/Sub yang belum diproses harus ada sebelum menjalankan pipeline.
- Endpoint database Redis harus dapat diakses dari subnetwork pekerja Dataflow.
Parameter template
Parameter | Deskripsi |
---|---|
inputSubscription |
Langganan Pub/Sub untuk membaca input, dalam format 'projects/my-project-id/subscriptions/my-subscription-id '. Misalnya: . |
redisHost |
Host database Redis. Misalnya: your.cloud.db.redislabs.com . Nilai defaultnya adalah 127.0.0.1 . |
redisPort |
Port database Redis. Misalnya: 12345 . Nilai defaultnya adalah 6379 . |
redisPassword |
Sandi database Redis. Nilai defaultnya adalah kosong. |
sslEnabled |
Opsional: Parameter SSL database Redis. Nilai defaultnya adalah false . |
redisSinkType |
Opsional: Sink Redis. Nilai yang didukung adalah STRING_SINK , HASH_SINK , STREAMS_SINK , dan LOGGING_SINK . Setelan defaultnya adalah STRING_SINK . |
connectionTimeout |
Opsional: Waktu tunggu koneksi Redis dalam milidetik. Misalnya: 2000 . Nilai defaultnya adalah 2000 . |
ttl |
Opsional: Waktu habis masa berlaku kunci dalam detik. Default ttl untuk HASH_SINK adalah -1, yang berarti tidak memiliki batas waktu. |
javascriptTextTransformGcsPath |
Opsional: Pola jalur Cloud Storage untuk kode JavaScript yang berisi fungsi yang ditentukan pengguna. Contoh:
gs://your-bucket/your-function.js . |
javascriptTextTransformFunctionName |
Opsional: Nama fungsi yang akan dipanggil dari file JavaScript. Hanya gunakan huruf, angka, dan garis bawah. Misalnya:
transform atau transform_udf1 . |
javascriptTextTransformReloadIntervalMinutes |
Opsional: Menentukan frekuensi pemuatan ulang UDF, dalam hitungan menit. Jika nilainya lebih besar dari 0, Dataflow secara berkala akan memeriksa file UDF di Cloud Storage, dan memuat ulang UDF jika file diubah. Parameter ini memungkinkan Anda memperbarui UDF saat pipeline berjalan, tanpa perlu memulai ulang tugas. Jika nilainya adalah 0, pemuatan ulang UDF akan dinonaktifkan. Nilai defaultnya adalah 0. |
Fungsi yang ditentukan pengguna
Anda juga dapat memperluas template ini dengan menulis fungsi yang ditentukan pengguna (UDF). Template memanggil UDF untuk setiap elemen input. Payload elemen diserialisasi sebagai string JSON. Untuk mengetahui informasi selengkapnya, lihat Membuat fungsi yang ditentukan pengguna untuk template Dataflow.
Spesifikasi fungsi
UDF memiliki spesifikasi berikut:
- Input: String JSON
- Output: string atau objek JSON string
Menjalankan template
Konsol
- Buka halaman Create job from template Dataflow. Buka Buat tugas dari template
- Di kolom Job name, masukkan nama pekerjaan yang unik.
- Opsional: Untuk Endpoint regional, pilih nilai dari menu drop-down. Region
default-nya adalah
us-central1
.Untuk daftar region tempat Anda dapat menjalankan tugas Dataflow, lihat Lokasi Dataflow.
- Dari menu drop-down Dataflow template, pilih the Pub/Sub to Redis template.
- Di kolom parameter yang disediakan, masukkan parameter value Anda.
- Klik Run job.
gcloud
Di shell atau terminal Anda, jalankan template:
gcloud dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Cloud_PubSub_to_Redis \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ inputSubscription=INPUT_SUBSCRIPTION,\ redisHost=REDIS_HOST,\ redisPort=REDIS_PORT,\ redisPassword=REDIS_PASSWORD,\
Ganti kode berikut:
JOB_NAME
: nama pekerjaan unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi terbaru template, yang tersedia di folder induk tidak bertanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk bertanggal masing-masing dalam bucket— gs://dataflow-templates-REGION_NAME/
REGION_NAME
: region tempat Anda ingin men-deploy tugas Dataflow, misalnyaus-central1
INPUT_SUBSCRIPTION
: langganan input Pub/SubREDIS_HOST
: Host DB RedisREDIS_PORT
: Port DB RedisREDIS_PASSWORD
: Sandi DB Redis
API
Untuk menjalankan template menggunakan REST API, kirim permintaan HTTP POST. Untuk informasi selengkapnya tentang API dan cakupan otorisasinya, lihat projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launchParameter": { "jobName": "JOB_NAME", "parameters": { "inputSubscription": "INPUT_SUBSCRIPTION", "redisHost": "REDIS_HOST", "redisPort": "REDIS_PORT", "redisPassword": "REDIS_PASSWORD", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Cloud_PubSub_to_Redis", "environment": { "maxWorkers": "10" } } }
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud tempat Anda ingin menjalankan tugas DataflowJOB_NAME
: nama pekerjaan unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi terbaru template, yang tersedia di folder induk tidak bertanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk bertanggal masing-masing dalam bucket— gs://dataflow-templates-REGION_NAME/
LOCATION
: region tempat Anda ingin men-deploy tugas Dataflow, misalnyaus-central1
INPUT_SUBSCRIPTION
: langganan input Pub/SubREDIS_HOST
: Host DB RedisREDIS_PORT
: Port DB RedisREDIS_PASSWORD
: Sandi DB Redis
Langkah selanjutnya
- Pelajari Template Dataflow.
- Lihat daftar template yang disediakan Google.