_تم فتح هذا الإصدار في الأصل بواسطة kfrn باعتباره hashicorp / terraform # 15579. تم ترحيله هنا كنتيجة لتقسيم الموفر . النص الأصلي للمشكلة أدناه.
في كل مرة أقوم بتشغيل terraform plan
، تظهر سياسات redrive لقوائم انتظار SQS الخاصة بي على أنها معدلة ، على الرغم من عدم وجود تغييرات فعلية فيها.
أنا أستخدم وحدة نمطية لإنشاء قوائم انتظار SQS الخاصة بي.
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
في متغيرات الوحدة:
variable "sqs_queue" {
type = "map"
default = {
message_retention_seconds = 1209600
visibility_timeout_seconds = 30
max_receive_count = 10
}
}
Terraform v0.9.8
لم يتم الكشف عن أي تغيير في سياسات redrive ، حيث لم يتم إجراء أي تغيير.
الرجاء سرد الخطوات المطلوبة لإعادة إظهار المشكلة ، على سبيل المثال:
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
تمت مناقشة هذه المشكلة في فبراير 2016 ، هنا: hashicorp / terraform # 5119
يبدو أن السبب في ذلك هو أن maxReceiveCount
في رمز ذلك الشخص كان عبارة عن سلسلة ، وليس رقمًا ؛ ثم حصل الخطأ على رقعة (# 5888).
لذلك أنا حقًا غير متأكد من سبب حدوث ذلك بالنسبة لي. للتسجيل ، فإن maxReceiveCount
هو بالتأكيد عدد صحيح.
kfrn هل اكتشفت المشكلة هنا؟
في التكوين الخاص بك أعلاه ، لديك "${var.sqs_queue["max_receive_count"]}"
. علامات الاقتباس داخل JSON heredoc غريبة ولا تتطلبها تهيئة Terraform لالتقاط الاستيفاء المتغير في هذه الحالة ، لذلك يمكن أن تبدو JSON كما يلي:
redrive_policy = <<-JSON
{
"deadLetterTargetArn": "${aws_sqs_queue.sqs_dead_queue.arn}",
"maxReceiveCount": ${var.sqs_queue["max_receive_count"]}
}
JSON
تم الإغلاق بسبب عدم الاستجابة والحل المقترح أعلاه.
مجرد متابعة لهذا.
كنت أواجه نفس المشكلة وأزلت عروض الأسعار الدخيلة على ${var.sqs_queue["max_receive_count"]
أصلحت المشكلة
شكراbflad
التعليق الأكثر فائدة
kfrn هل اكتشفت المشكلة هنا؟
في التكوين الخاص بك أعلاه ، لديك
"${var.sqs_queue["max_receive_count"]}"
. علامات الاقتباس داخل JSON heredoc غريبة ولا تتطلبها تهيئة Terraform لالتقاط الاستيفاء المتغير في هذه الحالة ، لذلك يمكن أن تبدو JSON كما يلي: