aws_s3_bucket_public_access_block не может создать, пока применяется терраформ - PullRequest
1 голос
/ 07 мая 2020

Я делаю первые шаги в Terraform для AWS, и я хочу создать корзину S3 и установить для параметра «Блокировать все публикации c доступ» значение ON.

Версии:

Terraform v0.12.24 + provider. aws v2.60.0

файл provider.tf

provider "aws" {
    region  = "eu-west-1"
    profile = "<myprofile>"
}

файл s3.tf

resource "aws_s3_bucket" "<myname>" {
    bucket = "<myname>"
    region  = "eu-west-1"
}

resource "aws_s3_bucket_public_access_block" "<myname>" {
    bucket = "aws_s3_bucket.<myname>.id"
    block_public_acls = true
    block_public_policy = true
    ignore_public_acls = true
    restrict_public_buckets = true
}

значения в < > являются моими собственными значениями, и если это то же значение в моем файле, я использовал здесь то же значение примера (так что в файле s3.tf это только одно имя для всех переменных)

если я сделаю

terraform apply

он создаст все, но в "aws_s3_bucket_public_access_block" он будет go в тайм-аут примерно через 1 минуту и ​​скажет мне:

Error: error creating public access block policy for S3 bucket (aws_s3_bucket.<myname>.id): NoSuchBucket: The specified bucket does not exist
        status code: 404

Я также пытался добавить

depends_on = [ aws_s3_bucket.<myname> ]

в "aws_s3_bucket_public_access_block", но он тоже не работает.

Я искал и пытался, но ничего не работает. Кто-то сообщил об ошибке и сказал, что я должен установить AWS_REGION глобально в файле .env, попробовал, но тоже не сработал.

1 Ответ

2 голосов
/ 07 мая 2020

Ваша ссылка на сегмент S3 неверна.

Изменить:

bucket = "aws_s3_bucket.<myname>.id"

Кому:

bucket = aws_s3_bucket.<myname>.id

Никаких двойных кавычек, поскольку вы ссылаетесь на другой ресурс

...