1.1.2. cloud_config.json¶
クラウド接続設定を記述します。
- {destination名}: CloudOutboundAdapter.jsおよびCloudInboundAdapter.jsのoptions.destinationに指定する各クラウド設定のラベルです。
- {destination名}.type: 接続のタイプ。”mqtt”あるいは”http”を指定します。
- {destination名}.config: 接続の設定。未指定あるいはundefinedが指定された時、core_config.jsonのmqtt配下(mqttの場合)、あるいはhttp,https配下(httpの場合)の値が使用されます。
1.1.2.1. タイプがhttpの時の{destination名}.config以下の設定項目¶
プロパティ | 意味 | 無指定の場合の既定値 |
---|---|---|
url | 接続するHTTPサーバのURLを指定します。 | (必須) |
method | HTTPメソッドを指定します。 | CloudOutboundAdapterの場合”POST”, CloudInboundAdapterの場合”POST” |
cert | HTTPS通信時のクライアント認証用の$ICE_HOME/confに配置された証明書ファイルを指定します。 | core_config.jsonのhttps.cert |
key | HTTPS通信時のクライアント認証用の$ICE_HOME/confに配置された秘密鍵ファイルを指定します。 | core_config.jsonのhttps.key |
ca | HTTPS通信時の$ICE_HOME/confに配置されたCAファイルを指定します。複数指定するときは配列で指定します。 | core_config.jsonのhttps.ca |
auth_method | 認証方法を指定します。”nebula”が指定されるとNebulaのセッショントークン認証を行います。 | (認証を行わない) |
auth_param.login_url | Nebulaのセッショントークン認証の際のログインURLを指定します。 | (auth_method=”nebula”の場合必須) |
auth_param.login_username | Nebulaのセッショントークン認証の際のユーザ名を指定します。auth_param.login_usernameとauth_param.login_emailの両方が指定された場合は、auth_param.login_usernameが使用されます。 | (auth_method=”nebula”の場合、auth_param.login_emailといずれか必須) |
auth_param.login_email | Nebulaのセッショントークン認証の際のメールアドレスを指定します。 | (auth_method=”nebula”の場合、auth_param.login_usernameといずれか必須) |
auth_param.login_password | Nebulaのセッショントークン認証の際のパスワードを指定します。 | (auth_method=”nebula”の場合必須) |
request_interval | CloudInboundAdapterのHTTPリクエストの成功時の次のリクエストまでの間隔をミリ秒で指定します。 | 10 |
timeout_interval | CloudInboundAdapterのHTTPリクエストのタイムアウト発生時の次のリクエストまでの間隔をミリ秒で指定します。 | 100 |
error_interval | CloudInboundAdapterのHTTPリクエストのエラー発生時の次のリクエストまでの間隔をミリ秒で指定します。 | 1000 |
options.(キー) | アクセス時のその他の設定項目を指定します。 | core_config.jsonのhttp.proxy.options.(キー)(接続先URLがhttpの場合)、https.proxy.options.(キー)(接続先URLがhttpsの場合) |
options.headers.(キー) | アクセス時のHTTPヘッダの追加項目を指定します。 | core_config.jsonのhttp.proxy.options.headers.(キー)(接続先URLがhttpの場合)、https.proxy.options.headers.(キー)(接続先URLがhttpsの場合) |
proxy.url | プロキシサーバのURLを指定します。 | core_config.jsonのhttp.proxy.url(接続先URLがhttpの場合)、https.proxy.url(接続先URLがhttpsの場合) |
proxy.cert | プロキシサーバとのHTTPS通信時のクライアント認証用の$ICE_HOME/confに配置された証明書ファイルを指定します。 | core_config.jsonのhttp.proxy.cert(接続先URLがhttpの場合)、https.proxy.cert(接続先URLがhttpsの場合) |
proxy.key | プロキシサーバとのHTTPS通信時のクライアント認証用の$ICE_HOME/confに配置された秘密鍵ファイルを指定します。 | core_config.jsonのhttp.proxy.key(接続先URLがhttpの場合)、https.proxy.key(接続先URLがhttpsの場合) |
proxy.ca | プロキシサーバとのHTTPS通信時の$ICE_HOME/confに配置されたCAファイルを指定します。複数指定するときは配列で指定します。 | core_config.jsonのhttp.proxy.ca(接続先URLがhttpの場合)、https.proxy.ca(接続先URLがhttpsの場合) |
proxy.options | プロキシサーバへのアクセス時のその他の設定項目をキーと値で指定します。 | core_config.jsonのhttp.proxy.options(接続先URLがhttpの場合)、https.proxy.options(接続先URLがhttpsの場合) |
1.1.2.2. タイプがmqttの時の{destination名}.config以下の設定項目¶
プロパティ | 意味 | 無指定の場合の既定値 |
---|---|---|
url | 接続するMQTTブローカのURLを指定します。 | core_config.jsonのmqtt.url |
cert | MQTTS通信時のクライアント認証用の$ICE_HOME/confに配置された証明書ファイルを指定します。 | core_config.jsonのmqtt.cert |
key | MQTTS_HOME/confに配置された秘密鍵ファイルを指定します。 | core_config.jsonのmqtt.key |
ca | MQTTS通信時の$ICE_HOME/confに配置されたCAファイルを指定します。複数指定するときは配列で指定します。 | core_config.jsonのmqtt.ca |
type | 既定のトピックにメッセージ送受信する場合にいずれかを指定します。’adm’, ‘app’, ‘ma’。 | (なし) |
topic_name | MQTTのメッセージ送受信するトピック名を指定します。typeとは排他的に指定します。 | (なし) |
timeout | MQTTクライアントのconnect実行後にこの時間までに接続が成功しない場合、ログに警告を出力します。 | 30000 |
abort_if_timeout | trueの場合、上記タイムアウト発生時に異常としてICE Coreを終了させます。 | false |
options | 通信時のオプションを指定します。 | (なし) |
1.1.2.3. auth_paramにnebulaを指定した際の動作について¶
config.auth_paramにnebulaを指定した際、認証が必要なURLへのアクセスについて、以下の動作を行います。
- セッショントークンなしでconfig.urlにアクセスし、403あるいは401エラーになります。
- config.auth_param.login_urlにアクセスし、以下のボディを送信します。
{
"username": "(config.auth_param.login_username)",
"email": "config.auth_param.login_email)",
"password": "(config.auth_param.login_password)"
}
- 戻ってきたsessonTokenをX-Session-Tokenヘッダに指定し、再度config.urlにアクセス。
1.1.2.4. 記述例¶
{
"http_outbound": {
"type": "http",
"config": {
"url": "https://www.example.com/api/1/5899242bf24c3e45dcd79014/api/amqp/publish/my-queue",
"method": "POST",
"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",
"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"
}
}
}
}
}