main.tfに変更を加えることなく、Terraformは既存のセキュリティグループルールを追加します。 Terrafrom新しいルールとしてmain.tfの各SGのルールを識別します(ただし、これらのルールは、前の実行の結果として、AWSに既にある)と私はコマンドを実行するときにそれらを再作成してみてください(terrafrom計画/適用)同じセキュリティグループルールを再作成する "terrafrom apply/plan"を実行するたびに
このテラフォームの出力は、コマンドに
~ module.application_sg.aws_security_group.security_group
ingress.#: "3" => "1"
ingress.2358522502.cidr_blocks.#: "1" => "0"
ingress.2358522502.cidr_blocks.0: "20.0.1.0/24" => ""
ingress.2358522502.from_port: "443" => "0"
ingress.2358522502.protocol: "tcp" => ""
ingress.2358522502.security_groups.#: "0" => "0"
ingress.2358522502.self: "false" => "false"
ingress.2358522502.to_port: "443" => "0"
ingress.3250959853.cidr_blocks.#: "1" => "0"
ingress.3250959853.cidr_blocks.0: "20.0.1.0/24" => ""
ingress.3250959853.from_port: "8080" => "0"
ingress.3250959853.protocol: "tcp" => ""
ingress.3250959853.security_groups.#: "0" => "0"
ingress.3250959853.self: "false" => "false"
ingress.3250959853.to_port: "8080" => "0"
ingress.753360330.cidr_blocks.#: "0" => "0"
ingress.753360330.from_port: "0" => "0"
ingress.753360330.protocol: "-1" => "-1"
ingress.753360330.security_groups.#: "0" => "0"
ingress.753360330.self: "true" => "true"
ingress.753360330.to_port: "0" => "0"
+ module.rule1.aws_security_group_rule.rule
cidr_blocks.#: "1"
cidr_blocks.0: "20.0.1.0/24"
from_port: "80"
protocol: "tcp"
security_group_id: "sg-17c13770"
self: "false"
source_security_group_id: "<computed>"
to_port: "80"
type: "ingress"
を適用している。このルールは、すでに我々が環境に新しいルールを追加しようとしているとき、これは理解することは非常に困難であるとして、これを避けるために役立つone.Please存在しています。
しかし、私がterraform refreshコマンドを実行すると、変更は検出されません。これは、terraform状態ファイルと実際のインフラストラクチャが同じであることを意味します。 しかし、私がterraform applyまたはpalnを実行すると、以前のテラフォーム実行の結果として既に存在するセキュリティグループルールを追加しようとします。私が本当に新しいルールを追加したいとき、私は誤解や見つけにくい本当に新しく追加されたルールを教えてください – UtpMahesh
状態ファイルを見ると、それはまったく表示されますか?リフレッシュは、管理しているリソース(TFによって構築され、TFの外で変更されたELBの構成など)のリソースのTerraformのビューのみを更新します。それが状態ファイルに全くない場合、リフレッシュは役に立ちません。 – ydaetskcoR