为什么 terraform 使用 `formatdate` 函数生成相同的时间戳?

Why terraform generate the same timestamp by using `formatdate` function?

https://www.terraform.io/docs/configuration/functions/formatdate.html 上面是这个函数的文档,我用它在 SageMaker 批量转换作业的名称上附加了一个时间戳,该作业将从 stepfunction 状态机触发:

locals {
  timestamp = formatdate("YYYYMMDDhhmmss", timestamp())
}

在 stepfunction terraform 文件中:

  definition = templatefile("stepfuntion.json",
    {
      xxx
      timestamp      = local.timestamp
)

在“stepfuntion.json”中:

{...
          "TransformJobName": "jobname-${timestamp}",
  
          }
      },
        "End": true
      }
    }
  }

具体来说,jobname是在 "TransformJobName": "jobname-${timestamp}"中定义的, 我在上午 10 点和上午 11 点两次应用了 terraform,但是第二次它生成了与第一次相同的时间戳,我在这里遗漏了什么吗?我以为这个函数会生成实时时间戳。折腾了一个上午,非常感谢

工作得很好,我按照问题中描述的模板文件 stepfuction.json

使用了您的代码
        # main.tf
        locals {
        current  = formatdate("YYYYMMDDhhmmss",timestamp())
    }
    output "tempasda"{
    value = templatefile("task.json", {timestamp = local.current, model_name="mymodel"})
    }

和对应的输出

    $ terraform  apply -auto-approve |grep TransformJobName
            "TransformJobName": "jobname-20210106134614",

    $ terraform  apply -auto-approve |grep TransformJobName
            "TransformJobName": "jobname-20210106134615",

    $ terraform  apply -auto-approve |grep TransformJobName
            "TransformJobName": "jobname-20210106134617",
            
    $ terraform  apply -auto-approve |grep TransformJobName
            "TransformJobName": "jobname-20210106134618",

使用 0.13.x 和 0.14.x

测试的 terrform 版本