gpt4 book ai didi

amazon-web-services - 无法对齐导入的 S3 存储桶地形配置

转载 作者:行者123 更新时间:2023-12-04 12:57:41 25 4
gpt4 key购买 nike

我已将现有的 S3 存储桶导入我的 terraform状态。
我现在正在尝试对其配置进行逆向工程并将其传递给 .tf文件。
这是我的文件

resource "aws_s3_bucket" "my-bucket" {
provider = "aws.eu_west_1"
bucket = "my-bucket"

grant {
type = "Group"
permissions = ["READ_ACP", "WRITE"]
uri = "http://acs.amazonaws.com/groups/s3/LogDelivery"
}

grant {
id = "my-account-id"
type = "CanonicalUser"
permissions = ["FULL_CONTROL"]
}
这是我的 terraform plan输出
  ~ aws_s3_bucket.my-bucket
acl: "" => "private"
无论我对 acl 使用什么值我 总是 无法对齐我的 tf与现有 acl S3 存储桶上的配置,例如
resource "aws_s3_bucket" "my-bucket" {
provider = "aws.eu_west_1"
bucket = "my-bucket"
acl. = "private"
对应 plan输出:
Error: aws_s3_bucket.my-bucket: "acl": conflicts with grant
Error: aws_s3_bucket.my-bucket: "grant": conflicts with acl
另一个:
resource "aws_s3_bucket" "my-bucket" {
provider = "aws.eu_west_1"
bucket = "my-bucket"
acl. = ""
resource "aws_s3_bucket" "my-bucket" {
provider = "aws.eu_west_1"
bucket = "my-bucket"
acl. = ""
所以如果我不使用 acl 值, terraform显示 acl将从未设置更改为 private如果我使用任何值,我会收到一个错误。
这是为什么?

最佳答案

这是对 0.13 的观察,但仍可能有所帮助:
如果我使用您的原始代码(即没有 acl 行)创建一个存储桶,则生成的 TF 状态文件仍包含 "acl": "private",存储桶的属性。如果我然后在 TF 代码中添加 acl="private"定义,我也会得到 "acl": conflicts with grant在尝试申请时。
但真正奇怪的是,如果我删除 acl="private"定义(即恢复到您的原始代码),并删除 "acl": "private",状态文件中的属性行,然后计划(包括刷新)显示存储桶将就地更新:+ acl = "private" .申请这似乎工作正常,但第二次申请表明赠款已丢失,需要重新申请。
因此,在我看来,S3 状态刷新中存在一个错误,该错误也可能会影响导入,此外,从状态中明确删除 acl 属性会使其错误地应用为覆盖任何授权的默认值。我认为可能值得使用您的代码创建一个新存储桶,然后比较状态定义以获取原始导入丢失的任何位。

关于amazon-web-services - 无法对齐导入的 S3 存储桶地形配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64337564/

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