Terraform-provider-aws: في الخطة ، يتم دائمًا وضع علامة redrive_policy على أنه تم تعديله

تم إنشاؤها على ١٨ يوليو ٢٠١٧  ·  3تعليقات  ·  مصدر: hashicorp/terraform-provider-aws

_تم فتح هذا الإصدار في الأصل بواسطة 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

Terraform v0.9.8

سلوك متوقع

لم يتم الكشف عن أي تغيير في سياسات redrive ، حيث لم يتم إجراء أي تغيير.

السلوك الفعلي

screen shot 2017-07-18 at 4 39 38 pm

خطوات التكاثر

الرجاء سرد الخطوات المطلوبة لإعادة إظهار المشكلة ، على سبيل المثال:

  1. terraform get
  2. terraform plan -var-file=<var-file>.tfvars -out=<my-update>.plan -state=<current-state-file>.tfstate
  3. terraform apply -state-out=<new-state-file>.tfstate <my-update>.plan

مراجع

تمت مناقشة هذه المشكلة في فبراير 2016 ، هنا: hashicorp / terraform # 5119
يبدو أن السبب في ذلك هو أن maxReceiveCount في رمز ذلك الشخص كان عبارة عن سلسلة ، وليس رقمًا ؛ ثم حصل الخطأ على رقعة (# 5888).
لذلك أنا حقًا غير متأكد من سبب حدوث ذلك بالنسبة لي. للتسجيل ، فإن maxReceiveCount هو بالتأكيد عدد صحيح.

bug servicsqs

التعليق الأكثر فائدة

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

ال 3 كومينتر

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

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات