Ben*_*min 7 amazon-web-services amazon-kinesis amazon-kinesis-firehose aws-event-bridge
我Firehose从Eventbridge事件中读到的内容类似于:
{
"detail": {
"key1": "some value",
"key2": "some value",
"Timestamp": "2022-01-21T19:01:05Z"
}
}
Run Code Online (Sandbox Code Playgroud)
我想在将事件保存到s3. 我尝试像这样提取年份:
.detail.Timestamp| strftime("%Y")
Run Code Online (Sandbox Code Playgroud)
Timestamp我知道如果以格式给出字段,这会起作用epoch,但现在我收到错误(通过保存到文件中firehose):
{
. . .
"errorCode": "DynamicPartitioning.MetadataExtractionFailed",
"errorMessage": "strftime/1 requires parsed datetime inputs",
. . .
}
Run Code Online (Sandbox Code Playgroud)
从我的事件包含的时间戳中提取年份(和其他时间部分)的正确语法是什么?
Ben*_*min 12
回答我自己的问题:
我意识到选择用于分区的键的方法是使用jq语法。因此,使用是从纪元| strftime("%Y")时间中提取年份的方法。为了从我的时间格式中提取它,我需要添加另一个步骤.| strptime("%Y-%m-%dT%H:%M:%SZ")
完整的解决方案是:.detail.Timestamp| strptime("%Y-%m-%dT%H:%M:%SZ")| strftime("%Y").
在了解这实际上是之后jq,这里的答案How to extract theyear from JSON date using jq就完成了我的难题。
| 归档时间: |
|
| 查看次数: |
3939 次 |
| 最近记录: |