gpt4 book ai didi

amazon-web-services - 用于更新现有启动模板的 Terraform 配置

转载 作者:行者123 更新时间:2023-12-02 02:58:53 24 4
gpt4 key购买 nike

我正在尝试使用 Terraform 更新 AWS 上现有的启动模板。以下是 Terraform 的配置。

resource "aws_launch_template" "update" {
name = data.aws_launch_template.config.name
image_id = data.aws_ami.ubuntu.id
instance_type = "c5.large"
// arn = data.aws_launch_template.config.arn
}

传递名称时会抛出错误 400 并显示以下错误。

Error: InvalidLaunchTemplateName.AlreadyExistsException: Launch template name already in use.

我想要相同的启动模板,但只需更新版本。在terraform官方网站上找不到任何修改模板的文档。或者我错过了什么?

操作系统 - macOS Catalina

Terraform 版本 - v0.12.21

最佳答案

关于 terraform 一般来说,需要注意的一件事是它希望拥有其管理的任何资源的整个生命周期。

在您的示例中,具有该名称的 aws_launch_template.update 已经存在,因此 terraform 本质上说,“我不拥有此资源,所以我不应该更改它。”

这实际上是一个非常好的好处,因为这意味着 terraform 不会(或至少不应该)覆盖或删除它不知道的资源。

现在,由于您正在引用现有的启动模板,我建议将其置于 terraform 的所有权之下(假设您被允许这样做)。为此,我建议

  • 在资源本身中对启动模板的名称进行硬编码,而不是通过数据引用它,并且

  • Importing the resource 通过运行这样的命令

 terraform import aws_launch_template.update lt-12345678

您可以将 lt-12345678 替换为您的实际启动模板 ID。这将使资源处于 terraform 的所有权之下,并实际上允许通过 terraform 代码进行更新。

如果您处于由其他人创建的环境中,请小心不要侵犯其他人的资源。

关于amazon-web-services - 用于更新现有启动模板的 Terraform 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60433046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com