Более одного объекта соответствует предикату (всего 2) в конвейере данных AWS
В консоли конвейера данных AWS, когда я загружаю файл определения конвейера, я всегда получаю эту ошибку -
Не удалось создать конвейер. Конвейеру данных не удалось создать конвейер: более одного объекта соответствует предикату (всего 2). (Сервис: ноль; Код состояния: 0; Код ошибки: ноль; Идентификатор запроса: ноль)
Попытка создания определения конвейера с помощью опции "Построить из архитектора". Это сработало, затем я экспортировал определение конвейера и попытался создать еще один конвейер с "Загрузить конвейер". Сделал это только для того, чтобы убедиться, что созданный мной конвейер не содержит ошибок. Но все равно получил ту же ошибку. Какие-либо решения?
2 ответа
Файл определения конвейера, ожидаемый AWS, отличается по синтаксису при загрузке определения конвейера по сравнению с определением конвейера, которое можно увидеть в "Экспорт" в Build in Architect.
Определение конвейера, как описано в документации AWS, имеет формат:
{
"objects" : [
{
"name1" : "value1",
"name2" : "value2"
},
{
"name1" : "value3",
"name3" : "value4",
"name4" : "value5"
}
]}
Это формат, который вы можете видеть, когда пытаетесь экспортировать определение конвейера после создания конвейера с помощью функции " Построение с использованием архитектуры" в конвейере данных.
Но формат, ожидаемый при создании конвейера путем импорта файла определения конвейера или использования 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'
}
]
}
Конвейерная консоль всегда догоняет, когда дело доходит до функций конвейера данных по сравнению с API, а также с aws cli. Лучше всего установить и использовать aws cli для импорта определения конвейера.
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-cli-ref.html
Мы столкнулись с несколькими сценариями, в которых конвейер не может быть импортирован через консоль, но он будет работать нормально при импорте с использованием aws cli.