Transformerプラグインは、リクエストのヘッダー、クエリ、フォームセクションのパラメーター、レスポンスのステータスコードとヘッダーパラメーターなど、HTTPリクエストとレスポンスに加える変更を自動的に適用します。
1. 概要
トランスフォーマプラグインを使用すると、変更タイプや変更するパラメータなどのパラメータ変更ポリシーを設定できます。 その後、プラグインは、設定されたポリシーに基づいてHTTPリクエストとレスポンスを自動的に変更します。
HTTPリクエストでは、次の変更タイプがサポートされています。
addRequestParameterIfAbsent: リクエストパラメーターを追加します。 パラメーターが既に存在する場合、パラメーターは変更されません。 追加するパラメーターの場所、名前、値を指定する必要があります。putRequestParameter: リクエストパラメーターを追加します。 パラメータが既に存在する場合、新しいパラメータは元のパラメータを上書きします。 追加するパラメーターの場所、名前、値を指定する必要があります。removeRequestParameter: リクエストパラメーターを削除します。 削除するパラメーターの場所と名前を指定する必要があります。
HTTPレスポンスでは、次の変更タイプがサポートされています。
setResponseStatusCode: レスポンスのステータスコードを設定します。 このステータスコードは、バックエンドサービスによって返されたステータスコードを上書きします。addResponseHeaderIfAbsent: ヘッダーにパラメーターを追加します。 パラメーターが既に存在する場合、パラメーターは変更されません。 パラメーター名と値を指定する必要があります。putResponseHeader: ヘッダーにパラメーターを追加します。 パラメータが既に存在する場合、新しいパラメータは元のパラメータを上書きします。 パラメーター名と値を指定する必要があります。removeResponseHeader: ヘッダーからパラメーターを削除します。 パラメーター名を指定する必要があります。
リクエストに対して追加または削除するパラメーターの場所として、ヘッダー、クエリ、またはフォームを指定できます。
リクエストをバックエンドサービスに転送する前に、API Gatewayはトランスフォーマプラグインで設定されたポリシーを実行して、リクエストのパラメーターを変更します。 リクエストパラメータをマッピングする必要がある場合、パラメータマッピング後にポリシーが適用されます。 応答をクライアントに転送する前に、API Gatewayは、応答のパラメーターを変更するためにトランスフォーマープラグインで設定されたポリシーを実行します。 エラーコードをマッピングする必要がある場合は、エラーコードマッピング後にポリシーが適用されます。
2. 設定例
トランスフォーマーのプラグインをJSONまたはYAML形式で設定できます。 2つの形式は同じスキーマを持ち、変換ツールを使用して互いに変換できます。 次のコードは、YAML形式のテンプレートを提供し。
---
addRequestParameterIfAbsent: # Add parameters to the request. If a parameter already exists, the parameter is not modified.
- name: userId # The parameter name.
value: 123456 # The parameter value.
location: query # The parameter location.
putRequestParameter: # Add parameters to the request. If a parameter already exists, the new parameter overwrites the original.
- name: name
value: Jack
location: header
removeRequestParameter: # Delete parameters from the request.
- name: address
location: form
setResponseStatusCode: 200 # Set a status code for the response.
addResponseHeaderIfAbsent: # Add parameters to the header. If a parameter already exists, the parameter is not modified.
- name: age
value: 18
putResponseHeader: # Add parameters to the header. If a parameter already exists, the new parameter overwrites the original.
- name: name
value: Alice
removeResponseHeader: # Delete parameters from the header.
- name: phone例として、addRequestParameterIfAbsentとputResponseHeaderを取り上げます。
addRequestParameterIfAbsent: クエリセクションにuserIdパラメーターが含まれていない場合、API Gatewayはパラメーターを追加し、その値を123456に設定します。 リクエストにuserIdパラメーターが含まれている場合、API Gatewayはパラメーターを変更しません。
putResponseHeader: API Gatewayは、ヘッダーにパラメーターがすでに含まれているかどうかに関係なく、ageパラメーターを追加し、その値を18に設定します。この場合、API Gatewayはパラメーター値を18に変更します。
3。 制限
Transformerプラグインは、専用インスタンスにのみ提供されます。
2024、4月2日より前に購入した専用インスタンスでトランスフォーマープラグインが有効にならない場合は、チケットを起票してインスタンスをアップグレードしてください。