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へのアクセスについて、以下の動作を行います。

  1. セッショントークンなしでconfig.urlにアクセスし、403あるいは401エラーになります。
  2. config.auth_param.login_urlにアクセスし、以下のボディを送信します。
{
  "username": "(config.auth_param.login_username)",
  "email": "config.auth_param.login_email)",
  "password": "(config.auth_param.login_password)"
}
  1. 戻ってきた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"
        }
      }
    }
  }
}