Edge の構成方法

Edge for Private Cloud v4.18.05

Edge をインストール後に構成するには、.properties ファイルと Edge ユーティリティを組み合わせて使用します。たとえば、Edge UI で TLS / SSL を構成するには、.properties ファイルを編集して必要なプロパティを設定します。.properties ファイルに対する変更を行ったら、その変更の影響を受ける Edge コンポーネントを再起動する必要があります。

Apigee では、.properties ファイルの編集手法を code with config と呼んでいます。code with config は基本的に、.properties ファイルの設定に基づく Key-Value 検索の手段です。code with config ではキーはトークンと呼ばれます。そのため、Edge を構成するには .properties ファイルでトークンを設定します。

code with config を使用すると、Edge コンポーネントは Apigee プロダクトの出荷時のデフォルト値を設定できます。また、インストール チームはインストール トポロジに基づいてその設定をオーバーライドでき、お客様は選択したプロパティをオーバーライドできます。

この状態を階層と考えると、設定の優先順位は次のようになります。お客様の順位が最も高いため、インストール担当者チームや Apigee による設定はお客様の設定によってオーバーライドされます。

  1. お客様
  2. インストール担当者
  3. Apigee

.properties ファイルの使用方法

お客様が変更できるのは、/opt/apigee/customer/application ディレクトリ内の .properties ファイルだけです。このディレクトリには、コンポーネントごとに独自の .properties ファイルがあります。たとえば、router.propertiesmanagement-server.properties といったファイルです。

.properties ファイルの作成手順の例を次に示します。

  1. このファイルを任意のユーザーとしてエディタで作成します。
  2. chown を使用してファイルのオーナーを「apigee:apigee」に変更するか、Edge サービスを実行するユーザーを「apigee」以外のユーザーに変更している場合は、chown を実行してファイルのオーナーを Edge サービスを実行しているユーザーに変更します。

コンポーネントのプロパティを設定するには、対応する .properties ファイルを編集してトークンを設定し、そのコンポーネントを再起動します。

/opt/apigee/apigee-service/bin/apigee-service component restart

たとえば、router.properties を編集した後は、Router を再起動します。

/opt/apigee/apigee-service/bin/apigee-service edge-router restart

Edge をアップグレードすると、/opt/apigee/customer/application ディレクトリ内の .properties ファイルが読み取られます。つまり、アップグレード後もコンポーネントに設定したプロパティは維持されます。

.properties ファイルの場所

Edge コンポーネントの .properties ファイルには、インストール、オーナー、お客様の 3 つの最上位ディレクトリがあります。次の表にそれぞれのデフォルトの場所を示します。

オーナー トークンのデフォルト ルート ディレクトリ
コンポーネント

/opt/apigee/component_name/conf

component_name はコンポーネントを表します。有効な値は次のとおりです。

  • apigee-cassandra(Cassandra)
  • apigee-openldap(OpenLDAP)
  • apigee-postgresql(PostgreSQL データベース)
  • apigee-qpidd(Qpidd)
  • apigee-zookeeper(ZooKeeper)
  • edge-management-server(Management Server)
  • edge-message-processor(Message Processor)
  • edge-postgres-server(Postgres Server)
  • edge-qpid-server(Qpid Server)
  • edge-router(Edge Router)
  • edge-ui(Edge UI)
インストール

/opt/apigee/token
お客様

/opt/apigee/customer

トークンの現在値の特定

コンポーネントの .properties ファイルでトークンを設定する前に、次のコマンドを使用することでトークンの現在値を特定できます。

/opt/apigee/apigee-service/bin/apigee-service component_name configure -search token

component_name はコンポーネントの名前、token は値を特定するトークンです。

このコマンドでは、.properties ファイルの階層が検索され、トークンの現在値が特定されます。

たとえば、Router の conf_http_HTTPRequest.line.limit トークンの現在値を確認する場合は次のように指定します。

/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

出力は次のようになります。

Found key conf_http_HTTPRequest.line.limit, with value, 4k, in /opt/apigee/edge-router/token/default.properties

.properties ファイルでのトークンの設定

