我遇到了奇怪的行为。我有一个YAML文件serverless.yml
(来自https://serverless.com/framework),该文件定义了一些变量,其中一些是整数,例如:
TEMPLATE_ID_CONTACT_REQUEST: 111
当我在本地加载该文件时,数字不会转换为字符串。但是当我在AWS上部署它时,数字会自动转换为字符串。
在本地运行时,我使用的是模拟AWS Lambda行为的东西,可能与此有关吗?
无论如何,我试图在YAML文件中找到一种强制类型的方法,但到目前为止没有找到任何可行的方法。而且我无法使用自定义的YAML文件加载器(AFAIK),因为serverless.yml文件是从Serverless框架本身加载的。
答案 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
效果很好,因此也应该在本地运行。