サーバーレス アプリでは、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