すべてのプロダクト
Search
ドキュメントセンター

API Gateway:Transformerプラグイン (専用インスタンスのみ)

最終更新日:Jul 31, 2024

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日より前に購入した専用インスタンスでトランスフォーマープラグインが有効にならない場合は、チケットを起票してインスタンスをアップグレードしてください。