【问题标题】:Executing `terraform apply` on the same aws_s3_bucket resource twice have different results在同一个 aws_s3_bucket 资源上执行 `terraform apply` 两次有不同的结果
【发布时间】:2021-01-25 12:39:32
【问题描述】:

在此文件https://github.com/wentao-daommo/aws-local/blob/master/local.tf 中,我正在使用 localstack 设置 aws_s3_bucket。我第一次运行terraform apply 时,它成功地为我创建了一个存储桶。

但是,如果我在不更改 tf 文件的情况下再次运行 terraform applyterraform plan,它会开始应用我没有放入 tf 文件的新更改,类似于这样

Terraform will perform the following actions:

  # aws_s3_bucket.b will be updated in-place
  ~ resource "aws_s3_bucket" "b" {
        id                          = "local-bucket"
        tags                        = {}
        # (8 unchanged attributes hidden)

      - object_lock_configuration {
        }

      - replication_configuration {
        }

      - server_side_encryption_configuration {
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

如果我继续改变,会发生什么

aws_s3_bucket.b: Refreshing state... [id=local-bucket]
aws_s3_bucket.b: Modifying... [id=local-bucket]

Error: error removing S3 bucket server side encryption: NoSuchBucket: The specified bucket does not exist
    status code: 404, request id: , host id: 

我对这种行为感到非常困惑。我假设在同一个 tf 文件上运行 terraform plan/apply 不应触发任何更改。我错过了什么吗?

【问题讨论】:

  • 这可能是因为您使用的是非常旧的 localstack 版本。当前版本按预期工作。同样,您没有在问题中提供重要信息。你的 terraform 版本是什么?
  • localstack版本为0.10.5,terraform版本为0.14.5。让我尝试使用最新版本的 localstack 看看是否能解决问题。
  • 如果您使用新版本,您将不得不更改所有端口,正如我在之前的回答中所写的那样。
  • 将所有内容更新到最新版本并将所有端口号更改为 4566。现在一切正常。谢谢@Marcin

标签: amazon-web-services terraform localstack


【解决方案1】:

基于 cmets。

问题是由使用localstack非常旧的版本 (0.10.5) 引起的。当前版本是0.12.5

升级 localstack 到正确的版本解决了这个问题。

【讨论】:

  • 谢谢!较新的版本解决了这个问题。
  • @WentaoZheng 没问题。感谢您接受:-)
猜你喜欢
  • 2021-12-19
  • 1970-01-01
  • 2022-08-10
  • 2020-05-02
  • 1970-01-01
  • 2019-10-13
  • 2019-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多