aws 数据管道日期时间变量

dav*_*edi 5 variables datetime amazon-web-services amazon-data-pipeline

我正在使用 AWS Data Pipeline 将文本文件从 RDS 保存到我的 S3 存储桶。我希望文件名在文件名中包含日期和小时,例如:

myfile-YYYYMMDD-HH.txt
myfile-20140813-12.txt
Run Code Online (Sandbox Code Playgroud)

我已将我的 S3DataNode FilePath指定为:

s3://mybucketname/out/myfile-#{format(myDateTime,'YYYY-MM-dd-HH')}.txt
Run Code Online (Sandbox Code Playgroud)

当我尝试保存管道时,出现以下错误:

ERROR: Unable to resolve myDateTime for object:DataNodeId_xOQxz
Run Code Online (Sandbox Code Playgroud)

根据日期和时间函数AWS Data Pipeline 文档,这是使用format函数的正确语法。

当我使用“硬编码”保存管道的日期和时间时,我没有收到此错误,并且我的文件按预期位于我的 S3 存储桶和文件夹中。

我的想法是我需要在某处定义“myDateTime”或使用 NOW()

有人可以告诉我如何将“myDateTime”设置为当前时间(例如 NOW)或提供一种解决方法,以便我可以格式化要在我的FilePath 中使用的当前时间?

use*_*132 5

我不知道数据管道中 NOW() 的确切等效项。我尝试使用没有参数的 makeDate(只是为了好玩)来看看它是否有效......它没有。

最接近的是运行时变量 scheduleStartTime、actualStartTime、reportProgressTime。

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-s3datanode.html

以下为例如。应该管用。s3://mybucketname/out/myfile-#{format(@scheduledStartTime,'YYYY-MM-dd-HH')}.txt

  • +1 谢谢。是的,使用 **@scheduledStartTime** 而不是“myDateTime”就可以了。我还刚刚读到 _a [用户定义字段](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-writing-pipeline-definition.html#dp-userdefinition-fields) 必须有一个名称前缀全部为小写字母“my”,后跟大写字母或下划线字符。_ 我还发现了其他变量/[CopyActivity 的对象](http://docs.aws.amazon.com/数据管道/最新/DeveloperGuide/dp-object-copyactivity.html) (2认同)