Traffine I/O

日本語

2022-11-10

Terraform State Move

Terraform State Moveコマンド

terraform state mvコマンドは、Terraformエコシステムにおいてリソースの状態を管理するためのツールです。このコマンドは、構成ファイルで行われた変更に合わせて、Terraformのステートをリファクタリングまたは操作するために主に使用されます。

このコマンドは、通常、Terraformファイル内でのインフラストラクチャの論理構造が更新された場合に使用されます。例えば、リソースやモジュールの名前を変更したり、リソースを別のモジュールに移動したり、さらには異なるTerraformステート間でリソースを移動したりする場合があります。このような場合、標準のterraform applyを実行すると、リソースが削除されて再作成される可能性があり、これは破壊的で一般的に望ましくありません。terraform state mvコマンドは、これらのシナリオで安全にステートアイテムを移動させることができ、実際のリソースに影響を与えることなく操作することができます。

Terraform State Moveの構文

terraform state mvコマンドは、直感的な構文で提供されます。少なくとも2つの引数であるソースアドレスと宛先アドレスが必要です。以下にコマンドの基本的な構造を示します。

bash
$ terraform state mv [options] SOURCE DESTINATION

SOURCEDESTINATIONは、Terraformステート内のアイテムのアドレスを指します。これらのアドレスは、リソースまたはモジュールを指すことができます。例えば、aws_instanceという名前のリソースがexampleという名前である場合、アドレスはaws_instance.exampleとなります。

同じモジュール内でリソースを移動する例を考えてみます。

bash
$ terraform state mv aws_instance.old aws_instance.new

このコマンドでは、aws_instance.oldaws_instance.newに名前変更しています。

次に、モジュール間でリソースを移動する例を見てみます。

bash
$ terraform state mv module.old_module.aws_instance.example module.new_module.aws_instance.example

このコマンドでは、module.old_module.aws_instance.exampleが現在のインスタンスのアドレスであり、module.new_module.aws_instance.exampleがコマンド実行後のインスタンスの移動先のアドレスです。

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!