J'essaie de configurer le seau s3 avec la réplication à l'aide de Terraform. J'obtiens l'erreur suivante.
resource "aws_s3_bucket" "ps-db-backups" {
bucket = "ps-db-backups-b3bd1643-8cbf-4927-a64a-f0cf9b58dfab"
acl = "private"
region = "eu-west-1"
versioning {
enabled = true
}
lifecycle_rule {
id = "transition"
enabled = true
transition {
days = 30
storage_class = "STANDARD_IA"
}
expiration {
days = 180
}
}
replication_configuration {
role = "${aws_iam_role.ps-db-backups-replication.arn}"
rules {
id = "ps-db-backups-replication"
status = "Enabled"
destination {
bucket = "${aws_s3_bucket.ps-db-backups-replica.arn}"
storage_class = "STANDARD_IA"
}
}
}
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
}
Je ne comprends pas ce message d'erreur. Tout d'abord, dans la section réplication , j'ai défini la destination . Deuxièmement, le message d'erreur mentionne lifecycle_rule qui n'a pas
Attribut destination . La définition du bucket est ci-dessous.
Error: insufficient items for attribute "destination"; must have at least 1
on main.tf line 114, in resource "aws_s3_bucket" "ps-db-backups":
114: lifecycle_rule {
3 Réponses :
Parcourez attentivement les documents de terraform.
Vous devez créer une ressource terraform distincte pour destination comme celle-ci:
destination {
bucket = "${aws_s3_bucket.destination.arn}"
storage_class = "STANDARD"
}
Et puis la référencer dans votre replication_configuration code > as
resource "aws_s3_bucket" "destination" {
bucket = "tf-test-bucket-destination-12345"
region = "eu-west-1"
versioning {
enabled = true
}
}
J'espère que cela vous aidera. Essayez de me le faire savoir.
J'ai cette configuration évidemment. N'incluait pas tout le fichier de configuration terraform pour brewity.
Cela semble être un bogue dans Terraform 0.12. Consultez ce numéro https://github.com/terraform-providers/terraform -provider-aws / issues / 9048
En remarque, si vous devez également activer la surveillance de la réplication S3, vous ne pourrez pas le faire. Terraform n'a pas cela implémenté.
Mais il y a un PR ouvert pour cela, veuillez voter avec un pouce vers le haut, https://github.com/terraform-providers/terraform-provider-aws/pull/11337
avec quelle version de terraform utilisez-vous?
J'ai mis à niveau vers la dernière version 0.12.2 mais la même erreur.