このページは、まだ日本語ではご利用いただけません。翻訳中です。
構成
このプラグインはDBレスモードに対応しています。
互換性のあるプロトコル
Request Calloutプラグインは以下のプロトコルに対応しています:
grpc
, grpcs
, http
, https
パラメータ
このプラグインの設定で使用できるすべてのパラメータのリストは次のとおりです。
-
string required
プラグイン名。この場合は
request-callout
。- Kong Admin API、Kong Konnect API、宣言型構成、または decK ファイルを使用する場合、フィールドは
name
です。 - Kubernetes で KongPlugin オブジェクトを使用する場合、フィールドは
plugin
です。
- Kong Admin API、Kong Konnect API、宣言型構成、または decK ファイルを使用する場合、フィールドは
-
string
プラグインのインスタンスを識別するための任意のカスタム名 (例:
request-callout_my-service
。インスタンス名はKong ManagerとKonnectに表示されるので、 例えば複数のサービスで同じプラグインを複数のコンテキストで実行する場合に便利です。また、Kong Admin API経由で特定のプラグインインスタンスに アクセスするためにも使用できます。
インスタンス名は、次のコンテキスト内で一意である必要があります。
- Kong Gateway Enterpriseのワークスペース内
- Konnectのコントロールプレーン(CP)またはコントロールプレーン(CP)グループ内
- Kong Gateway (OSS)の全世界
-
string
プラグインが対象とするサービス名または ID。最上位の
/plugins
エンドポイント. からプラグインをサービスに追加する場合は、これらのパラメータのいずれかを設定してください/services/{serviceName|Id}/plugins
を使用する場合は必要ありません。 -
string
プラグインがターゲットとするルート名または ID。最上位の
/plugins
エンドポイント. を通るルートにプラグインを追加する場合は、これらのパラメータのいずれかを設定してください/routes/{routeName|Id}/plugins
を使用する場合は必要ありません。 -
string
プラグインがターゲットとするコンシューマーの名前または ID。 最上位の
/plugins
エンドポイント. からコンシューマーにプラグインを追加する場合は、これらのパラメーターのいずれかを設定してください/consumers/{consumerName|Id}/plugins
を使用する場合は必要ありません。 -
string
プラグインが対象とするコンシューマグループの名前または ID。 設定されている場合、プラグインは指定されたグループが認証されているリクエストに対してのみアクティブになります
/plugins
エンドポイント./consumer_groups/{consumerGroupName|Id}/plugins
を使用する場合は必要ありません。 -
boolean default:
true
このプラグインが適用されるかどうか。
-
record required
-
array of type
record
requiredA collection of callout objects, where each object represents an HTTPrequest made in the context of a proxy request.
-
string required
A string identifier for a callout. A callout object is referenceablevia its name in the kong.ctx.shared.callouts.
-
array of type
string
requiredAn array of callout names the current callout depends on.This dependency determines the callout execution order.
-
record required
The customizations for the callout request.
-
string required referenceable
The URL that will be requested.
-
string required default:
GET
matches:^%u+$
The HTTP method that will be requested.
-
record required
HTTP connection parameters.
-
boolean default:
false
If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure
lua_ssl_trusted_certificate
inkong.conf
to specify the CA (or server) certificate used by your Redis server. You may also need to configurelua_ssl_verify_depth
accordingly.
-
string
The SNI used in the callout request. Defaults to host if omitted.
-
record
-
record
Proxy settings.
-
string referenceable
The username to authenticate with, if the forward proxy is protected by basic authentication.
-
string referenceable
The password to authenticate with, if the forward proxy is protected by basic authentication.
-
string
The HTTPS proxy URL. This proxy server will be used for HTTPS requests.
-
string
The HTTP proxy URL. This proxy server will be used for HTTP requests.
-
-
-
record required
-
record required
-
record required
Callout request body customizations.
-
boolean default:
false
If true, forwards the incoming request’s body to the callout request.
-
boolean default:
false
If true, decodes the request’s body to make it available for customizations.
-
map
The custom body fields to be added in the callout HTTP request.Values can contain Lua expressions in the form $(some_lua_code).
-
-
record required
The error handling policy the plugin will apply to TCP and HTTP errors.
-
string default:
fail
Must be one of:retry
,fail
,continue
-
integer default:
2
The number of retries the plugin will attempt on TCP and HTTP errors if
on_error
is set toretry
.
-
array of type
integer
The list of HTTP status codes considered errors under the error handling policy.
-
integer default:
400
The error code to respond with if
on_error
isfail
or ifretries
is achieved.
-
string default:
service callout error
The error mesasge to respond with if
on_error
isfail
or ifretries
is achieved.Templating with Lua expressions is supported.
-
-
string
Lua code that executes before the callout request is made.Standard Lua sandboxing restrictions apply.
-
-
record required
Configurations of callout response handling.
-
record required
-
record required
-
string
Lua code that executes after the callout request is made, before caching takes place. Standard Lua sandboxing restrictions apply.
-
-
record required
-
-
record required
Plugin global caching configuration.
-
string required default:
off
Must be one of:memory
,redis
,off
The backing data store in which to hold cache entities. Accepted values are:
off
,memory
, andredis
.
-
record required
-
record required
-
string default:
127.0.0.1
A string representing a host name, such as example.com.
-
integer default:
6379
between:0
65535
An integer representing a port number between 0 and 65535, inclusive.
-
integer default:
2000
between:0
2147483646
An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
-
integer default:
2000
between:0
2147483646
An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
-
integer default:
2000
between:0
2147483646
An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2.
-
string referenceable
Username to use for Redis connections. If undefined, ACL authentication won’t be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to
default
.
-
string referenceable encrypted
Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis.
-
string referenceable
Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won’t be performed. This requires Redis v6.2.0+.
-
string referenceable encrypted
Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.
-
integer default:
0
Database to use for the Redis connection when using the
redis
strategy
-
integer default:
256
between:1
2147483646
The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither
keepalive_pool_size
norkeepalive_backlog
is specified, no pool is created. Ifkeepalive_pool_size
isn’t specified butkeepalive_backlog
is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low.
-
integer between:
0
2147483646
Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return
nil
. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less thankeepalive_pool_size
. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger thankeepalive_pool_size
.
-
string
Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel.
-
string Must be one of:
master
,slave
,any
Sentinel role to use for Redis connections when the
redis
strategy is defined. Defining this value implies using Redis Sentinel.
-
array of type
record
len_min:1
Sentinel node addresses to use for Redis connections when the
redis
strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.
-
array of type
record
len_min:1
Cluster addresses to use for Redis connections when the
redis
strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.
-
boolean default:
false
If set to true, uses SSL to connect to Redis.
-
boolean default:
false
If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure
lua_ssl_trusted_certificate
inkong.conf
to specify the CA (or server) certificate used by your Redis server. You may also need to configurelua_ssl_verify_depth
accordingly.
-
string
A string representing an SNI (server name indication) value for TLS.
-
integer default:
5
Maximum retry attempts for redirection.
-
boolean default:
false
If the connection to Redis is proxied (e.g. Envoy), set it
true
. Set thehost
andport
to point to the proxy address.
-
-
integer default:
300
TTL in seconds of cache entities.
-
-
record required
Customizations to the upstream request.
-
string
Lua code that executes before the upstream request is made. Standard Lua sandboxing restrictions apply.
-
record required
-
record required
-
record required
Callout request body customizations.
-
boolean default:
true
If false, skips forwarding the incoming request’s body to the upstream request.
-
boolean default:
true
If true, decodes the request’s body to make it available for upstream by_lua customizations.
-
map
The custom body fields to be added in the upstream request body. Values can contain Lua expressions in the form $(some_lua_code).
-
-
-