Terraform
Terraform(英語) は、開発者と運用チームが手動設定ではなく宣言型構成ファイルを使用してクラウドのリソースとインフラストラクチャを定義、管理、プロビジョニングできるようにする、インフラストラクチャアズコードツールです。
Terraform を使用すると、仮想マシン、ネットワーク、ストレージなどのインフラストラクチャリソースをコードで記述できます。 Terraform は、これらのリソースを自動的に作成および管理します。 このアプローチにより、インフラストラクチャのバージョン管理、レビュー、再現が容易になり、開発、テスト、本番環境全体で一貫性のある環境を維持できるようになります。
Terraform の構成には、複数の環境や相互接続されたコンポーネントが含まれることがよくあります。 設定は Terraform ワークスペースと Terraform スタックとして構成でき、どちらも PhpStorm でサポートされています。
IDE は、コアとなる Terraform 要素とプロバイダ定義の概念に関するスマートなコードインサイトを提供することで、生産性を維持し、インフラストラクチャコードをより迅速に、より少ない注意散漫で記述できるように支援します。 これには、次の機能が含まれます。
設定 ダイアログ (Ctrl+Alt+S) の ページと ページで色設定をカスタマイズできます。
ページの 設定 ダイアログ (Ctrl+Alt+S) で、Terraform に関連するコードスタイル設定にアクセスできます。
プロジェクト ツールウィンドウで、ディレクトリを右クリックして 新規 を選択し (または Alt+Insert を押し)、次に Terraform ファイル を選択します。 これにより、使用可能な Terraform ファイルテンプレートから選択できるダイアログが開きます。

Terraform ファイルテンプレートを変更するには、 設定 ダイアログ (Ctrl+Alt+S) を開き、 に移動します。
PhpStorm は、既知のプロバイダー、プロバイダー関数、リソース、データソース、引数など、Terraform ファイル内の補完機能を提供します。

プロバイダ要件を設定する際、IDE は
required_providersブロック内のソースやバージョンなどの関連属性とともに、利用可能なプロバイダを提案します。 これにより、Terraform 仕様に従って要件を定義できます。 プロバイダ要件の詳細については、 Terraform のドキュメント(英語)を参照してください。Terraform スタックファイルでは、PhpStorm がスタックルートブロックとそのプロパティの補完機能を提供します。 必要なプロパティは自動的に挿入され、不足しているプロパティは IDE によってハイライトされます。
.tfcomponent.hcl ファイルでは、PhpStorm はプロバイダー宣言や構成、
componentおよびstackブロックで使用されるモジュール変数やプロバイダーの補完をサポートします。ローカルで実行されるディープラーニングモデルを使用して、コード行全体を補完します。

ページの 設定 ダイアログ (Ctrl+Alt+S) で、Terraform の行全体コード補完を無効にすることができます。
リソース、変数、ローカル、データソースの場合、PhpStorm はインレイヒントの形式でそれらの使用回数を表示します。 インレイヒントをクリック (または Ctrl+B を押す) すると、そのすべての使用箇所が表示され、そこに移動します。

の 設定 ダイアログ (Ctrl+Alt+S) で、使用状況のインレイヒントを無効化、有効化、位置変更できます。
重複、競合、非推奨、欠落している要素、未解決の参照、不明なリソースなどを検出できます。

の 設定 ダイアログ (Ctrl+Alt+S) で、すべての Terraform、インスペクションを確認できます。
要素とそのすべての使用箇所の名前を変更するには、 Shift+F6 を押します。
ファイル監視は、ファイルを保存するたびに Terraform コマンド(例:
terraform fmt)を実行できます。 この機能を有効にするには、 File Watchers(英語) プラグインをインストールしてください。構造 ツールウィンドウを使用して、Terraform ファイルをすばやくプレビューおよび移動します。

ツールウィンドウは、 または Alt+7 を押すことで使用できます。
引数にマウスカーソルを合わせると、その引数のクイックドキュメントが表示されます。

詳細については、 Shift+F1 を押して、Terraform レジストリ (このドキュメントのソース) を開くこともできます。
コーディング支援には、ブレースマッチング Ctrl+Shift+M 、コードの折りたたみ Ctrl+NumPad +/Ctrl+NumPad - 、行コメントの追加 Ctrl+/ やブロックコメントの追加 Ctrl+Shift+/ 、および Terraform ファイルへの コピーライトテキストの挿入も含まれます。
Terraform と HCL プラグインをインストールする
この機能は、インストールして有効にする必要がある Terraform と HCL(英語) プラグインに依存しています。
Ctrl+Alt+S を押して設定を開き、 を選択します。
Marketplace タブを開き、 Terraform と HCL プラグインを見つけて、 インストールする をクリックします (プロンプトが表示されたら、IDE を再起動します)。
Terraform 実行パスを指定する
実行構成を使用して IDE から Terraform コマンドを実行するには、マシンに Terraform がインストールされている必要があります。
Ctrl+Alt+S を押して設定を開き、 を選択します。
ほとんどの場合、PhpStorm は Terraform 実行可能ファイルへのパスを自動的に検出します。 IDE が実行ファイルのバージョンとパスを検出しない場合は、 検出とテスト をクリックしてください。
マシンに Terraform がインストールされていない場合は、 インストールする をクリックします。

