2

サーバーレス アプリでは、4xx および 5xx エラー応答に CORS ヘッダーが含まれるように、serverless.yml のリソース ブロックに以下を追加しました。

    GatewayResponseDefault4XX:
      Type: 'AWS::ApiGateway::GatewayResponse'
      Properties:
        ResponseParameters:
          gatewayresponse.header.Access-Control-Allow-Origin: "'*'"
          gatewayresponse.header.Access-Control-Allow-Headers: "'*'"
        ResponseType: DEFAULT_4XX
        RestApiId:
          Ref: 'ApiGatewayRestApi'

    GatewayResponseDefault5XX:
      Type: 'AWS::ApiGateway::GatewayResponse'
      Properties:
        ResponseParameters:
          gatewayresponse.header.Access-Control-Allow-Origin: "'*'"
          gatewayresponse.header.Access-Control-Allow-Headers: "'*'"
        ResponseType: DEFAULT_5XX
        RestApiId:
          Ref: 'ApiGatewayRestApi'

これは最近まで機能していましたが、現在は を使用してアプリをデプロイしようとすると、次のエラーが発生しますserverless deploy。このエラーは、アプリをデプロイすると消え、上記のリソースが から削除されますserverless.yml

The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [ApiGatewayResourceViewer, ApiGatewayRestApi] in the Resources block of the template.

しかし問題は、アプリから返される 4xx および 5xx エラーを正常にキャッチするためにこれらのリソースが必要なことです。それらを削除して続行することはできません。

これらのリソースを保持し、エラーなしでアプリをデプロイする方法はありますか? 有益な提案は高く評価されます。

背景情報

serverless-plugin-split-stacks構成:

custom:
  splitStacks:
    perFunction: false
    perType: true
    perGroupFunction: false

serverless -v出力:

Framework Core: 2.15.0
Plugin: 4.4.2
SDK: 2.3.2
Components: 3.4.7
4

0 に答える 0