.env 文件上的无服务器弃用警告
Serverless deprecation warning on .env files
我正在使用无服务器框架来部署 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
文件,就无法进一步提供帮助。
我正在使用无服务器框架来部署 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
文件,就无法进一步提供帮助。