## 事象 以下のように`Cors`を追加しても[[CORS]]のヘッダを返却してくれない。 ```yaml:template.yaml Resources: Api: Type: AWS::Serverless::Api Properties: Name: "rest-api" StageName: dev DefinitionBody: Fn::Transform: Name: AWS::Include Parameters: Location: ./openapi.yaml Cors: AllowOrigin: "'*'" AllowHeaders: "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'" AllowMethods: "'GET, OPTIONS'" AllowCredentials: true ``` ## 対策 [[AWS SAMのLambdaでCORS可能可能なレスポンスヘッダを返す]]必要がある。 また、[[単純リクエスト]]以外の場合は`OPTION`が必要。`template.yaml`に`OptionFunction`を追加する。`...`は任意の値。 ```yaml:template.yaml OptionsFunction: Type: AWS::Serverless::Function Properties: CodeUri: ... Handler: ... Runtime: ... Events: loginOptions: Type: Api Properties: Path: /{cors+} Method: OPTIONS Auth: Authorizer: NONE ``` ## 参考 - [\[Feature Request\] CORS Support in start\-api · Issue \#323 · aws/aws\-sam\-cli](https://github.com/aws/aws-sam-cli/issues/323) - 他の回避方法は紹介されているが、それ以外の方法では根本的に解決できない.. --- **💽Change log** - #2021/11/04 `OPTION`リクエスト関連を追加 - #2021/10/27 作成