Можно ли создать объект конвейера массива в DataApipeline AWS через Cloudformation?

54
4

При создании конвейера данных через API/CLI, который создает EmrCluster, я могу указать несколько шагов, используя структуру массива:

{ "objects" : [
{ "id" : "myEmrCluster",
"terminateAfter" : "1 hours",
"schedule" : {"ref":"theSchedule"}
"step" : ["some.jar,-param1,val1", "someOther.jar,-foo,bar"] },
{ "id" : "theSchedule", "period":"1 days" }
] }

Я могу вызвать put-pipeline-definition ссылающееся на указанный выше файл, чтобы создать несколько шагов для кластера EMR.

Теперь, если я хочу создать конвейер с помощью CloudFormation, я могу использовать свойство PipelineObjects в AWS::DataPipeline::Pipeline ресурса AWS::DataPipeline::Pipeline для настройки конвейера. Однако объекты конвейера могут быть только типа StringValue или RefValue. Как я могу создать поле объекта конвейера массива?

Здесь соответствующий шаблон облачной информации:

"Resources" : {
"MyEMRCluster" : {
"Type" : "AWS::DataPipeline::Pipeline",
"Properties" : {
"Name" : "MyETLJobs",
"Activate" : "true",
"PipelineObjects" : [
{

"Id" : "myEmrCluster",
"Fields" : [
{ "Key" : "terminateAfter","StringValue":"1 hours" },
{ "Key" : "schedule","RefValue" : "theSchedule" },
{ "Key" : "step","StringValue" : "some.jar,-param1,val1" }
]
},
{
"Id" : "theSchedule",
"Fields" : [
{ "Key" : "period","StringValue":"1 days" }
]
}
]
}
}
}

С помощью вышеуказанного шаблона step - это StringValue, эквивалентный:

"step" : "some.jar,-param1,val1"

а не массив, такой как желаемый конфиг.

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html показывает только правильные ключи StringValue и RefValue - возможно ли создать массив шагов через CloudFormation??

Заранее спасибо.

спросил(а) 2017-03-24T12:57:00+03:00 2 года, 8 месяцев назад
1
Решение
58

Ах, я не знаю, где я видел, что steps могут быть сконфигурированы как массив - документация не имеет никакого упоминания о том, что - вместо этого, он указывает, что есть несколько шагов, несколько step должны быть использованы записи.

            {

"Id" : "myEmrCluster",
"Fields" : [
{ "Key" : "terminateAfter","StringValue":"1 hours" },
{ "Key" : "schedule","RefValue" : "theSchedule" },
{ "Key" : "step","StringValue" : "some.jar,-param1,val1" },
{ "Key" : "step","StringValue" : "someOther.jar,-foo,bar" }
]
}
}

ответил(а) 2017-03-24T15:03:00+03:00 2 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема