Можно ли создать объект конвейерного массива в канале данных AWS с помощью Cloudformation?
При создании конвейера данных через 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
тип ресурса для настройки конвейера. Однако объекты конвейера могут иметь только тип 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??
Заранее спасибо.
1 ответ
Ах, я не уверен, где я это видел 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" }
]
}
}