Outgoing SQL INSERT(β)¶
[更新: 2023年7月6日]
Outgoing SQL INSERT(β) サービスアダプタはIoTクラウドコアからお客様がご用意されたデータベースへの保存を可能にします。 本機能は、β版サービスとして提供しております。 詳しくは β版サービスについて をご参照ください。
1. データベースの作成¶
Outgoing SQL INSERT(β)を利用してメッセージを保存するためのデータベースを作成します。 さくらのクラウドコントロールパネルより、「LAB」を選択し、「エンハンスドDB」クリックします。
「追加」をクリックし、データベース追加画面から必要な情報を入力します。 「データベース種別」は、「TiDB」、もしくは「MariaDB」を選択してください。 「作成」をクリックして、データベースの作成を完了します。
2. サービスアダプタ作成(Outgoing SQL INSERT(β))¶
さくらのクラウドコントロールパネルより新規にサービスアダプタを作成します。 さくらのクラウドコントロールパネルより、「モノプラットフォーム」を選択し、「サービスアダプタ」をクリックします。 「追加」をクリックしてサービスアダプタの追加画面を開きます。
サービスアダプタの追加画面から Outgoing SQL INSERT(β) に必要な情報を入力します。
名前 | サービスアダプタを管理する名前を入力します。 |
プロジェクト | サービスアダプタを接続するプロジェクトを選択します。 作成されたサービスアダプタは、ここで選択したプロジェクトに所属するSIMとのみ通信できます。 |
サービスアダプタ | outgoing-sql-insert(β) を選択します。 |
ホスト | 手順1のメッセージ送信先データベースのホスト名を入力します。 |
ポート | 手順1のメッセージ送信先データベースのポートURLを入力します。 |
ユーザ | 手順1のメッセージ送信先データベースのユーザ名を入力します。 |
パスワード | 手順1のメッセージ送信先データベースのパスワードを入力します。 |
データベース | 手順1のメッセージ送信先データベースのデータベース名を入力します。 |
テーブル | メッセージ送信先データベースの任意のテーブル名を入力します。 ※ サービスアダプタ設定作成完了時に入力したテーブルが作成されます。 |
各項目を入力し、「作成」ボタンをクリックするとサービスアダプタを作成できます。なお、入力した項目は後からでも変更ができます。
3. メッセージの送信¶
2で作成したサービスアダプタと同じプロジェクトに所属しているデバイスからプラットフォームへメッセージの送信を行います。
4. メッセージの保存を確認¶
さくらのクラウドコントロールパネルより「LAB」を選択、「エンハンスドDB」をクリックします。 手順1で作成したデータベースをダブルクリックします。
コマンド例より、接続情報をコピーします。
上記コピーしたテキストを端末エミュレータにペーストし、データべースへ接続します。
$ mysql -h <host> -P 3306 --ssl-mode=REQUIRED -u <user_name> -D <database_name> -p
下記のようにクエリを発行し、メッセージの到達を確認します。 table_name には、手順2で入力したテーブル名を入力してください。 created_at の時刻を確認し、手順4の実行時刻と比較してください。
> SELECT payload, created_at FROM <table_name>;
5. サービスアダプタ作成時のデータベース構造¶
Outgoing SQL INSERT(β) から、ユーザ作成データベースに作成されるテーブルの構造は以下のフォーマットです。
id | テーブルのプライマリキー |
object_id | デバイスまたはサービスアダプタから転送された一連のデータに対して付与される一意の転送ID(UUID)です。 |
direction | 通信データの方向を示します。 上り通信は「uplink」, 下り通信は 「downlink」 です。 |
device_id | 送信元・もしくは送信先を一意に識別するためのIDです。 |
timestamp_src | デバイス側でユーザが設定したデータ送信時の時刻です。時刻はUTCで保存されます。 |
timestamp_platform_from_src | デバイスから送信されたデータをモノプラットフォームが受信した時点のプラットフォーム側の時刻です。 時刻はUTCで保存されます。 |
message_type | データの種類を示す文字列です。「object」のみをサポートしております。 |
payload | デバイス、またプラットフォームから送信されたデータの解析結果が入った配列です。 |
created_at | Outgoing SQL INSERT(β)が設定されたデータベースに対してINSERTを発行した時刻が保存されます。 時刻はUTCで保存されます。 |
updated_at | Outgoing SQL INSERT(β)が設定されたデータベースに対してINSERTを発行した時刻が保存されます。 時刻はUTCで保存されます。 |
補足-1. サービスアダプタ(WebSocket)の作成¶
WebSocket サービスアダプタを利用してメッセージ保存の確認を行う手順を紹介します。 メッセージのテスト送信のために、WebSocketサービスアダプタを作成します。
補足-2. IoTクラウドコアからデバイス方向へメッセージを送信¶
IoTクラウドコアへメッセージを送信します。 補足-1で作成したWebSocketの詳細画面から、「メッセージ送信」をクリックしてください。 3. メッセージの送信 を参照して、IoTクラウドコアへ任意のメッセージを送信してください。
補足-3. メッセージの確認¶
手順4の手順通りデータベースへログインします。
$ mysql -h <host> -P 3306 --ssl-mode=REQUIRED -u <user_name> -D <database_name> -p
下記のようにクエリを発行し、メッセージの到達を確認します。 table_name には、手順2で入力したテーブル名を入力してください。 created_at の時刻を確認し、手順4の実行時刻と比較してください。
> SELECT payload, created_at FROM <table_name>;
参考