Google Cloud MQTTシステムにメッセージを公開する方法の例を次に示します。
事前準備
コマンドラインに次のコマンドを入力して、フィールドに貼り付けることができる証明書を作成します。
openssl req -x509 -newkey rsa:2048 -keyout rsa_private.pem -nodes -out rsa_cert.pem -subj "/CN=unused"
これにより、 rsa_private.pem
というファイルと rsa_cert.pem
というファイルが作成されます。
rsa_cert.pem
はGoogle Cloudコンソールで使用して、 rsa_private.pem
はGravio Studioで使用します。
Google Cloud コンソールでMQTTブローカーの設定
Google Cloudコンソールに移動してプロジェクトを作成します:
プロジェクトを作成するとプロジェクト情報を作成したプロジェクトに切り替えます。
左のメニューから IoT Core を選択します
IoT Coreを「有効にする」ボタンを押して有効化します。
有効化するとレジストリの画面が表示されますので、「レジストリを作成」を選択します。
レジストリのプロパティにレジストリ名を入力して、リージョンを選択し、Cloud Pub/Sub トピックはまだ作成していませんので「トピックを作成」を選択します。
トピックの作成ではトピック名を入力して「トピックを作成」で作成します。
トピックを作成して「詳細設定を表示」で設定項目を展開してプロトコルは「MQTT」のみとして「作成」ボタンでレジストリを作成します。
レジストリが作成されると続いて左のメニューから「デバイス」を選択します。
デバイスが表示されると「デバイスを作成」を選択します。
デバイスIDを入力して「通信、CLOUD LOGGING、認証」を展開して公開鍵の形式を「RS256_X509」に変更します。
続いて公開鍵の値に作成してある rsa_cert.pem
ファイルの内容をペーストして「作成」ボタンでデバイスを作成します。
デバイスが作成されるとGoogle Cloud コンソールでの設定は終わりました。
Gravio StudioでのMQTTPublisherの設定
Gravio StudioでMQTTPublisherのプロパティには以下のように設定します。
トピックは “/devices/” + デバイスID + “/events“とします。 例では “/devices/edge1/events“となります。
クライアントIDは “projects/” + プロジェクトID + “/locations/” + リージョン + “/registries/” + レジストリID + “/devices/” + デバイスIDとします。
例では “projects/gravio-edge/locations/asia-east1/registries/gravio-registry/devices/edge1“となります。
URLは“ssl://mqtt.googleapis.com“とします。
ポートは“8883“です。
ユーザ名は“google“とします。
パスワードはプロジェクトIDとします。例では“gravio-edge“となります。
秘密鍵は「ファイルを選択する」で rsa_private.pem
を指定して読み込みます。
これでMQTTPublisherからGoogle CloudのMQTTにデータを送信する設定が整いました。
Need more help with this?
Join our slack community for help