serverless.yml-如何强制数字不转换为字符串?

时间:2018-09-21 19:28:34

标签: types aws-lambda yaml serverless-framework

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

TEMPLATE_ID_CONTACT_REQUEST: 111

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

在本地运行时,我使用的是模拟AWS Lambda行为的东西,可能与此有关吗?

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

1 个答案:

答案 0 :(得分:2)

假设您将这些变量设置为environment variables,并使用public static class Candy { private String candyName; public String getCandyName() { return candyName; } // other fields too } 访问它们,则值应始终为字符串。

来自node docs

  

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

如果您需要将该值设为整数,则可以使用parseInt?在整数上运行process.env效果很好,因此也应该在本地运行。