在 AWS 数据管道控制台中,当我上传管道定义文件时,我总是收到此错误 -
管道创建失败。数据管道未能创建管道:超过一个对象与谓词匹配(共 2 个)。(服务:空;状态代码:0;错误代码:空;请求 ID:空)
尝试使用“从架构师构建”选项创建管道定义。它起作用了,然后我导出了管道定义并尝试使用“上传管道”创建另一个管道。这样做只是为了确保我创建的管道没有任何错误。但仍然得到同样的错误。有什么解决办法吗?
在 AWS 数据管道控制台中,当我上传管道定义文件时,我总是收到此错误 -
管道创建失败。数据管道未能创建管道:超过一个对象与谓词匹配(共 2 个)。(服务:空;状态代码:0;错误代码:空;请求 ID:空)
尝试使用“从架构师构建”选项创建管道定义。它起作用了,然后我导出了管道定义并尝试使用“上传管道”创建另一个管道。这样做只是为了确保我创建的管道没有任何错误。但仍然得到同样的错误。有什么解决办法吗?
与 API 和 aws cli 相比,管道控制台在数据管道功能方面总是迎头赶上。最好的办法是安装并使用 aws cli 来导入管道定义。
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-cli-ref.html
我们遇到了一些无法通过控制台导入管道的场景,但在使用 aws cli 导入时可以正常工作。
与在 Build in Architect 中的“导出”中看到的管道定义相比,上传管道定义时,AWS 预期的管道定义文件在语法上有所不同。
AWS 文档中解释的管道定义采用以下格式:
{
"objects" : [
{
"name1" : "value1",
"name2" : "value2"
},
{
"name1" : "value3",
"name3" : "value4",
"name4" : "value5"
}
]}
这是您在使用构建使用数据管道的 Architect 功能创建管道后尝试导出管道定义时可以看到的格式。
但是,当您通过导入管道定义文件或使用 Boto 创建管道时,预期的格式为以下格式:
{u'parameterObjects': [],
u'pipelineObjects': [{u'fields': [{u'key': u'schedule',
u'refValue': u'ScheduleId_1'},
{u'key': u'scriptUri',
u'stringValue': u'S3://<Script path>'},
{u'key': u'workerGroup',
u'stringValue': u'EC2Cluster'},
{u'key': u'type',
u'stringValue': u'ShellCommandActivity'}],
u'id': u'ActivityId_1',
u'name': u'Activity 1'
}
]
}