如果找不到要从中恢复的快照,如何在 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 卷的主要内容,如果未能解决你的问题,请参考以下文章

在pycharm中从中间恢复调试

Maven快照版本要这样用才真的香!

VS怎么重置设置开发环境

vmware ESXI虚拟机开机找不到磁盘,丢失VMDK文件恢复

回收站文件清空,要如何恢复?

你如何保存android模拟器快照?