ラムダなしでサーバーレスフレームワーク設定(AWS用)にリダイレクト(301コード)モックを実装する方法

アレクサンダーT

APIリダイレクト(301)のルートパスがドキュメントのある完全に別のサイトにリダイレクトされるようにしたいと思います。したがって、/function1パスなどにラムダがあり、/別の場所でコード301を返す必要があります。そして、私は別のラムダなしでそれをやりたいです。

これはまさにここ説明されていることですが、awsコマンドラインツールを使用します。私はこのアプローチを試しました-それは完全に機能しますが、サーバーレスフレームワーク構成を介してそのようなAPIゲートウェイモックを構成したいと思います。

マイク・パトリック

幸い、リンクした一連のCLIコマンドはCloudFormationで再現できResourcesサーバーレステンプレートのセクションにドロップできます

この例では、GETto/function1はラムダ関数を呼び出し、GETto/は301を有名な検索エンジンに返します。

service: sls-301-mock

provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: us-east-1

functions:
  hello:
    handler: handler.hello
    events:
      - http:
          path: function1
          method: get

resources:
  Resources:
    Method:
      Type: AWS::ApiGateway::Method
      Properties:
        HttpMethod: GET
        ResourceId: 
          !GetAtt ApiGatewayRestApi.RootResourceId
        RestApiId: 
          Ref: ApiGatewayRestApi
        AuthorizationType: NONE
        MethodResponses:
          - ResponseModels: {"application/json":"Empty"}
            StatusCode: 301
            ResponseParameters: 
              "method.response.header.Location": true
        Integration:
          Type: MOCK
          RequestTemplates:
            "application/json": "{\n \"statusCode\": 301\n}"         
          IntegrationResponses:
            - StatusCode: 301
              ResponseParameters:
                "method.response.header.Location": "'https://google.com'"

テスト済み:

Framework Core: 1.62.0
Plugin: 3.3.0
SDK: 2.3.0
Components Core: 1.1.2
Components CLI: 1.4.0

ノート

ApiGatewayRestApi慣例により、イベントのためにサーバーレスによって作成されたAPI GatewayStageリソースの論理名ですhttp

関連するCloudFormationドキュメント

ApiGateway ::メソッド

ApiGateway ::メソッドの統合


編集

この回答はそれほど冗長ではなくhttpResourcesセクションの代わりにイベントを使用します。私はそれをテストしていませんが、それはあなたのためにも働くかもしれません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