【发布时间】: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 apply 或 terraform 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