IoT SIM から Unified Endpoint にデータを送信して Funnel および Harvest Data の両方にデータを転送します。
Unified Endpoint に有効/無効の設定はありません
Unified Endpoint のエントリポイント にデータを送信すると、対応サービス (Beam、Funnel、Funk、Harvest Data) のうち有効になっているサービスに転送されます。
たとえば、Funnel と Harvest Data が有効になっている場合、デバイスから Unified Endpoint に送信されたデータは Funnel と Harvest Data の両方にデータが転送されます。
ステップ 1: 対応サービスを有効化する
ここでは Funnel と Harvest Data を有効化します。
Funnel を有効化します。
転送先のサービスによって手順が異なります。詳しくは、以下を参照してください。
ステップ 2: レスポンスのフォーマットを選択する
Unified Endpoint の設定はグループに対して行います
ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。
SIM グループ画面で
をクリックします。SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。
レスポンスのフォーマットを選択します。
レスポンスのフォーマットについては 使用方法: レスポンスの形式を設定する を参照してください。
をクリックします。
IoT SIM の Unified Endpoint のレスポンスのフォーマットが選択されます。
SORACOM CLI / SORACOM API の場合
SORACOM CLI または SORACOM API を利用しても、レスポンスのフォーマットの設定を変更できます。
- SORACOM CLI を利用するには、あらかじめ SORACOM CLI をインストールし、認証情報を保存してください。詳しくは、SORACOM CLI をインストールする を参照してください。
{group_id}
は、soracom groups list
(Group:listGroups API
) で取得できます。{namespace}
は、UnifiedEndpoint
です。- ボディで指定するプロパティについては、ボディで指定するプロパティについて を参照してください。
レスポンスのフォーマットを選択する
soracom groups put-config
(Group:putConfigurationParameters API
) を使用します。
$ soracom groups put-config --group-id {group_id} --namespace UnifiedEndpoint \
--body '[
{
"key": "response",
"value": {
"format": "Custom",
"success": {
"statusCode": "200",
"contentType": "application/json",
"body": "{\"result\":\"ok\"}"
},
"failure": {
"statusCode": "500",
"contentType": "application/json",
"body": "{\"result\":\"ng\"}"
}
}
}
]'
- SORACOM API を利用するには、API キーと API トークンが必要です。詳しくは、API キーと API トークンの取り扱いについて を参照してください。
{group_id}
は、Group:listGroups API
で取得できます。{namespace}
は、UnifiedEndpoint
です。- ボディで指定するプロパティについては、ボディで指定するプロパティについて を参照してください。
レスポンスのフォーマットを選択する
Group:putConfigurationParameters API
を使用します。
$ curl -v -X PUT https://api.soracom.io/v1/groups/{group_id}/configuration/UnifiedEndpoint \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"key": "response",
"value": {
"format": "Custom",
"success": {
"statusCode": "200",
"contentType": "application/json",
"body": "{\"result\":\"ok\"}"
},
"failure": {
"statusCode": "500",
"contentType": "application/json",
"body": "{\"result\":\"ng\"}"
}
}
}
]'
ボディで指定するプロパティについて
以下の key
と value
のペアを配列で指定します。
key | value の型 | value |
---|---|---|
response | Object | レスポンスの設定を JSON で指定します。
|
想定していない値を指定した場合の動作は、定義されていません。SORACOM CLI / SORACOM API で設定を変更したあとで、SORACOM ユーザーコンソールで意図通りに設定されていることを確認してください。
ステップ 3: デバイスからデータを送信する
グループ設定が完了したらデータを送信します。ご利用の IoT SIM がグループに所属していることを確認し、以下のコマンドを送信します。
サンプルコマンドは以下のとおりです。
$ curl -vX POST http://uni.soracom.io -d "{\"message\":\"Hello SORACOM Funnel and Harvest Data via UnifiedEndpoint!!\"}" -H "Content-Type:application/json"
* About to connect() to uni.soracom.io port 80 (#0)
* Trying 100.127.69.42...
* connected
* Connected to uni.soracom.io (100.127.69.42) port 80 (#0)
> POST / HTTP/1.1
> User-Agent: curl/7.26.0
> Host: uni.soracom.io
> Accept: */*
> Content-Type:application/json
> Content-Length: 56
>
* upload completely sent off: 56 out of 56 bytes
* additional stuff not fine transfer.c:1042: 0 0
* HTTP 1.1 or later with persistent connection, pipelining supported
< HTTP/1.1 200 OK
< content-type: application/json
< Date: Thu, 07 Feb 2019 05:22:16 GMT
< Connection: close
< Content-Length: 97
<
* Closing connection #0
{"result":"ok","detail":{"SoracomFunnel":{"statusCode":204},"SoracomHarvest":{"statusCode":201}}}
各サービスにデータが転送されていることをご確認ください。
ステップ 4: レスポンスを確認する
上記の実行結果では、レスポンスは以下のように返されています。
{
"result":"ok",
"detail":{
"SoracomFunnel":{"statusCode":204},
"SoracomHarvest":{"statusCode":201}
}
}
これは、レスポンスのフォーマットで「Auto」を選択しています。Funnel、Harvest Data の複数のサービスに転送しているため、「Unified」のフォーマットとなっています。 これ以外に、Funnel のみのレスポンス、Harvest Data のみのレスポンス、カスタムレスポンスを返却するこができます。
レスポンスのフォーマットについては 使用方法: レスポンスの形式を設定する を参照してください。