1.1.6. Node-REDに関連する設定¶
Node-RED利用時に関連するその他設定項目について説明します。
1.1.6.1. core_config.json¶
Node-REDの有効化・無効化を切り替える場合に設定変更を行います。 {ICE_HOME}/core/conf ディレクトリに配置されています。
- nodered.enabled
- Node-REDの有効・無効を指定します。falseにするとNode-REDのインスタンスは起動しません。 既定値はtrueです。
- nodered.config_file
- Node-REDの設定ファイルのパスを指定します。既定では {ICE_HOME}/core/conf/nodered_settings.js が設定されます。{ICE_HOME}/core ディレクトリからの相対パス、または絶対パスで設定してください。
cloud_config.jsonでAWS IoTの接続先情報を作成する場合、core_config.jsonのaws.iotにAWS IoTクライアントの設定を定義しておく必要があります。
{
...
},
"aws": {
"iot": {
"awsConfigName": {
"endpoint": "xxx.iot.xxx.amazonaws.com",
"port": 8883,
"clientType": "thing",
"thingName": "hoge",
"thingOptions": {
"operationTimeout": 10
},
"registerOptions": {
"ignoreDeltas": false
},
"clientId": "";
"caPath": "",
"certPath": "",
"keyPath": ""
"deviceOptions": {
"keepalive": 300
}
}
}
}
}
thingOptions、registerOptions、deviceOptionsに指定可能な値は、https://github.com/aws/aws-iot-device-sdk-js#thingShadow を参照してください。
1.1.6.2. cloud_config.json¶
エッジサーバの接続先を変更する場合に定義の追加が必要です。 {ICE_HOME}/core/conf ディレクトリに配置されています。
cloud_config.json を参照して接続先設定を定義してください。
Nebula API Gatewayと接続する場合のcloud_config.jsonの設定例:
{
"adm": {
...
},
"ma": {
...
},
"app": {
...
},
"http_outbound": {
"type": "http",
"config": {
"url": "https://www.example.com/api/1/5899242bf24c3e45dcd79014/api/amqp/publish/my-queue",
"method": "POST",
"ca": "cacert.pem",
"cert": "client.cert",
"key": "client.key",
"auth_method": "nebula",
"auth_param": {
"login_url": "https://www.example.com/api/1/5899242bf24c3e45dcd79014/login",
"login_username": "foo",
"login_password": "Passw0rD"
},
"options": {
"headers": {
"Content-Type": "application/json",
"X-Application-Id": "58992489f24c3e45dcd79018",
"X-Application-Key": "tiRUtXrUfiWkvAvbQSRXocovHgfK0SrcBfl6QLG8"
}
}
}
},
"http_inbound": {
"type": "http",
"config": {
"url": "https://www.example.com/api/1/5899242bf24c3e45dcd79014/api/amqp/consume/my-queue",
"method": "GET",
"ca": "cacert.pem",
"cert": "client.cert",
"key": "client.key",
"auth_method": "nebula",
"auth_param": {
"login_url": "https://www.example.com/api/1/5899242bf24c3e45dcd79014/login",
"login_email": "foo@example.com",
"login_password": "Passw0rD"
},
"options": {
"headers": {
"Content-Type": "application/json",
"X-Application-Id": "58992489f24c3e45dcd79018",
"X-Application-Key": "tiRUtXrUfiWkvAvbQSRXocovHgfK0SrcBfl6QLG8"
}
}
}
}
}
AWS IoTと接続する場合のcloud_config.jsonの設定例:
{
"adm": {
...
},
"ma": {
...
},
"app": {
...
},
"aws_outbound": {
"type": "aws_iot",
"config": {
"topicName": "topic",
"qos": 1,
"method": "publish",
"onlyPayload": true,
"configName": "awsConfigName"
}
},
"aws_inbound": {
"type": "aws_iot",
"config": {
"topicName": "topic",
"qos": 1,
"event": "message",
"configName": "awsConfigName"
}
}
}
config.configNameでは、core_config.jsonで定義しているAWS IoTの接続設定名を指定します。
1.1.6.3. デバイス/エッジアプリケーションのプロファイル¶
ice device outやice app outからアクチュエーションメッセージを送信するために、プロファイルの設定が必要です。プロファイルについては、 ICE Data Delivery C API を参照してください。
ice device outやice app outと通信したいデバイス・エッジアプリケーションのプロファイルには、actuation_keyを必ず記載してください。actuation_keyが無い場合はactuation_keyを用いたメッセージ送信ができません。
デバイスプロファイルの設定例を以下に記載します。
"Vendor": "デバイスの開発会社",
"Product": "デバイスの製品名",
"ModelNo": "デバイスの型番",
"ProductNo": "デバイスの製品番号",
"SerialNo": "デバイスの製造番号",
"data_type": "デバイスが送信するデータのタイプ",
"actuation_key": "Node-REDからデバイスを識別するためのキーの配列"
actuation_keyは以下のように複数指定可能です。
"actuation_key": ["thermometer","hygrometer","accelerometer"]
1.1.6.4. ログ設定¶
ログ出力先やログローテートの設定はICE Coreのcore_logger.jsonで行います。 既定では以下のように設定されています。
"NODE-RED": {
"type": "file",
"filename": "/var/log/ice/node-red.log",
"maxLogSize":102400,
"backups":3
},