Terrafor- এ সতর্কতা "কেবলমাত্র কেবলমাত্র দ্বিধায়িত এক্সপ্রেশনকে হ্রাস করা হবে" ঠিক করুন


11

আমি টেরফর্ম v0.12.16 এ আপগ্রেড করেছি এবং এখন আমি এই জাতীয় দেখতে অনেক বার্তা পাচ্ছি:

Warning: Interpolation-only expressions are deprecated

  on ../modules/test-notifier/test_notifier.tf line 27, in resource "aws_sns_topic_policy" "default":
  27:   arn    = "${aws_sns_topic.default.arn}"

Terraform 0.11 and earlier required all non-constant expressions to be
provided via interpolation syntax, but this pattern is now deprecated. To
silence this warning, remove the "${ sequence from the start and the }"
sequence from the end of this expression, leaving just the inner expression.

Template interpolation syntax is still used to construct strings from
expressions when the template includes multiple interpolation sequences or a
mixture of literal strings and interpolations. This deprecation applies only
to templates that consist entirely of a single interpolation sequence.

এই বার্তা শত শত আছে। এগুলি ঠিক করার কোনও স্বয়ংক্রিয় উপায় আছে কি?

উত্তর:


13

আপনি কি প্রথমে কোড আপগ্রেড করেছেন?

টেরফর্ম 0.11 0.12 এর সাথে সামঞ্জস্যপূর্ণ নয়, তাই আপনাকে প্রথমে এটি আপগ্রেড করতে হবে।

terraform init
terraform 0.12upgrade

যদি আপনার টেরাফর্ম কোডটি অন্য টেরাফর্ম মডিউলগুলি কল করছে, দয়া করে নিশ্চিত করুন যে আপনি এই টেরারফর্ম মডিউলগুলিকেও 0.12 তে আপগ্রেড করেছেন।


3
হ্যাঁ, আমি কোডটি আপগ্রেড করেছি। আমি তবুও ত্রুটিগুলি পেয়েছিলাম।
কেভিন বার্ক

কেবল স্পষ্ট করে বলার জন্য, মডিউলগুলি আপগ্রেড করার অর্থ মডিউলগুলিতে একই একই 2 টি কমান্ড চালানো যেমন .terraform / মডিউল / <মডুল_নাম>
কিম সান্ট

4

মার্টিন অ্যাটকিন্সের টেরাফর্ম-ক্লিন-সিনট্যাক্স কোডটি ব্যবহার করা যেতে পারে (ধন্যবাদ কেভিন বার্কের জন্য ক্লু

আমি নির্লজ্জভাবে এটি ব্যবহার করেছি এবং ডকারের পাত্রে প্যাকেজ করেছি যাতে এটি সহজেই লিনাক্স_আমডি 64 মেশিনে চালানো যায়, যেমন ম্যাকোস:

https://github.com/NoLedgeTech/terraform-clean-syntax-docker

TL&DR (সতর্কতা - এটি আপনার টিএফ ফাইলগুলিকে জায়গায় আপডেট করবে):

docker pull pniemiec/terraform-clean-syntax-docker
cd <DIRECTORY_WITH_TF_FILES>
terraform init
terraform plan    # This shows a lot of warnings
docker run --rm -v $(pwd):/code -t pniemiec/terraform-clean-syntax-docker
terraform plan    # This does not show a lot of warnings :sweat_smile:

এই সরঞ্জামটি সহায়ক ছিল, তবে মনে রাখবেন যে এটি অ্যারেগুলির মধ্যে মূল্য নির্বিঘ্নিত করে না (উদাঃ সাবনেট_আইডি)। তার জন্য, আমাকে সাবধানতার সাথে একটি রেজেক্স সাবস্টিটিউশন প্রয়োগ করতে ফিরে যেতে "\$\{([^}"]+)\}"হয়েছিল: এখানে-নথিগুলিতে বিভাজনের কারণে এটি অন্ধভাবে প্রয়োগ করা যায় না can't
ট্রেভর রবিনসন

2

এই সরঞ্জামটি স্বয়ংক্রিয়ভাবে আপনার জন্য শুরু এবং শেষের উদ্ধৃতি এবং ধনুর্বন্ধনীগুলি ছড়িয়ে দেবে, যা সতর্কতাগুলিকে সংশোধন করে: https://github.com/apparentlymart/terrafor-clean-syntax

go get github.com/apparentlymart/terraform-clean-syntax
terraform-clean-syntax .

প্রাপ্তি:panic: didn't find any token of type TokenOBrack
স্প্যানকি

0

আমি এই ইন্টারপোলেশন সিনট্যাক্সটি সরাতে নোটপ্যাড ++ ব্যবহার করেছি।

Regex:

^(.*)\${(.*)}

প্রতিস্থাপন:

\1\2 

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.