API Gateway コンソールを使用したバイナリサポートの有効化 - Amazon API Gateway

API Gateway コンソールを使用したバイナリサポートの有効化

このセクションでは、API Gateway コンソールを使用してバイナリサポートを有効にする方法ついて説明します。例として、Amazon S3 と統合された API を使用します。サポートされるメディアタイプを設定するタスクと、ペイロードの処理方法を指定する方法に焦点を当てます。Amazon S3 と統合された API を作成する方法の詳細については、「チュートリアル: REST API を Amazon S3 のプロキシとして作成する」を参照してください。

API Gateway コンソールを使用してバイナリサポートを有効にするには
  1. API のバイナリメディアタイプの設定

    1. 新しい API を作成するか、既存の API を選択します。この例では、API に FileMan という名前を付けます。

    2. プライマリナビゲーションパネルで選択した API で、[API の設定] を選択します。

    3. [API の設定] ペインで、[バイナリメディアタイプ] セクションの [メディアタイプを管理] を選択します。

    4. [バイナリメディアタイプを追加] を選択します。

    5. 必要なメディアタイプ (例: image/png) を入力テキストフィールドに入力します。必要に応じて、このステップを繰り返して他のメディアタイプを追加します。すべてのバイナリメディアタイプをサポートするには、*/* を指定します。

    6. [Save changes] (変更の保存) をクリックします。

  2. API メソッドのメッセージペイロードを処理する方法を設定します。

    1. API で新しいリソースを作成するか、既存のリソースを選択します。この例では、/{folder}/{item} リソースを使用します。

    2. リソースで新しいメソッドを作成するか、既存のメソッドを選択します。例として、Amazon S3 で GET /{folder}/{item} アクションと統合された Object GET メソッドを使用します。

    3. [コンテンツの処理] で、オプションを選択します。

      API Gateway コンソールで GET メソッドをセットアップします。

      クライアントとバックエンドが同じバイナリ形式を受け入れるときに本文を変換しない場合は、[Passthrough (パススルー)] を選択します。バイナリリクエストペイロードを JSON プロパティとして渡すことがバックエンドで要求される場合などに、バイナリ本文を Base64 でエンコードされた文字列に変換するには、[テキストに変換] を選択します。また、クライアントが Base64 でエンコードされた文字列を送信してバックエンドが元のバイナリ形式を要求する場合や、エンドポイントが Base64 でエンコードされた文字列を返してクライアントがバイナリ出力のみ受け入れる場合は、[バイナリに変換] を選択します。

    4. [リクエスト本文のパススルー] で、[テンプレートが定義されていない場合 (推奨)] を選択し、リクエスト本文に対するパススルー動作を有効にします。

      [なし] を選択することもできます。つまり、API はマッピングテンプレートを持たない Content-Type のデータを拒否します。

    5. 統合リクエストで、受信リクエストの Accept ヘッダーを保持します。これは、contentHandlingpassthrough に設定し、ランタイムにその設定を上書きする場合に行う必要があります。

      統合リクエストで Accept ヘッダーを保持します。
    6. テキストに変換する場合は、Base64 でエンコードされたバイナリデータを必要な形式にするマッピングテンプレートを定義します。

      マッピングテンプレートをテキストに変換する例は次のとおりです。

      { "operation": "thumbnail", "base64Image": "$input.body" }

      このマッピングテンプレートの形式は、入力のエンドポイント要件によって異なります。

    7. [Save] を選択します。