_ Masalah ini awalnya dibuka oleh @kfrn sebagai hashicorp / terraform # 15579. Itu dipindahkan ke sini sebagai akibat dari pemisahan penyedia . Isi asli dari masalah ini ada di bawah._
Setiap kali saya menjalankan terraform plan
, kebijakan redrive untuk antrean SQS saya muncul sebagai diubah, meskipun sebenarnya tidak ada perubahan.
Saya menggunakan modul untuk membuat antrian SQS saya.
resource "aws_sqs_queue" "sqs_queue" {
name = "${var.environment}_${var.name}"
message_retention_seconds = "${var.sqs_queue["message_retention_seconds"]}"
visibility_timeout_seconds = "${var.sqs_queue["visibility_timeout_seconds"]}"
redrive_policy = <<-JSON
{
"deadLetterTargetArn": "${aws_sqs_queue.sqs_dead_queue.arn}",
"maxReceiveCount": "${var.sqs_queue["max_receive_count"]}"
}
JSON
}
resource "aws_sqs_queue" "sqs_dead_queue" {
name = "${var.environment}_${var.name}_dead"
message_retention_seconds = "${var.sqs_dead_queue["message_retention_seconds"]}"
visibility_timeout_seconds = "${var.sqs_dead_queue["visibility_timeout_seconds"]}"
}
maxReceiveCount
diatur dalam variabel modul:
variable "sqs_queue" {
type = "map"
default = {
message_retention_seconds = 1209600
visibility_timeout_seconds = 30
max_receive_count = 10
}
}
Terraform v0.9.8
Bahwa tidak ada perubahan yang terdeteksi untuk kebijakan redrive, karena tidak ada perubahan yang dilakukan.
Sebutkan langkah-langkah yang diperlukan untuk mereproduksi masalah, misalnya:
terraform get
terraform plan -var-file=<var-file>.tfvars -out=<my-update>.plan -state=<current-state-file>.tfstate
terraform apply -state-out=<new-state-file>.tfstate <my-update>.plan
Masalah ini telah dibahas pada Februari 2016, di sini: hashicorp / terraform # 5119
Tampaknya karena maxReceiveCount
dalam kode orang itu adalah string, bukan angka; bug tersebut kemudian mendapatkan patch (# 5888).
Jadi saya benar-benar tidak yakin mengapa ini terjadi pada saya. Sebagai catatan, maxReceiveCount
jelas merupakan bilangan bulat.
@ kfrn, apakah Anda mengetahui masalahnya di sini?
Dalam konfigurasi Anda di atas, Anda memiliki "${var.sqs_queue["max_receive_count"]}"
. Kutipan di dalam heredoc JSON tidak relevan dan tidak diperlukan oleh konfigurasi Terraform untuk mengambil interpolasi variabel dalam kasus ini, sehingga JSON Anda dapat terlihat seperti:
redrive_policy = <<-JSON
{
"deadLetterTargetArn": "${aws_sqs_queue.sqs_dead_queue.arn}",
"maxReceiveCount": ${var.sqs_queue["max_receive_count"]}
}
JSON
Penutupan karena kurangnya tanggapan dan solusi yang diusulkan di atas.
Hanya tindak lanjut dari ini.
Saya menghadapi masalah yang sama dan menghapus kutipan asing pada ${var.sqs_queue["max_receive_count"]
memperbaiki masalah
terima kasih @bflad
Komentar yang paling membantu
@ kfrn, apakah Anda mengetahui masalahnya di sini?
Dalam konfigurasi Anda di atas, Anda memiliki
"${var.sqs_queue["max_receive_count"]}"
. Kutipan di dalam heredoc JSON tidak relevan dan tidak diperlukan oleh konfigurasi Terraform untuk mengambil interpolasi variabel dalam kasus ini, sehingga JSON Anda dapat terlihat seperti: