Более одного объекта соответствует предикату (всего 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.

Другие вопросы по тегам