トークンの値をオーバーライドする手順は次のとおりです。

  1. コンポーネントの .properties ファイルを編集してトークンの値を設定します。このファイルが存在しない場合は作成してください。
  2. コンポーネントを再起動します。
  3. トークンの値を確認します。

例として、Edge Router のリクエスト行の制限を設定する手順を次に示します。

  1. /opt/apigee/customer/application/router.properties ファイルを編集して conf_http_HTTPRequest.line.limit トークンを設定します。
    conf_http_HTTPRequest.line.limit=8k
  2. Edge Router を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  3. トークンの値を確認します。
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

複数の値を取得するトークンの設定

一部のトークンには複数の値をコンマ区切りリストで指定できます。たとえば、conf_security_rbac.restricted.resources トークンに、システム管理者だけが呼び出せるよう制限する URI のリストを指定できます。conf_security_rbac.restricted.resources の値を表示するには、次のように指定します。

cd /opt/apigee/edge-management-server
    grep -ri "conf_security_rbac.restricted.resources" *

出力の内容は次のとおりです。

token/default.properties:conf_security_rbac.restricted.resources=/environments,/environments/*,/environments/*/virtualhosts,/environments/*/virtualhosts/*,/pods,/environments/*/servers,/rebuildindex,/users/*/status

複数の値のリストを指定できるトークンを設定する場合、.properties ファイルで新しい値をそのトークンの現在値に追加します。つまり、URI /myuri/*conf_security_rbac.restricted.resources に追加するには、/opt/apigee/customer/application/management-server.properties ファイルを次のように編集します。

conf_security_rbac.restricted.resources=/environments,/environments/*,/environments/*/virtualhosts,/environments/*/virtualhosts/*,/pods,/environments/*/servers,/rebuildindex,/users/*/status,/myuri/*

トークンの特定

ほとんどの場合、設定が必要なトークンはこのガイドで紹介されています。ただし、プロパティのオーバーライドに使用するトークンを特定する必要がある場合は、コンポーネントの source フォルダで grep を実施します。

たとえば、以前のリリースの Edge で session.maxAge プロパティを設定している場合に、その設定に使用したトークン値を確認するには、/opt/apigee/edge-ui/source ディレクトリ内でそのプロパティに対して grep を実施します。

grep -ri "session.maxAge" /opt/apigee/edge-ui/source

結果が次の形式で表示されます。

/opt/apigee/edge-ui/source/conf/application.conf:session.maxAge={T}conf_application_session.maxage{/T}

{T}{/T} タグで囲まれた文字列が、.properties ファイルで設定したトークンです。

現在コメントアウトされているトークンの設定

Edge 構成ファイルの一部のトークンはコメントアウトされています。コメントアウトされているトークンを設定しようとしても、その設定は無視されます。

コメントアウトされているトークンを設定する場合は、次の形式の特殊な構文を使用します。

conf/file.extension+propertyName=propertyValue

たとえば、Message Processor で HTTPClient.proxy.host というプロパティを設定するとします。このプロパティに対して grep を実施して、トークンを特定します。

cd /opt/apigee/edge-message-processor
    grep -ri "HTTPClient.proxy.host" *

grep コマンドを実行すると、トークン値を含む結果が次の形式で返されます。プロパティ名に # という接頭辞が付いていることで、このプロパティ名がコメントアウトされていることがわかります。

source/conf/http.properties:#HTTPClient.proxy.host={T}conf_http_HTTPClient.proxy.host{/T}
    token/default.properties:conf_http_HTTPClient.proxy.host=
    conf/http.properties:#HTTPClient.proxy.host=

このプロパティを設定するには、次のように /opt/apigee/customer/application/message-processor.properties を編集します。

conf/http.properties+HTTPClient.proxy.host=myhost.name.com

プロパティ名の前に conf/http.properties+(このプロパティを含む構成ファイルの場所と名前の後に「+」が付いたもの)が挿入されていることがわかります。

Message Processor の再起動後に、ファイル /opt/apigee/edge-message-processor/conf/http.properties を調べてください。

cat /opt/apigee/edge-message-processor/conf/http.properties

ファイルの最後で、このプロパティが次の形式で設定されていることを確認できます。

conf/http.properties:HTTPClient.proxy.host=myhost.name.com