【问题标题】:serverless.yml - How to force numbers not to be converted to strings?serverless.yml - 如何强制数字不转换为字符串?
【发布时间】:2018-09-24 10:44:50
【问题描述】:

我遇到了一个奇怪的行为。我有一个 YAML 文件 serverless.yml(来自 https://serverless.com/framework),它定义了一些变量,其中一些是整数,例如:

TEMPLATE_ID_CONTACT_REQUEST: 111

当我在本地加载该文件时,数字不会转换为字符串。但是当我在 AWS 上部署它时,数字会自动转换为字符串。

当我在本地运行它时,我使用了一些模拟 AWS Lambda 行为的东西,可能相关吗?

无论如何,我试图找到一种在 YAML 文件中强制类型的方法,但到目前为止还没有找到任何可行的方法。而且我不能使用自定义 YAML 文件加载器 (AFAIK),因为 serverless.yml 文件是从无服务器框架本身加载的。

【问题讨论】:

  • 这个问题只发生在 AWS 上,我不需要在本地做更多的事情,它已经按预期工作了。

标签: types aws-lambda yaml serverless-framework


【解决方案1】:

假设您将这些变量设置为 environment variables 并使用 process.env 访问它们,则值应始终为字符串。

来自node docs

在 process.env 上分配一个属性会将值隐式转换为字符串。

如果您需要该值是整数,也许使用parseInt?在整数上运行 parseInt 可以正常工作,因此也应该在本地工作。

【讨论】:

  • 好吧,这正是实际发生的情况。我从来没有想过这可能是因为 process.env 行为,我认为它与 YAML 解析有关。感谢您的提示!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多