【发布时间】:2023-03-04 08:03:05
【问题描述】:
我正在尝试激活在 CloudFormation 中创建的管道。但是,我从 CLI 和 Web 界面都收到以下错误:
管道定义有错误:无法激活有错误的管道。
但是,如果我导出/重新导入管道,它会说没有错误:
$ aws datapipeline get-pipeline-definition --pipeline-id df-REDACTED > def.json
$ aws datapipeline put-pipeline-definition --pipeline-id df-REDACTED --pipeline-definition file://def.json
{
"validationErrors": [],
"errored": false,
"validationWarnings": [
{
"id": "Default",
"warnings": [
"'pipelineLogUri'is missing. It is recommended to set this value on Default object for better troubleshooting."
]
}
]
}
$ aws datapipeline activate-pipeline --pipeline-id df-REDACTED
A client error (InvalidRequestException) occurred when calling the ActivatePipeline operation: Pipeline definition has errors: Cannot activate a pipeline with errors
创建具有相同定义的新管道按预期工作。但是,由于管道由 CloudFormation 管理,我不知道如何强制它重新创建。我可以提交一个脚本更改来删除管道,然后再提交另一个来重新创建它,但是在生产中必须执行类似的操作似乎很糟糕。
管道定义 (def.json) 的编辑副本可在此处获得:https://gist.github.com/corruptmem/26b866e31f9c85b4ce95d53f7d12f0a7
【问题讨论】:
-
你能粘贴你的 def.json 吗?还有你的文件 def.json 的位置是什么?
-
我在帖子底部附上了一个经过编辑的 def.json。位置是shell的工作目录,也就是我的主目录。管道定义正在正确导入,因为我可以在 Web 控制台中看到我所做的任何更改。
-
好的,您必须在 json 文件中指定一个日志 url,所有管道日志都将写入其中,您打算使用 S3 存储桶存储日志吗?
-
pipelineLogUri 缺失是警告而非错误。没有它,管道应该可以工作,实际上,如果我创建另一个管道并将这个定义放入其中,它就可以正常工作。但是为了完整起见,我刚刚尝试使用日志 URI 更新它,所以现在没有出现任何警告,但它仍然没有解决问题。
标签: amazon-web-services amazon-cloudformation amazon-data-pipeline