在AWS Data Pipeline中使用一段时间的参数时出错

时间:2016-10-27 15:27:53

标签: amazon-web-services amazon-data-pipeline

我尝试在AWS上创建一个参数化管道,旧的参数很好,除了要在一段时间内插入的那些:

{
  "id": "DefScheduler",
  "type": "Schedule",
  "startDateTime": "2016-09-26T00:00:00",
  "period": "#{myPeriod}"
}

当我在AWS控制台上打开架构师视图时,我看到了这个错误:

Object:DefScheduler
ERROR: 'period' value should be of the form: <number> [SECONDS|MINUTES|HOURS|DAYS|WEEKS|MONTHS]

该值在参数json文件中定义如下:

{
  "description": "How ofter do you want to run the job",
  "id": "myPeriod",
  "type": "String",
  "watermark":"1 HOURS",
  "default":"1 HOURS"
},

我试图用定义的值覆盖它,但没有运气。有任何想法吗?谢谢!

3 个答案:

答案 0 :(得分:0)

你能试试“小时”吗?

根据文档,period指定如下:

  

期间

     

指示计划事件的运行频率。它表达了   格式为“N [年|月|周|日|小时|分钟]”,其中N为a   正整数值。

     

最短期限为15分钟,最长期限为3年。

     

以下示例将Schedule对象的period字段设置为   3小时。这会创建一个每三个小时运行一次的计划。

     

“期间”:“3小时”

答案 1 :(得分:0)

参数Period应该是Type Period,但如果你在收到错误时将其特征化。

 {
  "id": "myPeriod",
  "description": "N [years|months|weeks|days|hours|minutes] ",
  "type": "Period",
  "optional":"false"
}

参数属性的值&#39; type&#39;不受支持。

我还尝试将两种不同的论点作为特征,但不起作用。

 {
  "id": "myInterval",
  "description": "years|months|weeks|days|hours|minutes]",
  "type": "String",
  "optional":"false"
}


{
      "id": "myTimeUnit",
      "description": "N ",
      "type": "Integer",
      "optional":"false"
    }

答案 2 :(得分:0)

如果有人偶然发现-尝试在datapipeline中设置TerminateAfter时遇到相同的错误。 对我来说,解决方法是使用Fn :: Sub而不是直接传递“ 1 Hours”。

            - Key: terminateAfter
              StringValue:
                Fn::Sub:
                  - "${Time} Hours"
                  - Time:
                      Ref: TerminateAfter