是否可以创建一个可以手动运行的AWS数据管道,当我触发它时,我希望传递参数来执行。
答案 0 :(得分:3)
当你说"手动运行管道"?
时,你的意思是什么?您可以通过调用 activate-pipeline 命令从命令行激活("触发")管道。此命令需要管道标识,并可选择接受参数值包作为管道配置。要获取有关此命令的更多详细信息,请运行
aws datapipeline activate-pipeline help
e.g。
aws datapipeline activate-pipeline --pipeline-id df-ABCDEF1234 --parameter-values myStringValue =" Hello world" myArrayValue = value1 myArrayValue = value2
或
aws datapipeline activate-pipeline --pipeline-id df-ABCDEF1234 --parameter-values-uri s3://myBucket/withParameters/forPipeline.json
答案 1 :(得分:0)
不,数据管道当前不支持它。我相信您所寻找的是事件驱动的调度,可能会为特定的运行实例提供参数。
我建议您探索以下选项:
有些黑客可以使用Data Pipeline,但我建议不要使用这些并等待Data Pipeline支持此功能。
Hack#1 :
您可以按计划运行管道。您的管道将有三个组件:
现在在shell脚本中检查S3文件。你可以有逻辑让这个执行成为无操作,如果在S3中没有/空文件或读取S3文件并将它们作为参数传递给你的程序。
Hack#2 :
您可以将S3前提条件(指向位置说:s3:// my-bucket / marker-file-#{scheduledStartTime})添加到管道中的活动,作为您的触发机制。无论何时想要运行特定的间隔,都可以在S3中输入相应的文件(比如s3:// my-bucket / marker-file-2015-10-01:00:00:00)。
这个黑客很糟糕,我对解释更多感觉不太好。
答案 2 :(得分:0)
是的,有可能。自您发布问题以来,AWS已创建了一个新的“scheduleType
”ondemand
,它允许您在调用“激活管道”时运行管道。这是一个例子invoking a pipeline via AWS Lambda。