如何在 AWS Step Function 中获取纪元时间
How to get epoch time in AWS Step Function
我们可以使用“$$.State.EnteredTime”在 AWS Step 函数中引用当前时间,但这给出了 ISO 格式。有没有办法获得 Epoch seconds/milliseconds?我想在此基础上在 DynamoDB 中添加 TTL 值。
这可能吗?或者我是否只需要为时间戳调用 Lambda 函数?
这需要 Lambda Invoke Task. A small set of value transformations (e.g. string interpolation, JSON parsing) are natively handled by Intrinsic Functions。但是,大多数值转换(包括日期操作)都需要像 Lambda 这样的外部任务资源。
"EpochExecutionTimeLambda": {
"Type": "Task",
"ResultPath": "$.epoch",
"Resource": "arn:aws:lambda:us-east-1:...",
"Parameters": {
"dateTime.$": "$$.State.EnteredTime"
}
lambda 处理程序当然很简单:
exports.handler = async (event) => new Date(event.dateTime).valueOf()
我们可以使用“$$.State.EnteredTime”在 AWS Step 函数中引用当前时间,但这给出了 ISO 格式。有没有办法获得 Epoch seconds/milliseconds?我想在此基础上在 DynamoDB 中添加 TTL 值。
这可能吗?或者我是否只需要为时间戳调用 Lambda 函数?
这需要 Lambda Invoke Task. A small set of value transformations (e.g. string interpolation, JSON parsing) are natively handled by Intrinsic Functions。但是,大多数值转换(包括日期操作)都需要像 Lambda 这样的外部任务资源。
"EpochExecutionTimeLambda": {
"Type": "Task",
"ResultPath": "$.epoch",
"Resource": "arn:aws:lambda:us-east-1:...",
"Parameters": {
"dateTime.$": "$$.State.EnteredTime"
}
lambda 处理程序当然很简单:
exports.handler = async (event) => new Date(event.dateTime).valueOf()