无服务器云信息:将环境变量强制转换为数字



我使用的是无服务器步骤函数插件,我需要从环境变量中指定超时。问题是我不知道如何将其转换为数字(Cloudformation在运行时预期(,我没有找到任何帮助函数来实现这一点:

serverless.yml

stepFunctions:
stateMachines:
MyStateMachine:
name: 'MyStateMachine'
definition:
Comment: ''
StartAt: Worker
States:
Worker:
Type: Task
Resource: arn:aws:states:::ecs:runTask.waitForTaskToken
InputPath: $
ResultPath: $
OutputPath: $
TimeoutSeconds: ${env:TIMEOUT_SECONDS} # Need this to be casted to a number
Parameters:
# ...              
Catch:
- ErrorEquals: ["States.ALL"]
Next: Failure
Next: Success
Failure:
Type: Fail
Success:
Type: Succeed

使用Cloudformation,您可以在Cloudformation文件的顶部声明一个参数

使参数值默认为环境变量

Parameters:
TimeoutSecs:
Description: The specified timeout from an environment
Type: Number
Timeout: "60"
Default: ${{ env:TIMEOUT_SECONDS} }

根据文档将Type定义为数字来自AWSCloudformation文档

Number整数或浮点值。AWSCloudFormation将参数值验证为数字;但是,当您在模板的其他地方使用参数时(例如,通过使用Ref内部函数(,参数值将变为字符串。

例如,用户可以指定";8888";。

列表用逗号分隔的整数或浮点数组。AWS CloudFormation以数字形式验证参数值;但是,当您在模板中的其他地方使用参数时(例如,通过使用Ref内部函数(,参数值将变为字符串列表。

例如,用户可以指定"80,20",Ref将产生["80","20"]

相关内容

  • 没有找到相关文章

最新更新