Template MQTT ke Pub/Sub

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

  1. Buka halaman Create job from template Dataflow.
  2. Buka Buat tugas dari template
  3. Di kolom Nama tugas, masukkan nama tugas yang unik.
  4. 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.

  5. Dari menu drop-down Dataflow template, pilih MQTT to Pub/Sub template.
  6. Di kolom parameter yang disediakan, masukkan nilai parameter Anda.
  7. 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