【发布时间】:2022-08-14 09:49:39
【问题描述】:
我正在使用 AWS CDK,但我正在为 number 参数而苦苦挣扎。文档说数字可以是整数或浮点数。下面是如何在代码中设置数字参数:
number_parameter = CfnParameter(self, \"number_parameter\", type=\"Number\",
description=\"Number Parameter\")
这是我访问该值的方式:
number_parameter.value_as_number
我遇到的问题是,每当我使用 cdk 合成器时,它都假设这个参数是一个浮点数。我知道这一点是因为我试图在只接受整数而不是浮点数的函数中使用参数,这会导致错误。我也无法使用 int() 运算符将其转换为整数,因为我收到一个错误,即它太大而无法转换为整数。
如何指定此参数只需要整数而不是浮点数?或者是否有其他方法可以将其转换为整数,即使我无法控制 CDK 如何初始化该值?
-
也许可以使用带有字符串输入的正则表达式?像
[0-9]+什么的? -
我不确定您是否可以使用正则表达式作为参数类型。这也是问题的一部分,文档只显示了一个简单的字符串示例。
-
原来你可以使用正则表达式,但我仍然无法将字符串转换为 int。真的没有办法指定它是一个int吗?如果不能指定它是 int 还是 float,你应该如何使用这个 number 参数?
-
这可能有点迂回,老实说有点远,但你有没有考虑过使用
Fn::Transform?我的想法是您可以将其与Fn::FindInMap之类的东西配对,以获取字符串格式的数字的数值。 -
我尝试了使用 String 类型参数的正则表达式解决方案,但它不喜欢我尝试将其转换为 int。我不认为这实际上是一个问题,我在尝试运行 cdk 合成器时遇到了这个问题。我发现参数不能通过 cdk 合成器正常工作,所以我认为当我使用 cdk deploy 时这将作为数字参数工作得很好,但我必须回复你。
标签: python amazon-web-services floating-point integer aws-cdk