【发布时间】:2019-12-05 00:13:15
【问题描述】:
我正在尝试使用无服务器到 AWS 进行部署,但出现以下错误。
发生错误:{ProjectName} - 无效的状态机定义: 'SCHEMA_VALIDATION_FAILED:整数类型的预期值在 /States/WaitForCampusM/Seconds'(服务:AWSStepFunctions;状态 代码:400;错误代码:无效定义;请求编号: 1facfbb9-9570-456d-8c33-1a2dadaea5ff)。
当我使用硬编码值时,这工作正常,但现在我尝试使用环境变量,以便我可以在部署和集成测试之间以不同的方式控制等待时间。这一切都通过 BitBucket 管道进行部署。
这是我在step函数中的状态定义:
WaitForCampusM:
Type: Wait
Seconds: ${env:CAMPUSM_WAIT_DELAY}
Next: CampusMPull
这个值是在 BitBucket 部署设置中设置的,我决定 echo 输出这个值,所以这是我的管道
script:
- npm install -g serverless
- echo $CAMPUSM_WAIT_DELAY
- sls deploy
这似乎记录了我的值,这是一个有效数字(但我假设由于某种原因被视为字符串?)
我也尝试在无服务器中使用SecondsPath,但不幸的是,这似乎也不起作用。谁能看到我可能还缺少什么?
【问题讨论】:
-
你做的一切都是对的。什么都没有向我跳出来。我有 2 个 cmets:#1 让我们知道 CloudFormation 中的实际值是多少。转到您的
.serverless目录,查看 CF 模板,然后粘贴带有Seconds的行。也许那里有一个额外的空间或什么?和#2 你如何声明$CAMPUSM_WAIT_DELAY? -
@solsglasses 谢谢。我在尝试记录问题后决定,这似乎是一个可能的错误 - github.com/horike37/serverless-step-functions/issues/280
-
是的,我看到你创建了那个 GitHub 问题。绝对是
serverless-step-functions的错误。
标签: serverless-framework bitbucket-pipelines