各入力ファイルは、Automation Managerコンテナに配置して使用します。詳細は「4.3.2 設定ファイルの管理」を参照してください。
/data/playbook/inventories/<環境識別子>/group_vars/all/api_proxy/nodes.yml
仮想ホスト毎に、振り分け対象ノード数分記載します。
No. | レベル | 項目ID | 属性名 | 必須 | 項目説明 | 備考 |
---|---|---|---|---|---|---|
1 | 1 | node_group | 配列 | - | 振り分け先ノードグループの配列を示すキー | - |
2 | 2 | name | 文字列 | ○ | 振り分け先ノードのグループ一意名 | ホスト名(ドメイン名形式) |
3 | 2 | targets | 配列 | - | 振り分け先ノードの配列を示すキー | - |
4 | 3 | node | 文字列 | ○ | 振り分け対象ノード <IPアドレスまたはホスト名>:<ポート> |
k8s Ingressを設定している場合は以下のように記載 <Kubernetes nodeサーバのIPアドレス>:30000 IPアドレスはIPv4のみサポート |
5 | 3 | enabled | 真偽 | ○ | ノードの有効化、無効化 | trueまたはfalse |
ノードリスト指定例
node_group: - name: apiserver1.v1.com targets: - node: 192.168.2.10:30000 enabled: true - node: 192.168.2.11:30000 enabled: true
/data/playbook/inventories/<環境識別子>/group_vars/all/api_proxy/apis.yml
テナント毎に、登録対象API情報を記載します。 振り分け先ノードグループ名は、ノードリストに記載したものと合わせる必要があります。 テナントIDおよび、APIキーは、運用者によって用意されます。 テナントIDおよび、APIキーについては、「4.2 事前準備」を参照してください。
No. | レベル | 項目ID | 属性名 | 必須 | 項目説明 | 備考 |
---|---|---|---|---|---|---|
1 | 1 | api_proxy | - | - | API Proxyのパラメーターを示すキー | - |
2 | 2 | node_group_name | 文字列 | ○ | 振り分け先ノードのグループ一意名 | ノードリストに記載したnode_group.name |
3 | 2 | tenant_id | 文字列 | ○ | テナントID | 使用可能文字は以下の通り。 半角英数 .(ピリオド) -(ハイフン) _(アンダースコア) ~(チルダ) |
4 | 2 | policy | - | - | トラフィック制御のポリシーを示すキー | キー省略時はトラフィック制御による制限なし。 |
5 | 3 | spike_arrest | - | (*1) | Spike Arrest制御を示すキー | キー省略時はSpike Arrest制御による制限なし。 (*1)上位のpolicyを定義した場合、spike_arrest, concurrent_rate_limit のうちいずれか1つ以上の指定が必須。 |
6 | 4 | per_minute | 数値 | (*2) | 1分あたりに許可するAPIコール数 | (*2)上位のspike_arrestを定義した場合、per_minute または per_second のいずれか必須。 |
7 | 4 | per_second | 数値 | (*2) | 1秒あたりに許可するAPIコール数 | (*2)上位のspike_arrestを定義した場合、per_minute または per_second のいずれか必須。 |
8 | 3 | concurrent_rate_limit | - | (*1) | Concurrent Rate Limit制御を示すキー | キー省略時はConcurrent Rate Limit制御による制限なし。 (*1)上位のpolicyを定義した場合、spike_arrest, concurrent_rate_limit のうちいずれか1つ以上の指定が必須。 |
9 | 4 | limit | 数値 | ○ | 同時実行可能なAPIコール数 | 上位の concurrent_rate_limit を定義した場合、必須。 |
10 | 2 | apis | 配列 | - | APIの配列を示すキー | - |
11 | 3 | front_path | 文字列 | ○ | API公開用パス | パスには必ずテナントIDを含めること。 使用可能文字は以下の通り。
ただし、文字列は以下のルールに従うこと。
リクエスト受付時は前方一致、およびパスの長いものから順次評価される。 例)API登録状態
リクエスト受付時のパスが"/581bd924/abc/123"の場合、"/xyz/123"のパスでバックエンドに送信される。API-2が登録されていない場合は、"/def/abc/123"に送信される。 注) /api-proxy-healthcheckはロードバランサーから定期的なヘルスチェックを行うfront_pathとして使用するため指定できない。 |
12 | 3 | back_path | 文字列 | ○ | APIの実際のパス | 使用可能文字は以下の通り。
ただし、文字列は以下のルールに従うこと。
|
13 | 3 | methods | 配列 | - | methodの配列を示すキー | - |
14 | 4 | method | 文字列 | ○ | 使用を許可するメソッド | ["<メソッド名>", …, "<メソッド名>"] の形式で指定。 メソッド名は、GET, HEAD, PUT, PATCH, POST, DELETEを指定可能。 英大文字で指定する。 |
15 | 4 | keys | 配列 | - | APIキーの配列を示すキー | - |
16 | 5 | api_key | 文字列 | - | APIキー APIキーの配列を示すキー |
使用可能文字は以下の通り。 半角英数 |
17 | 3 | connect_timeout | 数値 | - | 接続タイムアウト デフォルト60000ms |
ノードグループに対する接続のタイムアウト 504 Gateway Time-out(タイムアウト時) |
18 | 3 | write_timeout | 数値 | - | 書き込みタイムアウト デフォルト60000ms |
ノードグループに対する連続した書き込みリクエストのタイムアウト 504 Gateway Time-out(タイムアウト時) |
19 | 3 | read_timeout | 数値 | - | 読み込みタイムアウト デフォルト60000ms |
ノードグループに対する連続した読み込みリクエストのタイムアウト 504 Gateway Time-out(タイムアウト時) |
20 | 3 | retries | 数値 | - | リトライ回数 デフォルト5回 |
振り分け先の呼び出しに失敗した場合のリトライ回数。 振り分け先との通信でエラーが発生した場合(timeoutなど)にリトライを行う。 |
21 | 3 | additional_header | - | - | 追加リクエストヘッダー情報 | key.valueを指定。 クライアントリクエストに同じキー名のヘッダーが指定された場合、additional_headerに指定した値に置き換わる。 |
22 | 4 | key | 文字列 | - | ヘッダーキー | ヘッダーに指定するキー名。キー名を省略した場合、ヘッダーは追加されない。 |
23 | 4 | value | 文字列 | - | 値 | ヘッダーキーに指定する値。 |
APIリストの数値範囲は、以下を参照してください。
No. | 項目ID | 数値範囲 | |||
---|---|---|---|---|---|
最小値 | 最大値 | ||||
条件記号 | 値 | 条件記号 | 値 | ||
6 | per_minute | > | 0 | <= | 60 |
7 | per_second | > | 0 | <= | 1000 |
9 | limit | > | 0 | < | 2147483647 |
16 | api_key | > | 0 | <= | 512 |
17 | connect_timeout | > | 0 | < | 2147483647 |
18 | write_timeout | > | 0 | < | 2147483647 |
19 | read_timeout | > | 0 | < | 2147483647 |
20 | retries | >= | 0 | <= | 32767 |
APIリスト指定例
api_proxy: node_group_name: apiserver1.v1.com tenant_id: 581bd924 # 毎分30件許可、同時実行可能数10 で制限するポリシー policy: spike_arrest: per_minute: 30 concurrent_rate_limit: limit: 10 apis: - front_path: "/581bd924/api1" back_path: "/v1/core/581bd924/api1" methods: - method: ["POST","GET"] keys: - api_key: 62eb165c070a41d5c1b58d9d3d799999 - api_key: 62eb165c070a41d5c1b58d9d3d725cal connect_timeout: 60000 write_timeout: 60000 read_timeout: 60000 retries: 5 additional_header: key: Host value: 581bd924-abcdefgh - front_path: "/581bd924/api2" back_path: "/v1/core/581bd924/api2" methods: - method: ["GET"]
API登録数の上限値は以下の通りです。