如果找不到要从中恢复的快照,如何在 terraform 中创建 ebs 卷
Posted
技术标签:
【中文标题】如果找不到要从中恢复的快照,如何在 terraform 中创建 ebs 卷【英文标题】:How do I create an ebs volume in terraform if it could not find a snapshot to restore from 【发布时间】:2021-11-24 13:09:26 【问题描述】:所以我在这里阅读文档:https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ebs_volume
它说我们可以使用 SnapshotId= 或 size= 这样快照 id 将根据给定 id 的快照创建卷,而 size= 将创建一个全新的卷。
我有这个数据源来访问我的快照:
data "aws_ebs_snapshot" "p4_ebs_snapshot"
most_recent = true
owners = ["self"]
filter
name = "tag:Name"
values = ["PerforceDepots"]
我想知道是否可以这样做:
if data.foundSnapshot?
snapshotId=data.id;
else
size=100
end
上面显然只是伪代码,但我想知道如何在 terraform 中做这样的事情。有可能吗?
【问题讨论】:
【参考方案1】:遗憾的是,如果没有external data source,不可能。 TF 没有检查某物是否存在的概念。如果任何数据源不存在,则会出错。解决这个问题的唯一方法是开发您自己的数据源,它可以提供这样的功能。
【讨论】:
哦,看起来你可以创建一个只运行 python 脚本的外部数据源?我想我也可以做红宝石? @DanielGleason 是的,您可以使用任何编程语言,bash、python、ruby,只要它返回 json 并且在您的本地工作站上可用。 所以我可以只返回一个空字符串然后它会使用大小? @DanielGleason 不知道你是什么意思?不过不管怎样,你可以试试看效果如何。以上是关于如果找不到要从中恢复的快照,如何在 terraform 中创建 ebs 卷的主要内容,如果未能解决你的问题,请参考以下文章