カスタムフォーマット記法とパラメータ一覧
データハブやクラウドアダプタ、デバイスモニタリングのカスタムメールで使用できるカスタムフォーマットの書き方の説明です。
パラメータ展開
カスタムフォーマットでは、デバイスのデータを差し込んで文字列を変換する「パラメータ展開」機能が使用できます。
パラメータ展開は ${パラメータ名} と記述することで使用できます。${パラメータ名} で書かれた部分が、実際に処理される時にパラメータ名で指定されたデータを参照して文字列に置換されます。
以下に例を示します。この例は、データハブの出力フォーマット「JSON形式」と似た文字列を生成します。
カスタムフォーマット: { "timestamp": ${TIMESTAMP}, "serviceCode": "${SERVICE_CODE}", "id": "${DEVICE_ID}", "simId": "${SIM_ID}", "destination": "${DESTINATION}", "labels": ${LABELS}, "payload": ${PAYLOAD} } 生成されるHTTPリクエスト (サンプル): { "timestamp": 1672531200000, "serviceCode": "iot12345678", "id": "dvc-1234567890", "simId": "09012345678", "destination": "https://api.example.com/push", "labels": {"設置場所":"松江"}, "payload": {"temperature": 25.0} }
その他、パラメータ展開の詳細な仕様や注意点は以下の通りです。
- 使用できないパラメータ名は、空文字列に変換されます。
- パラメータ名の前後にはスペースを含めないでください。
- ${ TIMESTAMP } は無効です。空文字列に変換されます。
- カスタムフォーマットの中で「$」を出力する場合は、「$$」と記述してください。
備考として、上記の例は「JSON形式」のフォーマットと以下の差異があります。
|
利用可能なパラメータ一覧
使用する機能により利用できるパラメータが異なります。
データハブ・クラウドアダプタ
データハブやクラウドアダプタで使用できるパラメータは以下の通りです。
パラメータ名 | 説明 | 出力例 |
---|---|---|
DATETIME | IoTサービスがデータを受信した時刻 (タイムゾーン付きミリ秒精度のRFC3339形式) | 2023-01-01T09:00:00.000+09:00 |
DESTINATION | データハブの転送先設定で指定した送信先のURL | https://api.example/push |
DEVICE_ID | データを送信したデバイスのID | dvc-1234567890 |
DEVICE_NAME | データを送信したデバイスの名称 | デバイス1 |
IMSI | SIMの識別番号 (IMSI) | 440031234567890 |
IP_ADDRESS | データを送信したデバイスのIPアドレス | 192.0.2.1 |
LABELS | データを送信したデバイスの全てのラベル (JSON形式) ※ラベル機能がONのデバイスのみ取得できます。OFFのデバイスは {} が出力されます。 | {"ラベルキー名":"ラベルの値","ラベル2":"ラベル2の値"} |
LABELS.<KEY> | テータを送信したデバイスのラベルの内、<KEY> に一致するラベルの値 ※ラベル機能 がONのデバイスのみ取得できます。OFFのデバイスは空文字列が出力されます。 | ラベルの値 |
MESSAGE_ID | IoTサービスが受信したデータに自動的に割り当てたID (メッセージID) | f2860323-1f90-4356-b96d-04fa13c9d62a |
PAYLOAD | デバイスから送信されたデータ (ペイロード) | {"sensor":123,"name":"test"} |
PAYLOAD.<KEY> | JSON形式で送信されたデータの内、<KEY> に一致するデータの値 | test |
SERVICE_CODE | IoTサービスの契約ID | iot12345678 |
SIM_ID | SIMの電話番号 | 09012345678 |
TIMESTAMP | IoTサービスがデータを受信した時刻 (UNIX時刻 (単位: ミリ秒)) | 1672531200000 |
該当するデータが無いパラメータは全て空文字列に変換されます。 例として、モバイルアクセス タイプIやVPNアクセスには、電話番号が存在しないため ${simId} は "" に変換されます。 |
PAYLOAD.<KEY> でパラメータ展開する場合、以下の制限があります。
|
デバイスモニタリング カスタムメール
パラメータ名 | 説明 | 出力例 |
---|---|---|
CONDITION_OPERATOR | 監視設定で指定している値の評価条件 | > |
CONDITION_THRESHOLD | 監視設定で指定している閾値 | 500.0 |
CONDITION_TYPE | 監視設定で指定しているメトリックの評価方式 | max |
DATETIME | 監視を検知した時刻 (タイムゾーン付きミリ秒精度のRFC3339形式) | 2023-01-01T09:00:00.000+09:00 |
DEVICE_ID | 監視対象のデバイスのID | dvc-1234567890 |
DEVICE_NAME | 監視対象のデバイスの名称 | デバイス1 |
METRIC_ID | メトリックのID | e450563a-96f8-4819-ab82-d4e846389cc9 |
METRIC_NAME | メトリックの名称 | メトリック1 |
METRIC_NAMESPACE | メトリックの名前空間 (namespace) | Default |
METRIC_TAGS | メトリックのタグ (JSON形式) | {"sensor":"BME280"} |
METRIC_URL | メトリック表示リンクURL | https://cp.iot.iij.jp/monitor/metrics/e450563a-96f8-4819-ab82-d4e846389cc9?sc=iot12345678 |
METRIC_VALUE | アラートが発生したときのメトリックの値 | 786.0 |
PREV_STATE_NAME | アラート発生前の状態名 | 正常 |
STATE_NAME | アラート発生によって切り替わった現在の状態名 | 異常 |