必要に応じて、 Terraform 実行可能ファイルのパス フィールドに Terraform へのパスを手動で指定できます。
Terraform を実行
Terraform と HCL プラグインは、Terraform 専用の実行構成を提供します。 これらの実行構成を使用すると、引数の追加や環境変数の受け渡しなど、 terraform コマンドの実行をカスタマイズできます。
ガターアイコンを使用して Terraform を実行する
Terraform ファイルで、ガターの
をクリックします。
開いたウィンドウで、実行プランを作成する場合は プラン を選択し、すでに Terraform プランがありそれを適用する場合は 適用 を選択します。

このディレクトリに対して Terraform 初期化手順が実行されていない場合は、 実行 ガターアイコンに警告サインが表示されます。 この場合、PhpStorm は、 terraform plan または terraform apply を実行する前に terraform init コマンドを実行することを提案します。
ガターアイコンから Terraform を実行すると、一時的な実行構成が作成されます。 実行ウィジェットで をクリックし、 構成の保存 を選択すると、永続的な構成として保存できます。
Terraform 実行構成を手動で作成する
に進みます。 または、 Alt+Shift+F10 を押してから 0 を押します。
新規構成の追加 ボタン (
) をクリックし、 Terraform の入力を開始します。

実行構成のタイプを選択します:
テラフォーム初期化 は
terraform initコマンドを実行しますTerraform 検証 は
terraform validateコマンドを実行しますTerraform プラン は
terraform planコマンドを実行しますTerraform 適用 は
terraform applyコマンドを実行しますTerraform 破壊 は
terraform destroyコマンドを実行しますTerraform は、他の Terraform コマンドを提供することができます。
コマンド リストで、Terraform コマンドを選択します。 このリストに含まれていないコマンドを実行するには、 カスタム を選択し、 プログラム引数 フィールドに指定します。
実行構成に名前を付け、必要に応じて作業ディレクトリを変更します。 環境変数を使用する場合は、 環境変数 フィールドに指定するか、ファイルを選択してそこから変数を使用します。
Terraform プロバイダーのメタデータをリフレッシュ
Terraform と HCL プラグインには特定のバージョンのプロバイダーメタデータが付属しており、既知のプロパティやインスペクションの補完などのコーディング支援が可能になります。
プロジェクトで異なるプロバイダーバージョンを使用する場合 (たとえば、 required_providers ブロックで変更した後)、 terraform init を実行してプロジェクトを初期化します。
で ローカルメタデータを自動的にビルドするオプションが有効化されている場合、PhpStorm はローカルプロバイダーのメタデータを自動的に再生成します。 このオプションが無効になっている場合は、メタデータを手動でリフレッシュできます。
プロバイダーのメタデータを手動でリフレッシュする
プロジェクトを初期化した後、次のいずれかを実行します。
Terraform 構成ファイルを開き、エディター内の任意の場所を右クリックします。
プロジェクト ツールウィンドウ Alt+1 を開き、Terraform 構成ファイルを右クリックします。
コンテキストメニューから を選択します。

Terraform コードを再フォーマットする
PhpStorm を使用すると、Terraform ファイルにコードスタイルを適用できます。 PhpStorm にはフォーマットツールが 2 つ含まれています:
Terraform フォーマッタを使用する
Terraform フォーマットツール (terraform fmt) は Terraform コードスタイル(英語)に基づいています。 .tf および .tfvars ファイルに適用されます。
Terraform フォーマットツールを使用するには、 Terraform をインストールするが必要です。
メインメニューで へ移動します。
または、 Ctrl+Alt+Shift+F を押します。
Terraform フォーマッター terraform fmt はファイル全体に適用されますが、 PhpStorm フォーマッターは選択したコード部分に適用することもできます。
PhpStorm フォーマッタを使用する
PhpStorm フォーマッターは、PhpStorm コードスタイルが Terraform と HCL プラグインによって提供されるものに基づいています。 このコードスタイルは、IDE 設定の でカスタマイズできます。
.tf および .tfvars に加えて、 .hcl ファイルにも適用されます。
ファイルを再度フォーマットするには、エディターでファイルを開き、メインメニューで に移動します。 または、 Ctrl+Alt+Shift+L を押します。
コードの一部を再フォーマットするには、コードの一部を選択し、メインメニューで に移動します。 または、 Ctrl+Alt+L を押します。
Terraform テンプレートファイル
PhpStorm は、通常 .tftpl 拡張子を使用する Terraform テンプレートファイルのサポートを提供します。 テンプレートファイルのサポートには、コーディング支援 (構文のハイライト、インスペクションなど)、テンプレートファイルへのナビゲーション、ライブテンプレートが含まれます。
ライブテンプレートを使用するには、Terraform テンプレートファイルに if または for と入力し始めます。

