ページの先頭行へ戻る
Enterprise Service Development Platform V1.0.0 操作ガイド
FUJITSU Software

4.3.1 入力ファイル

各入力ファイルは、Automation Managerコンテナに配置して使用します。詳細は「4.3.2 設定ファイルの管理」を参照してください。

仮想ホスト毎に、振り分け対象ノード数分記載します。

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

テナント毎に、登録対象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を含めること。

使用可能文字は以下の通り。

  • RFC3986非予約文字

    (半角英数、`.`(ピリオド)、`-`(ハイフン)、`_`(アンダースコア)、`~`(チルダ))

  • `/`(スラッシュ)
  • `%`(パーセント)

ただし、文字列は以下のルールに従うこと。

  • 先頭が `/`(スラッシュ) であること。
  • 末尾が `/`(スラッシュ) でないこと。
  • `//` (連続したスラッシュ)のように空のセグメントをもたないこと。
  • `%`(パーセント)を含む場合、正しいURLエンコード文字列であること。

リクエスト受付時は前方一致、およびパスの長いものから順次評価される。

例)API登録状態

  • API-1
    • front_path:/581bd924
    • back_path:/def
  • API-2
    • front_path:/581bd924/abc
    • back_pasth:/xyz

リクエスト受付時のパスが"/581bd924/abc/123"の場合、"/xyz/123"のパスでバックエンドに送信される。API-2が登録されていない場合は、"/def/abc/123"に送信される。

注) /api-proxy-healthcheckはロードバランサーから定期的なヘルスチェックを行うfront_pathとして使用するため指定できない。

12 3 back_path 文字列 APIの実際のパス

使用可能文字は以下の通り。

  • RFC3986非予約文字

    (半角英数、`.`(ピリオド)、`-`(ハイフン)、`_`(アンダースコア)、`~`(チルダ))

  • `/`(スラッシュ)
  • `%`(パーセント)

ただし、文字列は以下のルールに従うこと。

  • 先頭が `/`(スラッシュ) であること。
  • 末尾が `/`(スラッシュ) でないこと。
  • `//` (連続したスラッシュ)のように空のセグメントをもたないこと。
  • `%`(パーセント)を含む場合、正しいURLエンコード文字列であること。
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登録数の上限値は以下の通りです。