如何解决在 serverless.yml 中跨函数共享 CORS 配置
我们在 serverless.yml
中设置了一堆需要支持 CORS 的 API 端点。
此配置有效:
functions:
function1:
handler: api.refresh
events:
- http:
path: function1
method: post
cors:
origin: '*'
headers:
- Content-Type
- X-Amz-Date
- Authorization
- X-Api-Key
- X-Amz-Security-Token
- X-Amz-User-Agent
但这意味着我们需要为每个函数复制自定义 CORS 标头的列表 - 可能有很多地方我们需要在添加新标头后立即更新。
我们如何一次指定允许的 CORS 标头并将它们应用于所有函数?理想情况下,我们还可以自动使所有功能同时启用 CORS。
解决方法
目前serverlessjs不支持一次性为所有函数设置cors,需要为每个函数事件开启cors。
在正常情况下,您只需定义 cors 设置一次并将其应用于函数(如变量)
# ...
custom:
defaultCors:
origin: "*"
headers:
- Content-Type
- X-Amz-Date
- Authorization
- X-Api-Key
- X-Amz-Security-Token
- X-Amz-User-Agent
# ...
functions:
function1:
handler: api.refresh
events:
- http:
path: function1
method: post
cors: ${self:custom.defaultCors}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。