You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS Lambda写入Timestream时TIMESTAMP类型度量值报错

问题原因与解决方案

报错根源

AWS Timestream对TIMESTAMP类型的度量值格式有严格要求:必须传入毫秒级Unix时间戳的字符串,而非ISO 8601格式的日期字符串。你传入的"2022-10-03 06:55:38.175000000"属于ISO格式,不符合规则,因此触发ValidationException。

修复步骤

1. 直接修改负载格式

将EventDate的ISO日期字符串替换为对应的毫秒级Unix时间戳字符串。示例中日期对应的时间戳为1664770538175,修改后的负载如下:

{
    "DatabaseName": "mydbname",
    "TableName": "mytable",
    "Records": [{
        "MeasureName": "m",
        "MeasureValueType": "MULTI",
        "Time": "1665042286800",
        "Dimensions": [{
            "Name": "d",
            "Value": "v"
        }],
        "MeasureValues": [{
                "Name": "EventName",
                "Value": "PhotoTaken",
                "Type": "VARCHAR"
            },
            {
                "Name": "EventDate",
                "Value": "1664770538175",
                "Type": "TIMESTAMP"
            }
        ]
    }]
}

2. 代码中动态转换(可选)

如果需要在JavaScript代码中自动转换ISO日期字符串,可使用Date.parse()处理(注意时区一致性,确保时间戳准确):

// 示例:将ISO日期字符串转为毫秒级时间戳字符串
const eventDateStr = "2022-10-03 06:55:38.175000000";
const timestampStr = Date.parse(eventDateStr).toString();

// 构造写入记录时使用转换后的值
const records = [{
  MeasureName: "m",
  MeasureValueType: "MULTI",
  Time: "1665042286800",
  Dimensions: [{ Name: "d", Value: "v" }],
  MeasureValues: [
    { Name: "EventName", Value: "PhotoTaken", Type: "VARCHAR" },
    { Name: "EventDate", Value: timestampStr, Type: "TIMESTAMP" }
  ]
}];

关于数据保留设置

当前Memory Store和Magnetic Store的保留时长设置与本次报错无关,保留时长仅控制数据的存储周期,不会影响写入数据的格式验证逻辑。

内容的提问来源于stack exchange,提问作者Levon Shirakyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:50:16