如何在 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()