4.1. 設定ファイル¶
データベース接続やRabbitMQサーバ接続などの各種設定は、設定ファイル(プロパティファイル)で設定します。 プロパティファイルのファイル名は、プロファイルに応じて production.xml, development.xml, test.xml というファイル名で 作成し、以下いずれかのフォルダに格納します。
- /etc/baas
- c:/NEC/BaaS/etc/ (Windowsの場合)
- Tomcat実行ユーザホームディレクトリの ~/.baas/
- [デプロイディレクトリ]/WEB-INF/classes/ (クラスパス)
複数配置した場合は、下のほうの設定が優先されます。(上で設定した値を下の設定で上書きします)
なお設定値はサーバ起動時のシステムプロパティや環境変数、およびデベロッパーコンソール でも設定できます。複数設定した場合は、以下の下のほうの設定が優先されます。
- プロパティファイル
- 環境変数
- システムプロパティ
- デベロッパーコンソールのシステム設定値
4.1.1. 設定ファイルサンプル¶
以下に設定ファイルのテンプレートを記載します。同じものが配布物件内の sample-properties.xml にあります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<!--
プロパティ設定 XML ファイル。
本ファイルは、BaaSの設定を行うためのものである。
以下いずれかのディレクトリに production.xml, development.xml, test.xml の名称で配置する。
複数置いた場合は、下のものが優先される。
1) /etc/baas/
2) c:/NEC/BaaS/etc/ (Windows)
3) ~/.baas/
4) [デプロイディレクトリ]/WEB-INF/classes/ (クラスパス)
なお設定値はサーバ起動時のシステムプロパティや環境変数、およびデベロッパーコンソール
でも設定できる。複数設定した場合は、下のものが優先される。
1) XMLファイル
2) 環境変数
3) システムプロパティ
4) デベロッパーコンソールのシステム設定値
なお、Spring のプロファイル(production/development/test)の切り替えはここではできない。
WARファイル内の web.xml ファイルを変更するか、
JVM オプション -Dspring.profiles.active で起動時に指定する。
logback の設定は、このファイルではなく logback.xml ファイルで行う。
-->
<properties>
<!-- APIサーバ ベースURI デフォルト設定 -->
<!-- <entry key="api.baseUrl">http://baas.example.com/api</entry> -->
<!-- APIサーバ 内部向けベースURI デフォルト設定 -->
<!-- 省略時は api.baseUrl の値が使用される -->
<!-- <entry key="api.internalBaseUrl"></entry> -->
<!-- Consoleサーバ ベースURI デフォルト設定 -->
<!-- 注: デベロッパーコンソール システム設定の値のほうが優先される -->
<!-- <entry key="console.baseUrl">http://baas.example.com/console</entry> -->
<!--
MongoDB 設定
-->
<!--
MongoDB サーバ。MongoDB Connection String URI で指定する。
("mongodb://" は省略可。)
例1) ローカル接続
mongodb://localhost:27017
例2) レプリカセットの場合
mongodb://server1:27017,server2:27017,server3:27017
-->
<entry key="mongo.servers">mongodb://localhost:27017</entry>
<!-- MongoDB認証ユーザ名 -->
<entry key="mongo.username"></entry>
<!-- MongoDB認証パスワード -->
<entry key="mongo.password"></entry>
<!-- MongoDB ホスト当たり最大コネクション数 -->
<!-- <entry key="mongo.maxConnectionsPerHost">200</entry> -->
<!--
AMQP サーバ設定 (SSE Push/カスタムロジック に必要)。
amqp.{addrs,username,password,vhost} を設定する、amqp.uri を設定するか、いずれか選択。
両方設定した場合は前者(addrs,...)が優先される。
-->
<!-- <entry key="amqp.addrs">localhost:5672,localhost:5673</entry> -->
<!-- <entry key="amqp.username">guest</entry> -->
<!-- <entry key="amqp.password">guest</entry> -->
<!-- <entry key="amqp.vhost">vhost1</entry> -->
<!-- <entry key="amqp.uri">amqp://guest:guest@localhost:5672</entry> -->
<!-- APIカウント対象外キー : サーバマネージャ側と設定をあわせること -->
<entry key="system.noChargeKey">sAmPleNoChargeKey12345678</entry>
</properties>
注意
バージョン6よりいくつかの設定は削除され、デベロッパーコンソールの「システム設定」に移行しました。 詳細は システム設定 を参照してください。
4.1.2. URI設定¶
- api.baseUrl: クライアント側から見た APIサーバのベース URI を指定します。
- ロードバランサやリバースプロキシを使用している場合は、外部に見えている URI を指定します。
- この値は、パスワードリセット時の確認メール内に URI 記述する際などに使用されます。
- この値はデベロッパーコンソールのシステム設定で上書き可能です。
- api.internalBaseUrl: 内部サーバから見た API サーバのベース URI を指定します。
- 外部(Internet側)URL と内部向けURL が異なる場合に指定します。省略時は api.baseUrl の値が使用されます。
- この値は、Cloud Functions が API サーバにアクセスする際に使用します。したがって、Cloud Functions 機能を使用する場合は、api.baseUrl または api.internalBaseUrl の指定は必須です。
- この値はデベロッパーコンソールのシステム設定で上書き可能です。
- console.baseUrl: クライアント側からみたデベロッパーコンソールサーバのベース URI を指定します。
- ロードバランサやリバースプロキシを使用している場合は、外部に見えている URI を指定します。
- この値は、パスワードリセット時の確認メール内に URI 記述する際などに使用されます。
- この値はデベロッパーコンソールのシステム設定で上書き可能です。
注意
NEC Cloud IaaS 上で Cloud Functions を使用する場合、api.internalBaseUrl の指定は必須です。 これは、内部サーバからは外部IPアドレス(仮想FWのNATグローバルアドレス)にはアクセスができないためです。
4.1.3. MongoDB設定¶
MongoDB関連の設定を行います。 指定可能なパラメータは以下のとおりです。
- mongo.servers: MongoDB サーバ接続設定を Connection String URI 形式で記述します。
- 先頭の "mongodb://" は省略可能です
- username:password@ は指定不要です。以下の mongo.username, mongo.password 設定が使用されます。
- データベース名 (/database) は指定しないでください
- オプション(?options) は指定可能です
- DNS SRV レコードを参照する形式 (mongodb+srv://) も使用可能です(MongoDB 3.6以降)
- mongo.username, mongo.password: MongoDB 認証を使用する場合に、ユーザ名とパスワードを指定します。
- このユーザは admin データベースの root role を持っている必要があります。
- mongo.maxConnectionsPerHost: 各APIサーバから MongoDB サーバに対して接続する際の最大TCPコネクション数を指定します。
mongo.servers の指定例を示します。
# シングルサーバ構成またはシャーディング構成の場合
mongodb://server1:27017
# 先頭の mongodb:// は省略可能。
server1:27017
# レプリカセット構成の場合
mongodb://server1:27017,server2:27017,server3:27017
# DNS SRVレコードを使用する場合 (MongoDB 3.6以降)
mongodb+srv://server.example.com
注意
バージョン 7.0.3 より、mongo.servers に Connection String URI 形式の指定ができるようになりました。 7.0.2以前のバージョンではURI指定できませんので、ご注意ください。
4.1.4. AMQP設定¶
AMQP(RabbitMQ)接続に必要なパラメータを設定します。
URI で指定する方法と、各パラメータを分割して指定する方法があります。 RabbitMQ クラスタに接続する場合は後者の方法で指定する必要があります。
URI で指定する場合は、以下パラメータを設定します。
- amqp.uri: AMQP URI を指定します (例: amqp://guest:guest@localhost:5672)
パラメータを分割して指定する場合は、以下パラメータを設定します。
- amqp.addrs: AMQPホストを指定します。
- "ホスト名:ポート番号" 形式で指定します。
- AMQPクラスタを指定する場合は、カンマで区切ります (例: "host1:5672,host2:5672")
- amqp.username: 認証ユーザ名を指定します。
- amqp.password: 認証パスワードを指定します。
- amqp.vhost: vhost を指定します。
注意
AMQP(RabbitMQ)を使用しない場合は、AMQP関連の設定は有効化しないでください。 AMQP サーバに接続できない場合、正常にモバイルバックエンド基盤サーバが起動しません。
4.1.5. その他の設定¶
- system.noChargeKey: メータリングにおいて、内部API呼び出しをカウント対象外とするための認証キーを指定します。
- このキーは Cloud Functions サーバマネージャの設定と同じ文字列を指定する必要があります。
- このキーは漏洩しないよう注意して管理してください。