Terraform = v1.8.2 AWS 提供商 = >= 5.30 来自 hashicorp/aws
尝试使用 terraform 创建 AWS 资源名称以包含其创建日期+时间。 这是为了序列化资源以进行替换(以避免错误“具有该名称的资源已存在”),并使该序列字符串成为有用的内容而不是随机的。 我已经添加了创建的日期作为资源标签,但名称中的时间戳会很有帮助。
例如所需的资源名称 名称 =“my-app-20240707T1932”
代码片段
locals{
name = "my-app"
dateyear = formatdate("YYYYMMDD", timestamp()) # e.g. 20240707
dateyeartime = formatdate("YYYYMMDD'T'hhmm", timestamp()) # e.g. 20240707T1932
}
module "aurora" {
source = "..."
name = "${local.name}-${local.dateyeartime}"
}
如果我使用
"${local.name}-${local.dateyear}"
变量(即没有“T”),它可以正常工作(但不符合我期望的包含时间的结果)。
如果我使用 "${local.name}-${local.dateyeartime}"
,则会收到此错误:
错误:“cluster_identifier”中仅允许使用小写字母数字字符和连字符
问题是日期内的
'T'
,这需要在日期周围使用双引号,从而导致双引号内的双引号内的单引号。
是的,我可以省略“T”,但这样我就不会挣扎 3 个小时并与你们这些好人互动了。
期望的结果是这样的资源名称: 我的应用程序20240707T1932