MQTT to Pub/Sub 템플릿

MQTT to Pub/Sub 템플릿은 MQTT 주제에서 메시지를 읽고 Pub/Sub에 쓰는 스트리밍 파이프라인입니다. 여기에는 MQTT 서버에 인증이 필요한 경우 선택적 매개변수 usernamepassword가 포함됩니다.

파이프라인 요구사항

  • Pub/Sub 출력 주제 이름이 있어야 합니다.
  • MQTT 호스트 IP가 있어야 하며 작업자 머신이 MQTT 호스트에 연결하기 위한 적절한 네트워크 구성이 있어야 합니다.
  • 데이터가 추출되는 MQTT 주제에는 이름이 있어야 합니다.

템플릿 매개변수

매개변수 설명
brokerServer MQTT 브로커 서버 IP 또는 호스트입니다. 예를 들면 tcp://10.0.0.1:1883입니다.
inputTopic 데이터를 읽어 오는 MQTT 주제의 이름입니다.
outputTopic 데이터를 기록하는 출력 Pub/Sub 주제의 이름입니다.
username (선택사항) MQTT 서버에서 인증에 사용할 사용자 이름입니다.
password (선택사항) 제공된 사용자 이름과 연결된 비밀번호입니다.

템플릿 실행

콘솔

  1. Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다.
  2. 템플릿에서 작업 만들기로 이동
  3. 작업 이름 필드에 고유한 작업 이름을 입력합니다.
  4. 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는 us-central1입니다.

    Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.

  5. Dataflow 템플릿 드롭다운 메뉴에서 MQTT to Pub/Sub template을 선택합니다.
  6. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  7. 작업 실행을 클릭합니다.

gcloud

셸 또는 터미널에서 템플릿을 실행합니다.

gcloud beta dataflow flex-template run JOB_NAME \
    --project=YOUR_PROJECT_ID \
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/MQTT_to_Cloud_PubSub \
    --parameters \
brokerServer=MQTT_SERVER,\
inputTopic=INPUT_TOPIC,\
outputTopic=OUTPUT_TOPIC, \
username=USERNAME, \
password=PASSWORD
  

이 예시에서 다음 값을 바꿔야 합니다.

  • YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
  • 을 Dataflow 리전 이름으로 바꿉니다. 예를 들면 us-central1입니다.
  • JOB_NAME을 원하는 작업 이름으로 바꿉니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  • INPUT_TOPIC을 MQTT 서버 입력 주제 이름으로 바꿉니다. 예를 들면 testtopic입니다.
  • MQTT_SERVER를 MQTT 서버 주소로 바꿉니다. 예를 들면 tcp://10.128.0.62:1883입니다.
  • OUTPUT_TOPIC을 Pub/Sub 출력 주제 이름으로 바꿉니다. 예를 들면 projects/myproject/topics/testoutput입니다.
  • USERNAME을 MQTT 서버의 사용자 이름으로 바꿉니다. 예를 들면 testuser입니다.
  • PASSWORD를 MQTT 서버에 사용되는 사용자 이름에 해당하는 비밀번호로 바꿉니다.

API

REST API를 사용하여 템플릿을 실행하려면 HTTP POST 요청을 전송합니다. API 및 승인 범위에 대한 자세한 내용은 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/VERSION/flex/MQTT_to_Cloud_PubSub",
   }
}
  

이 예시에서 다음 값을 바꿔야 합니다.

  • YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
  • 을 Dataflow 리전 이름으로 바꿉니다. 예를 들면 us-central1입니다.
  • JOB_NAME을 원하는 작업 이름으로 바꿉니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  • INPUT_TOPIC을 MQTT 서버 입력 주제 이름으로 바꿉니다. 예를 들면 testtopic입니다.
  • MQTT_SERVER를 MQTT 서버 주소로 바꿉니다. 예를 들면 tcp://10.128.0.62:1883입니다.
  • OUTPUT_TOPIC을 Pub/Sub 출력 주제 이름으로 바꿉니다. 예를 들면 projects/myproject/topics/testoutput입니다.
  • USERNAME을 MQTT 서버의 사용자 이름으로 바꿉니다. 예를 들면 testuser입니다.
  • PASSWORD를 MQTT 서버에 사용되는 사용자 이름에 해당하는 비밀번호로 바꿉니다.