このページは、まだ日本語ではご利用いただけません。翻訳中です。
古いプラグインバージョンのドキュメントを閲覧しています。
基本構成例
以下の例では、request-transformer
プラグインをserviceで有効にするための一般的な設定をご紹介します。
次のリクエストを行います。
curl -X POST http://localhost:8001/services/{serviceName|Id}/plugins \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--data '
{
"name": "request-transformer",
"config": {
"remove": {
"headers": [
"x-toremove",
"x-another-one"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"formparam-toremove",
"formparam-another-one"
]
},
"replace": {
"body": [
"body-param1:new-value-1",
"body-param2:new-value-2"
]
},
"rename": {
"headers": [
"header-old-name:header-new-name",
"another-old-name:another-new-name"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"param-old:param-new",
"param2-old:param2-new"
]
},
"add": {
"headers": [
"x-new-header:value",
"x-another-header:something"
],
"querystring": [
"new-param:some_value",
"another-param:some_value"
],
"body": [
"new-form-param:some_value",
"another-form-param:some_value"
]
}
}
}
'
SERVICE_NAME | IDを、このプラグイン構成の対象となるサービスの idまたはnameに置き換えてください。 |
独自のアクセストークン、リージョン、コントロールプレーンID、サービスIDを代入して、次のリクエストを行ってください。
curl -X POST \
https://{us|eu}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/services/{serviceId}/plugins \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer TOKEN" \
--data '{"name":"request-transformer","config":{"remove":{"headers":["x-toremove","x-another-one"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["formparam-toremove","formparam-another-one"]},"replace":{"body":["body-param1:new-value-1","body-param2:new-value-2"]},"rename":{"headers":["header-old-name:header-new-name","another-old-name:another-new-name"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["param-old:param-new","param2-old:param2-new"]},"add":{"headers":["x-new-header:value","x-another-header:something"],"querystring":["new-param:some_value","another-param:some_value"],"body":["new-form-param:some_value","another-form-param:some_value"]}}}'
地域固有のURLと個人アクセストークンの詳細については、 Konnect API referenceをご参照ください。
まず、KongPlugin リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: request-transformer-example
plugin: request-transformer
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
" | kubectl apply -f -
次に、次のようにserviceに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate service SERVICE_NAME konghq.com/plugins=request-transformer-example
SERVICE_NAMEを、このプラグイン構成が対象とするサービスの名前に置き換えます。 kubectl get serviceを実行すると、利用可能なイングレスを確認できます。
注: KongPluginリソースは一度だけ定義するだけで、ネームスペース内の任意のサービス、コンシューマー、またはルートに適用できます。プラグインをクラスター全体で利用可能にしたい場合は、KongPlugin
の代わりにKongClusterPlugin
としてリソースを作成してください。
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: request-transformer
service: SERVICE_NAME|ID
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
SERVICE_NAME | IDを、このプラグイン構成の対象となるサービスの idまたはnameに置き換えてください。 |
前提条件: パーソナルアクセストークンの設定
terraform {
required_providers {
konnect = {
source = "kong/konnect"
}
}
}
provider "konnect" {
personal_access_token = "kpat_YOUR_TOKEN"
server_url = "https://us.api.konghq.com/"
}
Kong Konnectゲートウェイプラグインを作成するには、Terraform 構成に以下を追加します。
resource "konnect_gateway_plugin_request_transformer" "my_request_transformer" {
enabled = true
config = {
remove = {
headers = ["x-toremove", "x-another-one"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["formparam-toremove", "formparam-another-one"]
}
replace = {
body = ["body-param1:new-value-1", "body-param2:new-value-2"]
}
rename = {
headers = ["header-old-name:header-new-name", "another-old-name:another-new-name"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["param-old:param-new", "param2-old:param2-new"]
}
add = {
headers = ["x-new-header:value", "x-another-header:something"]
querystring = ["new-param:some_value", "another-param:some_value"]
body = ["new-form-param:some_value", "another-form-param:some_value"]
}
}
control_plane_id = konnect_gateway_control_plane.my_konnect_cp.id
service = {
id = konnect_gateway_service.my_service.id
}
}
以下の例では、request-transformer
プラグインをrouteで有効にするための一般的な設定をご紹介します。
次のリクエストを行います。
curl -X POST http://localhost:8001/routes/{routeName|Id}/plugins \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--data '
{
"name": "request-transformer",
"config": {
"remove": {
"headers": [
"x-toremove",
"x-another-one"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"formparam-toremove",
"formparam-another-one"
]
},
"replace": {
"body": [
"body-param1:new-value-1",
"body-param2:new-value-2"
]
},
"rename": {
"headers": [
"header-old-name:header-new-name",
"another-old-name:another-new-name"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"param-old:param-new",
"param2-old:param2-new"
]
},
"add": {
"headers": [
"x-new-header:value",
"x-another-header:something"
],
"querystring": [
"new-param:some_value",
"another-param:some_value"
],
"body": [
"new-form-param:some_value",
"another-form-param:some_value"
]
}
}
}
'
ROUTE_NAME | IDを、このプラグイン構成が対象とするルートのid またはnameに置き換えてください。 |
独自のアクセストークン、リージョン、コントロールプレーン(CP)ID、ルートIDを代入して、次のリクエストをしてください。
curl -X POST \
https://{us|eu}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/routes/{routeId}/plugins \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer TOKEN" \
--data '{"name":"request-transformer","config":{"remove":{"headers":["x-toremove","x-another-one"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["formparam-toremove","formparam-another-one"]},"replace":{"body":["body-param1:new-value-1","body-param2:new-value-2"]},"rename":{"headers":["header-old-name:header-new-name","another-old-name:another-new-name"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["param-old:param-new","param2-old:param2-new"]},"add":{"headers":["x-new-header:value","x-another-header:something"],"querystring":["new-param:some_value","another-param:some_value"],"body":["new-form-param:some_value","another-form-param:some_value"]}}}'
地域固有のURLと個人アクセストークンの詳細については、 Konnect API referenceをご参照ください。
まず、KongPlugin リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: request-transformer-example
plugin: request-transformer
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
" | kubectl apply -f -
次に、次のようにingressに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate ingress INGRESS_NAME konghq.com/plugins=request-transformer-example
INGRESS_NAMEを、このプラグイン構成がターゲットとするイングレス名に置き換えます。 kubectl get ingressを実行すると、利用可能なイングレスを確認できます。
注: KongPluginリソースは一度だけ定義するだけで、ネームスペース内の任意のサービス、コンシューマー、またはルートに適用できます。プラグインをクラスター全体で利用可能にしたい場合は、KongPlugin
の代わりにKongClusterPlugin
としてリソースを作成してください。
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: request-transformer
route: ROUTE_NAME|ID
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
ROUTE_NAME | IDを、このプラグイン構成が対象とするルートのid またはnameに置き換えてください。 |
前提条件: パーソナルアクセストークンの設定
terraform {
required_providers {
konnect = {
source = "kong/konnect"
}
}
}
provider "konnect" {
personal_access_token = "kpat_YOUR_TOKEN"
server_url = "https://us.api.konghq.com/"
}
Kong Konnectゲートウェイプラグインを作成するには、Terraform 構成に以下を追加します。
resource "konnect_gateway_plugin_request_transformer" "my_request_transformer" {
enabled = true
config = {
remove = {
headers = ["x-toremove", "x-another-one"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["formparam-toremove", "formparam-another-one"]
}
replace = {
body = ["body-param1:new-value-1", "body-param2:new-value-2"]
}
rename = {
headers = ["header-old-name:header-new-name", "another-old-name:another-new-name"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["param-old:param-new", "param2-old:param2-new"]
}
add = {
headers = ["x-new-header:value", "x-another-header:something"]
querystring = ["new-param:some_value", "another-param:some_value"]
body = ["new-form-param:some_value", "another-form-param:some_value"]
}
}
control_plane_id = konnect_gateway_control_plane.my_konnect_cp.id
route = {
id = konnect_gateway_route.my_route.id
}
}
以下の例では、request-transformer
プラグインをconsumerで有効にするための一般的な設定をご紹介します。
次のリクエストを行います。
curl -X POST http://localhost:8001/consumers/{consumerName|Id}/plugins \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--data '
{
"name": "request-transformer",
"config": {
"remove": {
"headers": [
"x-toremove",
"x-another-one"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"formparam-toremove",
"formparam-another-one"
]
},
"replace": {
"body": [
"body-param1:new-value-1",
"body-param2:new-value-2"
]
},
"rename": {
"headers": [
"header-old-name:header-new-name",
"another-old-name:another-new-name"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"param-old:param-new",
"param2-old:param2-new"
]
},
"add": {
"headers": [
"x-new-header:value",
"x-another-header:something"
],
"querystring": [
"new-param:some_value",
"another-param:some_value"
],
"body": [
"new-form-param:some_value",
"another-form-param:some_value"
]
}
}
}
'
CONSUMER_NAME | IDを、このプラグイン構成の対象となるコンシューマのidまたはnameに置き換えてください。 |
独自のアクセストークン、リージョン、コントロールプレーンID、コンシューマーIDを代入して、次のリクエストをしてください。
curl -X POST \
https://{us|eu}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/consumers/{consumerId}/plugins \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer TOKEN" \
--data '{"name":"request-transformer","config":{"remove":{"headers":["x-toremove","x-another-one"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["formparam-toremove","formparam-another-one"]},"replace":{"body":["body-param1:new-value-1","body-param2:new-value-2"]},"rename":{"headers":["header-old-name:header-new-name","another-old-name:another-new-name"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["param-old:param-new","param2-old:param2-new"]},"add":{"headers":["x-new-header:value","x-another-header:something"],"querystring":["new-param:some_value","another-param:some_value"],"body":["new-form-param:some_value","another-form-param:some_value"]}}}'
地域固有のURLと個人アクセストークンの詳細については、 Konnect API referenceをご参照ください。
まず、KongPlugin リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: request-transformer-example
plugin: request-transformer
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
" | kubectl apply -f -
次に、次のようにKongConsumerオブジェクトに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate KongConsumer CONSUMER_NAME konghq.com/plugins=request-transformer-example
CONSUMER_NAMEを、このプラグイン構成が対象とするコンシューマーの名前に置き換えます。 kubectl get KongConsumerを実行すると、利用可能なコンシューマを確認できます。
KongConsumerオブジェクトの詳細については、 コンシューマと認証情報のプロビジョニングをご参照ください。
注: KongPluginリソースは一度だけ定義するだけで、ネームスペース内の任意のサービス、コンシューマー、またはルートに適用できます。プラグインをクラスター全体で利用可能にしたい場合は、KongPlugin
の代わりにKongClusterPlugin
としてリソースを作成してください。
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: request-transformer
consumer: CONSUMER_NAME|ID
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
CONSUMER_NAME | IDを、このプラグイン構成の対象となるコンシューマのidまたはnameに置き換えてください。 |
前提条件: パーソナルアクセストークンの設定
terraform {
required_providers {
konnect = {
source = "kong/konnect"
}
}
}
provider "konnect" {
personal_access_token = "kpat_YOUR_TOKEN"
server_url = "https://us.api.konghq.com/"
}
Kong Konnectゲートウェイプラグインを作成するには、Terraform 構成に以下を追加します。
resource "konnect_gateway_plugin_request_transformer" "my_request_transformer" {
enabled = true
config = {
remove = {
headers = ["x-toremove", "x-another-one"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["formparam-toremove", "formparam-another-one"]
}
replace = {
body = ["body-param1:new-value-1", "body-param2:new-value-2"]
}
rename = {
headers = ["header-old-name:header-new-name", "another-old-name:another-new-name"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["param-old:param-new", "param2-old:param2-new"]
}
add = {
headers = ["x-new-header:value", "x-another-header:something"]
querystring = ["new-param:some_value", "another-param:some_value"]
body = ["new-form-param:some_value", "another-form-param:some_value"]
}
}
control_plane_id = konnect_gateway_control_plane.my_konnect_cp.id
consumer = {
id = konnect_gateway_consumer.my_consumer.id
}
}
以下の例では、request-transformer
プラグインをconsumer groupで有効にするための一般的な設定をご紹介します。
次のリクエストを行います。
curl -X POST http://localhost:8001/consumer_groups/{consumerGroupName|Id}/plugins \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--data '
{
"name": "request-transformer",
"config": {
"remove": {
"headers": [
"x-toremove",
"x-another-one"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"formparam-toremove",
"formparam-another-one"
]
},
"replace": {
"body": [
"body-param1:new-value-1",
"body-param2:new-value-2"
]
},
"rename": {
"headers": [
"header-old-name:header-new-name",
"another-old-name:another-new-name"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"param-old:param-new",
"param2-old:param2-new"
]
},
"add": {
"headers": [
"x-new-header:value",
"x-another-header:something"
],
"querystring": [
"new-param:some_value",
"another-param:some_value"
],
"body": [
"new-form-param:some_value",
"another-form-param:some_value"
]
}
}
}
'
CONSUMER_GROUP_NAME | IDを、このプラグイン構成の対象となるコンシューマグループのidまたはnameに置き換えてください。 |
独自のアクセストークン、リージョン、コントロールプレーンID、コンシューマーグループIDを代入して、次のリクエストをします:
curl -X POST \
https://{us|eu}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/consumer_groups/{consumerGroupId}/plugins \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer TOKEN" \
--data '{"name":"request-transformer","config":{"remove":{"headers":["x-toremove","x-another-one"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["formparam-toremove","formparam-another-one"]},"replace":{"body":["body-param1:new-value-1","body-param2:new-value-2"]},"rename":{"headers":["header-old-name:header-new-name","another-old-name:another-new-name"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["param-old:param-new","param2-old:param2-new"]},"add":{"headers":["x-new-header:value","x-another-header:something"],"querystring":["new-param:some_value","another-param:some_value"],"body":["new-form-param:some_value","another-form-param:some_value"]}}}'
地域固有のURLと個人アクセストークンの詳細については、 Konnect API referenceをご参照ください。
まず、KongPlugin リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: request-transformer-example
plugin: request-transformer
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
" | kubectl apply -f -
次に、次のようにKongConsumerGroupオブジェクトに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate KongConsumerGroup CONSUMER_GROUP_NAME konghq.com/plugins=request-transformer-example
CONSUMER_GROUP_NAMEを、このプラグイン構成が対象とするコンシューマグループの名前に置き換えます。 kubectl get KongConsumerGroupを実行すると、利用可能なコンシューマグループを確認できます。
注: KongPluginリソースは一度だけ定義する必要があり、 名前空間内の任意のサービス、コンシューマ、コンシューマグループ、またはルートに適用できます。プラグインをクラスタ全体で利用できるようにする場合は、KongPlugin
の代わりにKongClusterPlugin
リソースを作成します。
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: request-transformer
consumer_group: CONSUMER_GROUP_NAME|ID
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
CONSUMER_GROUP_NAME | IDを、このプラグイン構成の対象となるコンシューマグループのidまたはnameに置き換えてください。 |
前提条件: パーソナルアクセストークンの設定
terraform {
required_providers {
konnect = {
source = "kong/konnect"
}
}
}
provider "konnect" {
personal_access_token = "kpat_YOUR_TOKEN"
server_url = "https://us.api.konghq.com/"
}
Kong Konnectゲートウェイプラグインを作成するには、Terraform 構成に以下を追加します。
resource "konnect_gateway_plugin_request_transformer" "my_request_transformer" {
enabled = true
config = {
remove = {
headers = ["x-toremove", "x-another-one"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["formparam-toremove", "formparam-another-one"]
}
replace = {
body = ["body-param1:new-value-1", "body-param2:new-value-2"]
}
rename = {
headers = ["header-old-name:header-new-name", "another-old-name:another-new-name"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["param-old:param-new", "param2-old:param2-new"]
}
add = {
headers = ["x-new-header:value", "x-another-header:something"]
querystring = ["new-param:some_value", "another-param:some_value"]
body = ["new-form-param:some_value", "another-form-param:some_value"]
}
}
control_plane_id = konnect_gateway_control_plane.my_konnect_cp.id
consumer_group = {
id = konnect_gateway_consumer_group.my_consumer_group.id
}
}
どのサービス、ルート、コンシューマー、コンシューマーグループにも関連しないプラグインは_global_とみなされ、 すべてのリクエストで実行されます。
- 自己管理型のKong Gateway Enterpriseでは、プラグインは特定のワークスペース内のすべてのエンティティに適用されます。
- セルフマネージドKong Gateway (OSS)では、プラグインは環境全体に適用されます。
- Konnectでは、プラグインは特定のコントロールプレーン(CP)内のすべてのエンティティに適用されます。
詳しくはプラグインリファレンスとプラグインの優先順位の セクションをご覧ください。
以下の例では、Request Transformer
プラグインをグローバルに有効にするための典型的な設定をいくつかご紹介します。
次のリクエストを行います。
curl -X POST http://localhost:8001/plugins/ \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--data '
{
"name": "request-transformer",
"config": {
"remove": {
"headers": [
"x-toremove",
"x-another-one"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"formparam-toremove",
"formparam-another-one"
]
},
"replace": {
"body": [
"body-param1:new-value-1",
"body-param2:new-value-2"
]
},
"rename": {
"headers": [
"header-old-name:header-new-name",
"another-old-name:another-new-name"
],
"querystring": [
"qs-old-name:qs-new-name",
"qs2-old-name:qs2-new-name"
],
"body": [
"param-old:param-new",
"param2-old:param2-new"
]
},
"add": {
"headers": [
"x-new-header:value",
"x-another-header:something"
],
"querystring": [
"new-param:some_value",
"another-param:some_value"
],
"body": [
"new-form-param:some_value",
"another-form-param:some_value"
]
}
}
}
'
独自のアクセストークン、リージョン、コントロールプレーン(CP)IDを代入して、次のリクエストをしてください。
curl -X POST \
https://{us|eu}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/plugins/ \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer TOKEN" \
--data '{"name":"request-transformer","config":{"remove":{"headers":["x-toremove","x-another-one"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["formparam-toremove","formparam-another-one"]},"replace":{"body":["body-param1:new-value-1","body-param2:new-value-2"]},"rename":{"headers":["header-old-name:header-new-name","another-old-name:another-new-name"],"querystring":["qs-old-name:qs-new-name","qs2-old-name:qs2-new-name"],"body":["param-old:param-new","param2-old:param2-new"]},"add":{"headers":["x-new-header:value","x-another-header:something"],"querystring":["new-param:some_value","another-param:some_value"],"body":["new-form-param:some_value","another-form-param:some_value"]}}}'
地域固有のURLと個人アクセストークンの詳細については、 Konnect API referenceをご参照ください。
KongClusterPlugin作成する リソースを作成し、グローバルとしてラベル付けします。
apiVersion: configuration.konghq.com/v1
kind: KongClusterPlugin
metadata:
name: <global-request-transformer>
annotations:
kubernetes.io/ingress.class: kong
labels:
global: "true"
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
plugin: request-transformer
宣言型構成ファイルにplugins
エントリを追加します。
plugins:
- name: request-transformer
config:
remove:
headers:
- x-toremove
- x-another-one
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- formparam-toremove
- formparam-another-one
replace:
body:
- body-param1:new-value-1
- body-param2:new-value-2
rename:
headers:
- header-old-name:header-new-name
- another-old-name:another-new-name
querystring:
- qs-old-name:qs-new-name
- qs2-old-name:qs2-new-name
body:
- param-old:param-new
- param2-old:param2-new
add:
headers:
- x-new-header:value
- x-another-header:something
querystring:
- new-param:some_value
- another-param:some_value
body:
- new-form-param:some_value
- another-form-param:some_value
前提条件: パーソナルアクセストークンの設定
terraform {
required_providers {
konnect = {
source = "kong/konnect"
}
}
}
provider "konnect" {
personal_access_token = "kpat_YOUR_TOKEN"
server_url = "https://us.api.konghq.com/"
}
Kong Konnectゲートウェイプラグインを作成するには、Terraform 構成に以下を追加します。
resource "konnect_gateway_plugin_request_transformer" "my_request_transformer" {
enabled = true
config = {
remove = {
headers = ["x-toremove", "x-another-one"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["formparam-toremove", "formparam-another-one"]
}
replace = {
body = ["body-param1:new-value-1", "body-param2:new-value-2"]
}
rename = {
headers = ["header-old-name:header-new-name", "another-old-name:another-new-name"]
querystring = ["qs-old-name:qs-new-name", "qs2-old-name:qs2-new-name"]
body = ["param-old:param-new", "param2-old:param2-new"]
}
add = {
headers = ["x-new-header:value", "x-another-header:something"]
querystring = ["new-param:some_value", "another-param:some_value"]
body = ["new-form-param:some_value", "another-form-param:some_value"]
}
}
control_plane_id = konnect_gateway_control_plane.my_konnect_cp.id
}