Amazon API Gateway を使用して、Amazon Simple Storage Service (Amazon S3) バケットにファイル、フォルダ、サブフォルダを作成したいと考えています。中間の AWS Lambda 関数は使いたくありません。
簡単な説明
API リクエストのレイテンシーを減らすには、Lambda 関数を使用せずに API Gateway を使用して Amazon S3 バケットリソースを作成します。この方法でコストを削減でき、システムの保守とトラブルシューティングが容易になります。
リソースを作成するには、必要なアクセス許可と設定を備えた API ゲートウェイが必要です。
解決策
REST API を作成する
Amazon API Gateway で REST API を作成する
リソースを作成する
API Gateway でリソースを作成するには、以下の手順を実行します。
- API Gateway コンソールを開き、API を選択します。
- [リソース] セクションで、[リソースを作成] を選択します。
- [リソースパス] で、/ を選択します。
- [リソース名] に、{rest} と入力します。
- [リソースを作成] を選択します。
API を Amazon S3 に統合する
API を Amazon S3 と統合するメソッドを作成するには、次のステップを実行します。
- API Gateway コンソールを開き、リソースを選択します。
- [メソッドを作成] を選択します。
- [メソッドタイプ] で、[PUT] を選択します。
- [統合タイプ] で、[AWS サービス] を選択します。
- [AWS サービス] で、[Simple Storage Service (S3)] を選択します。
- [HTTP メソッド] で、[PUT] を選択します。
- (オプション) その他の設定を行います。
- [メソッドを作成] を選択します。
URL パスパラメータを定義する
リソースにパスパラメータを追加するには、次の手順を実行します。
- API ゲートウェイコンソールを開きます。
- [リソース] セクションで、PUT メソッドを選択します。
- [統合リクエスト] タブで、[編集] を選択します。
- [URL パスパラメータ] セクションで、[パスパラメータを追加] を選択します。
- [名前] にrest と入力します。
- [マッピング元] に、method.request.path.rest と入力します。
- (オプション) その他のキャッシュ設定を行います。
- [保存] を選択します。
API ゲートウェイをテストする
API Gateway がバケットにソースを正常に作成できるかどうかをテストするには、次の手順を実行します。
- API ゲートウェイコンソールを開きます。
- [リソース] セクションで API を選択し、次に PUT メソッドを選択します。
- [rest] フィールドに、次のいずれかの名前を入力します。[rest] フィールドは、メソッドの名前に基づいて異なるタイトルが付けられる場合があります。
Amazon S3 バケットにファイルを作成するには、ファイル名を入力します。
Amazon S3 バケットにフォルダを作成するには、%2F で終わるフォルダ名を入力します。たとえば、testfolder という名前のフォルダを作成するには、testfolder%2F と入力します。
Amazon S3 バケットにサブフォルダを作成するには、フォルダ名を入力してからサブフォルダ名を入力します。たとえば、testfolder%2Ftestfolder1%2F と入力すると、testfolder という名前のフォルダ内にサブフォルダが作成されます。
- Test を選択します。
テストが成功すると、「HTTP 200 OK」という応答が表示されます。
関連情報
Amazon API Gateway とは
Amazon S3 とは