【问题标题】:Share CORS configuration across functions in serverless.yml在 serverless.yml 中跨函数共享 CORS 配置
【发布时间】:2021-04-01 23:12:42
【问题描述】:

我们在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。

【问题讨论】:

    标签: serverless-framework serverless aws-serverless


    【解决方案1】:

    目前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}  
    

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 2018-05-04
      • 2014-01-18
      • 2014-10-08
      • 2014-03-20
      • 1970-01-01
      • 2016-02-06
      • 2011-06-10
      相关资源
      最近更新 更多