【问题标题】:Activate a AWS Data Pipeline Multiple Times From an AWS Lambda从 AWS Lambda 多次激活 AWS Data Pipeline
【发布时间】:2015-09-24 00:17:16
【问题描述】:

谁能解释如何通过 AWS Lambda 执行使用源参数多次激活 AWS Data Pipeline。

当前第一个处理激活管道,但随后任何后续激活都会失败,有或没有消息(取决于激活参数)

完整的处理循环是将数据移动到 S3,然后启动 DataPipeline 将数据迁移到 Redshift。

    Example 1: aws datapipeline activate-pipeline --pipeline-id {pipelineid}
    Accepts command but will not execute on previously run pipeline


    Example 2: aws datapipeline activate-pipeline --pipeline-id {pipelineid} --end-timestamp, 2015-07-08T00:00:00Z 
    Error: Unknown options: --end-timestamp, 2015-07-08T00:00:00Z 


  Example 3: aws datapipeline activate-pipeline --pipeline-id {pipelineid} --start-timestamp, 2015-07-08T00:00:00Z     
A client error (InvalidRequestException) occured when calling the ActivatePipeline operation: startTimestamp shoudl not be later than any Schedule EndDateTime in the pipeline)

这段摘自 AWS 文档:

要激活已完成的管道,请修改管道的结束日期 然后激活它。

AWS Documentation Reference

【问题讨论】:

    标签: amazon-web-services aws-sdk amazon-data-pipeline aws-lambda


    【解决方案1】:
    aws datapipeline activate-pipeline --pipeline-id {pipelineid} --start-timestamp 2015-10-15T14:15:18Z
    
    • {pipelineid} 是你的df-xxxxx
    • 2015-10-15T14:15:18Z 是第一次开始运行管道的时间。 (只是一个例子)

    我们以这种方式在 prod 中使用并且工作完美,我们可以运行任何完成的数据管道。

    【讨论】:

    • 在指定 startTimestamp 时,其返回“startTimestamp 不应晚于管道中的任何 Schedule EndDateTime”!有帮助吗?如何编辑 EndDateTime?
    • 检查计划间隔,只包括开始不结束(任何开始的活动都应该有相同的开始时间)例如:2016-02-02 15:02:36 - 2016-02-03 15:02:36 你会使用 2016-02-02T15:02:36 并且应该可以工作。–
    【解决方案2】:

    您的管道定义应在计划中定义一个 endTime。您需要编辑定义以将其更改为在 startDateTime 之后。

    --end-timestamp 不是有效参数

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多