【问题标题】:Serverless deprecation warning on .env files.env 文件上的无服务器弃用警告
【发布时间】:2021-06-09 21:54:45
【问题描述】:

我正在使用无服务器框架来部署 React Web 应用程序。我已经为部署设置了 CI/CD 管道。当无服务器模板被执行时,我收到了几个弃用警告。

Serverless: Deprecation warning: Detected ".env" files. In the next major release variables from ".env" files will be automatically loaded into the serverless build process. Set "useDotenv: true" to adopt that behavior now.
            More Info: https://www.serverless.com/framework/docs/deprecations/#LOAD_VARIABLES_FROM_ENV_FILES
Serverless: Deprecation warning: Variables resolver reports following resolution errors:
              - Cannot resolve variable at "provider.profile": Value not found at "env" source
   From a next major this will be communicated with a thrown error.
            Set "variablesResolutionMode: 20210326" in your service config, to adapt to new behavior now
            More Info: https://www.serverless.com/framework/docs/deprecations/#NEW_VARIABLES_RESOLVER

我理解这些警告的方式是尝试从无服务器目录的 .env 文件中加载环境变量。但是我已经从其他文件(abc.config)存储了我的变量,并通过该文件而不是从 .env 文件将它们加载到无服务器模板。因此,我收到了这些警告。

我还使用serverless-dotenv-plugin 将 .env 文件中的环境变量用于本地部署,这就是为什么 .env 文件必须存在于无服务器目录中的原因。但是现在从 abc.config 文件加载变量工作正常,将来我想从同一个文件(abc.config)加载变量。但是以后,如果我对环境变量使用相同的方法,那将引发错误而不是发出警告。

问题 1:我不知道该如何解决这个问题。因为在即将发布的无服务器版本中,这将引发错误。

问题 2:如果我安装特定的无服务器版本会怎样。例如; npm install -g serverless@2.45.0 在这种情况下,将来我还会收到这些弃用警告吗?理论上,我仍将使用旧的无服务器版本,并且此版本支持从其他文件加载变量。所以我不应该收到这些警告。我可能是错的。但是提前解决这些警告的理想方法应该是什么?

任何帮助将不胜感激。 谢谢。

【问题讨论】:

    标签: serverless-framework serverless aws-serverless


    【解决方案1】:

    您应该在您的serverless.yml 文件中设置弃用变量,并验证serverless deploy 是否成功并且框架会按照您的意图插入您的变量。

    警告消息解释了该过程。只需将规则添加到您的 serverless.yml 文件中:

    useDotenv: true
    variablesResolutionMode: 20210326
    

    第二条警告消息将是一个错误,provider.profile 无法解决。你可以用一个条件来解决这个问题,即:

    ${provider.profile, 'default'}
    

    或者您可以确保始终设置provider.profile。如果没有看到 serverless.yml 文件,就无法提供进一步的帮助。

    【讨论】:

    • 感谢您回复@Aaron Stuyvenberg。设置弃用变量是什么意思?以及如何在我的无服务器中设置它?你能引导我找到解释这一点的正确示例或文档吗?谢谢。
    • 您可以像在serverless.yml 文件中设置任何内容一样简单地设置它们。直接复制我写的内容会将框架转换为使用新的 v3 功能。您可以在文档中阅读更多内容:serverless.com/framework/docs/deprecations
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2020-01-22
    • 2011-10-03
    • 2017-11-13
    • 2019-05-02
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多