微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.env 文件上的无服务器弃用警告

如何解决.env 文件上的无服务器弃用警告

我正在使用无服务器框架来部署 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.yml 文件中设置弃用变量并验证 serverless deploy 是否成功,并且框架会按您的意图插入您的变量。

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

useDotenv: true
variablesResolutionMode: 20210326

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

${provider.profile,'default'}

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。