テンプレートファイルへ移動
Terraform ファイルでは、 templatefile(英語) 関数を使用してテンプレートを挿入できます。 PhpStorm を使用すると、Terraform ファイルからテンプレートファイルにすばやく移動できます。
Terraform ファイルで、
templatefile関数を見つけます。キャレットをテンプレートファイル名に置き、 Ctrl+B を押します。
テンプレートデータの言語を選択
テンプレートファイルの拡張子 (file.<lang>.tftpl) で言語が指定されている場合、この言語がデータ言語として使用されます。 例: file.js.tftpl では、JavaScript が使用されます。 データ言語が指定されていない場合 (たとえば、 file.tftpl )、テンプレートファイルはプレーンテキストとして認識されます。
ファイル構文が期待通り認識されるようにしたい場合は、データ言語を選択(または検出されたものを変更)できます。
エディターでファイルタブを右クリックし、 <Language> テンプレートデータ言語を次のように変更する (たとえば、 JavaScript テンプレートデータ言語を次のように変更する または プレーンテキストテンプレートデータ言語を次のように変更する を) を選択します。
または、ファイル内の Alt+Enter (コンテキストアクションの表示) を押して、 テンプレートデータ言語の選択 を選択します。
開いた言語リストから、言語を選択します。
拡張設定
- Terraform ドキュメントを自動的にダウンロードする
デフォルトでは、PhpStorm は Terraform プロパティのクイックドキュメントを Terraform レジストリからダウンロードします。 ネットワークやパフォーマンスに問題がある場合は無効化でき、その場合 PhpStorm は代わりにメタデータから説明を表示します。 そのような説明が利用可能かどうかはリソース開発者に依存します。
- ローカルメタデータを自動的にビルドする
有効化時、PhpStorm は
terraform init実行後、自動的にローカルプロバイダーのメタデータを再生成します。 これにより、コーディング支援が構成ファイルで定義されたプロバイダーバージョンを利用することが保証されます。- 変数を深く検索する
Terraform で変数を使用する場合、PhpStorm はプロジェクト内のすべての Terraform ファイルで変数定義をチェックします。 PhpStorm でルートディレクトリ(
.terraform.lock.hclがあるディレクトリ)内のファイルのみ確認したい場合は、チェックボックスをオフにしてください。
Terraform コードスタイル設定
Terraform 固有のコードスタイル設定は で使用できます。
- フォーマット中にプロパティを揃える
プロパティとその値の位置合わせ方法を選択してください: イコール記号で揃える、値で揃える、または何も揃えない。
- 行コメンターのシンボル
Ctrl+/ を押したときに単一行コメントに使用するシンボルを選択します。
- 補完時にプロバイダーを自動的にインポートする
リソース名を入力したら、現在のファイルにプロバイダー要件を挿入します。
required_providersブロックが不足している場合は追加してください。- 整形に 'terraform/tofu fmt' を起動する
呼び出し時に Terraform(または OpenTofu)フォーマッターを実行します。
OpenTofu
OpenTofu(英語) は、オープンソースでコミュニティ主導であり、Linux Foundation によって管理される Terraform のフォークです。
PhpStorm は、構文ハイライト、補完、インスペクションなど、OpenTofu ファイルのコーディング支援を提供します。 また、OpenTofu 専用の実行構成も用意されており、基本的には Terraform と同じですが、 tofu コマンドを使用します。

OpenTofu 実行可能パスを指定する
実行構成を使用して IDE から OpenTofu コマンドを実行するには、マシンに OpenTofu がインストールされている必要があります。
Ctrl+Alt+S を押して設定を開き、 を選択します。
ほとんどの場合、PhpStorm は OpenTofu 実行可能ファイルへのパスを自動的に検出します。 IDE が実行ファイルのバージョンとパスを検出しない場合は、 検出とテスト をクリックしてください。
マシンに OpenTofu がインストールされていない場合は、 インストールする をクリックします。

必要に応じて、 OpenTofu 実行可能ファイルのパス フィールドで OpenTofu へのパスを手動で指定できます。
テラグラント
Terragrunt (英語) は、Terraform および OpenTofu 用の軽量ラッパーであり、構造を改善し、コードの重複を減らすことで、複雑なインフラストラクチャ設定の管理に役立ちます。
PhpStorm は Terragrunt と Terragrunt Stack ファイルを認識し、コーディング支援を提供します。これにはルートブロック、プロパティ、関数、属性のコード補完や、新しい Terragrunt および Terragrunt Stack ファイルを作成するためのテンプレートも含まれます。
Terragrunt 実行可能パスを指定する
実行構成を使用して IDE から Terragrunt コマンドを実行するには、マシンに Terragrunt がインストールされている必要があります。
Ctrl+Alt+S を押して設定を開き、 を選択します。
ほとんどの場合、PhpStorm は Terragrunt 実行可能ファイルへのパスを自動的に検出します。 IDE が実行ファイルのバージョンとパスを検出しない場合は、 検出とテスト をクリックしてください。
マシンに Terragrunt がインストールされていない場合は、 インストールする をクリックします。

必要に応じて、 Terragrunt 実行可能パス フィールドで Terragrunt へのパスを手動で指定できます。