Template MQTT ke Pub/Sub adalah pipeline streaming yang membaca pesan dari topik MQTT dan menulisnya ke Pub/Sub.
Ini mencakup parameter opsional username
dan password
jika autentikasi diperlukan oleh server MQTT.
Jika pipeline tidak menerima pesan apa pun dari topik MQTT selama lebih dari 90 menit, StackOverflowError
akan terjadi.
Sebagai solusi, Anda dapat mengubah jumlah pekerja setiap 90 menit.
Untuk informasi selengkapnya tentang cara mengubah jumlah pekerja tanpa menghentikan tugas,
lihat Pembaruan opsi tugas yang sedang berjalan.
Persyaratan Pipeline
- Nama topik output Pub/Sub harus ada.
- IP host MQTT harus ada dan memiliki konfigurasi jaringan yang tepat agar mesin pekerja dapat menjangkau host MQTT.
- Topik MQTT tempat data diekstrak harus memiliki nama.
Parameter template
Parameter yang diperlukan
- inputTopic : Nama topik MQTT tempat data dibaca. (Contoh: topik).
- outputTopic : Nama topik Pub/Sub output tempat data ditulis. (Contoh: projects/your-project-id/topics/your-topic-name).
- username : Nama pengguna yang akan digunakan untuk autentikasi di server MQTT. (Contoh: sampleusername).
- password : Sandi yang terkait dengan nama pengguna yang diberikan. (Contoh: samplepassword).
Parameter opsional
- brokerServer : IP atau host server broker MQTT. (Contoh: tcp://host:1883).
Menjalankan template
Konsol
- Buka halaman Create job from template Dataflow. Buka Buat tugas dari template
- Di kolom Nama tugas, masukkan nama tugas yang unik.
- Opsional: Untuk Endpoint regional, pilih nilai dari menu drop-down. Region defaultnya
adalah
us-central1
.Untuk mengetahui daftar region tempat Anda dapat menjalankan tugas Dataflow, lihat Lokasi Dataflow.
- Dari menu drop-down Dataflow template, pilih MQTT to Pub/Sub template.
- Di kolom parameter yang disediakan, masukkan nilai parameter Anda.
- Klik Run job.
gcloud
Di shell atau terminal, jalankan template:
gcloud dataflow flex-template run JOB_NAME \ --project=YOUR_PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Mqtt_to_PubSub \ --parameters \ brokerServer=MQTT_SERVER,\ inputTopic=INPUT_TOPIC,\ outputTopic=OUTPUT_TOPIC,\ username=USERNAME,\ password=PASSWORD
Anda harus mengganti nilai berikut dalam contoh ini:
- Ganti YOUR_PROJECT_ID dengan project ID Anda.
- Ganti dengan nama region Dataflow. Contoh:
us-central1
. - Ganti JOB_NAME dengan nama tugas pilihan Anda. Nama tugas harus cocok dengan ekspresi reguler
[a-z]([-a-z0-9]{0,38}[a-z0-9])?
agar valid. - Ganti INPUT_TOPIC dengan nama topik input server MQTT. Contoh:
testtopic
. - Ganti MQTT_SERVER dengan alamat server MQTT. Contoh:
tcp://10.128.0.62:1883
- Ganti OUTPUT_TOPIC dengan nama topik output Pub/Sub. Contoh:
projects/myproject/topics/testoutput
. - Ganti USERNAME dengan nama pengguna untuk server MQTT. Contoh:
testuser
. - Ganti PASSWORD dengan sandi yang sesuai dengan nama pengguna yang digunakan dengan server MQTT.
API
Untuk menjalankan template menggunakan REST API, kirim permintaan POST HTTP. Untuk mengetahui informasi selengkapnya tentang
API dan cakupan otorisasinya, lihat
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "brokerServer": "MQTT_SERVER", "inputTopic": "INPUT_TOPIC", "outputTopic": "OUTPUT_TOPIC", "username": "USERNAME", "password": "PASSWORD" }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Mqtt_to_PubSub", } }
Anda harus mengganti nilai berikut dalam contoh ini:
- Ganti YOUR_PROJECT_ID dengan project ID Anda.
- Ganti dengan nama region Dataflow. Contoh:
us-central1
. - Ganti JOB_NAME dengan nama tugas pilihan Anda. Nama tugas harus cocok dengan ekspresi reguler
[a-z]([-a-z0-9]{0,38}[a-z0-9])?
agar valid. - Ganti INPUT_TOPIC dengan nama topik input server MQTT. Contoh:
testtopic
. - Ganti MQTT_SERVER dengan alamat server MQTT. Contoh:
tcp://10.128.0.62:1883
- Ganti OUTPUT_TOPIC dengan nama topik output Pub/Sub. Contoh:
projects/myproject/topics/testoutput
. - Ganti USERNAME dengan nama pengguna untuk server MQTT. Contoh:
testuser
. - Ganti PASSWORD dengan sandi yang sesuai dengan nama pengguna yang digunakan dengan server MQTT.
Langkah selanjutnya
- Pelajari template Dataflow.
- Lihat daftar template yang disediakan Google.