【问题标题】:Serverless Framework - Variables resolution error无服务器框架 - 变量解析错误
【发布时间】:2022-04-05 01:06:51
【问题描述】:

我有以前可以工作的 serverless.yaml 脚本 - 接下来在更新到新版本的 SLS (2.72.0) 后,我开始收到警告:

Cannot resolve serverless.yaml: Variables resolution errored with:
  - Cannot resolve variable at "custom.S3_BUCKET_NAME": Value not found at "self" source

我的自定义部分如下所示:

custom:
  S3_BUCKET_NAME: ${self:service}-data-${opt:stage, self:provider.stage}
  s3Sync:
    - bucketName: ${self:custom.S3_BUCKET_NAME}-website
      localDir: ./dist
      deleteRemoved: true

我该如何解决这个警告?

【问题讨论】:

    标签: amazon-web-services yaml serverless-framework


    【解决方案1】:

    变量解析略有变化,在您的情况下,解决它的最佳方法是使用以下语法:

    custom:
      S3_BUCKET_NAME: ${self:service}-data-${sls:stage}
      s3Sync:
        - bucketName: ${self:custom.S3_BUCKET_NAME}-website
          localDir: ./dist
          deleteRemoved: true
    

    用于解决阶段。或者,您可以使用旧语法,但为阶段提供明确的后备值:

    custom:
      S3_BUCKET_NAME: ${self:service}-data-${opt:stage, self:provider.stage, 'dev'}
      s3Sync:
        - bucketName: ${self:custom.S3_BUCKET_NAME}-website
          localDir: ./dist
          deleteRemoved: true
    

    我建议使用sls:stage 版本。

    【讨论】:

      【解决方案2】:

      改变你写舞台的方式:

      self:provider.stage
      

      收件人:

      ${sls:stage}
      

      应该做的工作!

      您可以在以下位置找到更新的文档:https://www.serverless.com/framework/docs/providers/aws/guide/variables 或运行 serverless print 以获得更详细的问题响应。

      【讨论】:

        猜你喜欢
        • 2022-01-22
        • 2019-02-20
        • 2022-10-19
        • 2021-11-22
        • 2018-09-17
        • 2020-09-25
        • 2021-05-12
        • 2014-09-03
        • 2020-05-06
        相关资源
        最近更新 更多