我有一个非常简单的 Jenkins 工作,它构建然后将 step 函数部署到 AWS。我已经能够使用 SAM cli 从我的桌面构建和部署没有问题。但是,当我设置 jenkins 执行此操作时,我收到以下错误:
错误:构建步骤失败,出现异常 com.amazonaws.waiters.WaiterUnrecoverableException:资源在失败时从未进入所需状态。
堆栈在 AWS 中创建并保留在 REVIEW_IN_PROGRESS 中。我假设“服务员”正在等待堆栈进入另一个状态。我发现了这个,但它并没有太大帮助。
通过 SAM CLI,我可以很好地打包和部署
sam package --output-template-file packaged.yaml --s3-bucket thebucketofjesse
sam deploy --template-file packaged.yaml --stack-name jesse-stack-6 --capabilities CAPABILITY_IAM --region us-west-1
编辑
我想我可能已经发现了这个问题的原因。我停止使用 SAM 插件,而是创建了一个批处理脚本来手动运行 SAM 命令。除了出于某种原因'sam package'没有将S3 uri添加到yaml模板输出之外,一切正常。因此,当它运行“sam deploy”时,它会查看输出模板并期望 S3 uri。然后它失败并让堆栈处于 REVIEW_IN_PROGRESS 状态。
当我在 cli 中手动运行上述命令时,它会将我的 state-machine.yaml 文件上传到 S3,生成的 packaged.yaml cloudformation 模板将具有 S3 uri。
模板.yaml
当我在 jenkins 中运行 sam 命令时,S3 uri 不在 packaged.yaml 中