【问题标题】:how to solve module already exists error in pipeline如何解决模块已存在管道中的错误
【发布时间】:2022-11-15 02:38:33
【问题描述】:

我正在设置一个在 AWS 中预置资源的管道。每次我运行管道时,我都会得到一个模块已经存在的错误。我知道我已经提供了我想要的资源,但我对 Terraform 的理解是,如果它已经存在,它会跳过它并提供其余不存在的资源。如何让它跳过现有模块而不导致管道构建错误。

【问题讨论】:

    标签: amazon-web-services terraform terraform-provider-aws


    【解决方案1】:

    我对 Terraform 的理解是,如果它已经存在,它只是跳过它并提供

    很遗憾你的理解是不正确的。 TF 在提供资源之前不会检查是否存在某些内容。根据 TF 设计原则,假定资源不存在如果它们要由 TF 管理。

    如何让它跳过现有模块而不导致管道构建错误。

    你必须手动完成。将一些变量传递给您的 TF 脚本以用于有条件地创建资源。 TF 没有能力检查资源的预先存在,除非你自己做。

    【讨论】:

      【解决方案2】:

      如果资源已经存在,Terraform 不会跳过该资源,它会引发错误并退出执行。

      要处理此类问题,最好的替代方法是将现有资源导入您的状态文件。

      在官方文档的每个资源页面的末尾,您会找到一个“导入”部分,通常如下所示:

      terraform import terraform_state_id component_id
      
      Example:
      terraform import aws_instance.web i-12345678
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        • 2019-08-27
        • 2021-01-05
        • 1970-01-01
        相关资源
        最近更新 更多