Terraform
Terraform(英語) は、開発者と運用チームが手動設定ではなく宣言型構成ファイルを使用してクラウドのリソースとインフラストラクチャを定義、管理、プロビジョニングできるようにする、インフラストラクチャアズコードツールです。
Terraform を使用すると、仮想マシン、ネットワーク、ストレージなどのインフラストラクチャリソースをコードで記述できます。 Terraform は、これらのリソースを自動的に作成および管理します。 このアプローチにより、インフラストラクチャのバージョン管理、レビュー、再現が容易になり、開発、テスト、本番環境全体で一貫性のある環境を維持できるようになります。
Terraform および HCL プラグインをインストールする
この機能は、インストールして有効にする必要がある Terraform と HCL(英語) プラグインに依存しています。
Ctrl+Alt+S を押して設定を開き、 を選択します。
マーケットプレース タブを開き、 Terraform と HCL プラグインを見つけて、 インストール をクリックします (プロンプトが表示されたら、IDE を再起動します)。
Terraform 実行パスを指定する
実行構成を使用して IDE から Terraform コマンドを実行するには、マシンに Terraform がインストールされている必要があります。
Ctrl+Alt+S を押して設定を開き、 を選択します。
ほとんどの場合、DataGrip は Terraform 実行ファイルへのパスを自動的に検出します。 IDE が実行ファイルのバージョンとパスを検出しない場合は、 検出とテスト をクリックしてください。
マシンに Terraform がインストールされていない場合は、 インストール をクリックします。

必要に応じて、 Terraform 実行可能パス フィールドに Terraform へのパスを手動で指定できます。
Terraform ファイルの作成
DataGrip は複数の Terraform ファイル種別のために事前設定済みのテンプレートを提供します。 プロジェクト ツールウィンドウで、ディレクトリを右クリックし、 を選択します。 これにより、使用可能な Terraform ファイルテンプレートから選択できるダイアログが開きます。

ファイル拡張子 | ファイルテンプレート | 説明 |
|---|---|---|
.tf | 構成設定 | Terraform 構成ファイル。 |
.tfcomponent.hcl | コンポーネント | Terraform コンポーネントファイル。 |
.tfdeploy.hcl | Deployment | Terraform デプロイファイル。 |
.tftest.hcl | テスト | Terraform テストファイル。 |
Terraform の構成には、複数の環境や相互接続されたコンポーネントが含まれることがよくあります。 セットアップは Terraform ワークスペース や Terraform スタック として整理でき、どちらも DataGrip でサポートされています。
Terraform スタック
Terraform スタックは、 .tfstack.hcl 、 .tfcomponent.hcl 、 .tfdeploy.hcl 拡張機能を使用します。
DataGrip はスタック専用構成要素に対してコーディング支援を提供します。 IDE はスタックルートブロックやそのプロパティに対する補完、必須プロパティの自動挿入、未指定プロパティのハイライトを実施します。
Terraform テスト
DataGrip はインフラストラクチャコードのテスト用に Terraform Test Frameworkをサポートします。
DataGrip は Terraform テストファイル( .tftest.hcl )や、テストから参照可能な再利用可能なモック定義( .tfmock.hcl )に対してコーディング支援を提供します。
Terraform テンプレートファイル
DataGrip は、通常 .tftpl 拡張子を使う Terraform テンプレートファイルをサポートします。
ライブテンプレートを使用するには、Terraform テンプレートファイルに if または for と入力し始めます。

テンプレートファイルへ移動
Terraform ファイルでは、 templatefile(英語) 関数を使用してテンプレートを挿入できます。 DataGrip を使用すると、Terraform ファイルからテンプレートファイルへ素早く移動できます。
Terraform ファイルで、
templatefile関数を見つけます。キャレットをテンプレートファイル名に置き、 Ctrl+B を押します。
テンプレートデータの言語を選択
テンプレートファイルの拡張子 (file.<lang>.tftpl) で言語が指定されている場合、この言語がデータ言語として使用されます。 例: file.js.tftpl では、JavaScript が使用されます。 データ言語が指定されていない場合 (たとえば、 file.tftpl )、テンプレートファイルはプレーンテキストとして認識されます。
ファイル構文が適切に認識されるように、データ言語を選択したり(または検出済みの言語を変更したり)できます。
エディターでファイルタブを右クリックし、 <Language> テンプレートデータ言語を次のように変更する (たとえば、 JavaScript テンプレートデータ言語を次のように変更する または プレーンテキストテンプレートのデータ言語 を) を選択します。
または、ファイル内の Alt+Enter (コンテキストアクションの表示) を押して、 テンプレートデータ言語の選択 を選択します。
開いた言語リストから、言語を選択します。
Terraform 変数
Terraform 変数定義ファイルは一般的に .tfvars 拡張子を使用します。 これらのファイルを使って、Terraform 構成で宣言された変数に値を提供します。
Terraform ファイルの編集
IDE は、コアとなる Terraform 要素とプロバイダ定義の概念に関するスマートなコードインサイトを提供することで、生産性を維持し、インフラストラクチャコードをより迅速に、より少ない注意散漫で記述できるように支援します。 これには、次の機能が含まれます。
設定 ダイアログ (Ctrl+Alt+S) の ページと ページで色設定をカスタマイズできます。
DataGrip は Terraform ファイル内で、既知のプロバイダ、プロバイダ関数、リソース、データソース、アクション、引数などの補完を提供します。

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

ページの 設定 ダイアログ (Ctrl+Alt+S) で、Terraform の行全体コード補完を無効にすることができます。
リファクタリング
要素とそのすべての使用箇所の名前を変更するには、 Shift+F6 を押します。
構造 ツールウィンドウを使用して、Terraform ファイルをすばやくプレビューおよび移動します。

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

詳細については、 Shift+F1 を押して、Terraform レジストリ (このドキュメントのソース) を開くこともできます。
Terraform インスペクションを利用すると、重複、競合、非推奨、欠落している要素、未解決の参照、不明なリソースなどを検出できます。

の 設定 ダイアログ (Ctrl+Alt+S) で、すべての Terraform、インスペクションを確認できます。
コーディング支援には、ブレースマッチング Ctrl+Shift+M 、コードの折りたたみ Ctrl+NumPad +/Ctrl+NumPad - 、行コメントの追加 Ctrl+/ およびブロックコメントの追加 Ctrl+Shift+/ 、そして Terraform ファイルへの コピーライトテキストの挿入も含まれます。
Terraform を実行
Terraform と HCL プラグインは、Terraform 専用の実行構成を提供します。 これらの実行構成を使用すると、引数の追加や環境変数の受け渡しなど、 terraform コマンドの実行をカスタマイズできます。
ガターアイコンを使用して Terraform を実行する
Terraform ファイルで、ガターの
をクリックします。
開いたウィンドウで、実行プランを作成する場合は プラン を選択し、すでに Terraform プランがありそれを適用する場合は 適用 を選択します。

このディレクトリに対して Terraform 初期化手順が実行されていない場合は、 実行 ガターアイコンに警告サインが表示されます。 この場合、DataGrip は 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 コードを再フォーマットする
DataGrip を利用して Terraform ファイルにコードスタイルを適用できます。 DataGrip にはフォーマットツールが 2 つ含まれています:
Terraform フォーマッタを使用する
Terraform フォーマットツール (terraform fmt) は Terraform コードスタイル(英語)に基づいています。 .tf および .tfvars ファイルに適用されます。
Terraform フォーマットツールを使用するには、 Terraform をインストールするが必要です。
メインメニューで へ移動します。
または、 Ctrl+Alt+Shift+F を押します。
Terraform フォーマッター terraform fmt がファイル全体に適用されるのに対し、 DataGrip フォーマッターは選択したコード部分にも適用できます。
DataGrip フォーマッタを使用する
DataGrip フォーマッターは、 Terraform と HCL プラグインによって提供される DataGrip コードスタイルに基づいています。 このコードスタイルは、IDE 設定の でカスタマイズできます。
.tf および .tfvars に加えて、 .hcl ファイルにも適用されます。
ファイルを再度フォーマットするには、エディターでファイルを開き、メインメニューで に移動します。 または、 Ctrl+Alt+Shift+L を押します。
コードの一部を再フォーマットするには、コードの一部を選択し、メインメニューで に移動します。 または、 Ctrl+Alt+L を押します。
Terraform プロバイダーのメタデータをリフレッシュ
Terraform と HCL プラグインには特定のバージョンのプロバイダーメタデータが付属しており、既知のプロパティやインスペクションの補完などのコーディング支援が可能になります。
プロジェクトで異なるプロバイダーバージョンを使用する場合 (たとえば、 required_providers ブロックで変更した後)、 terraform init を実行してプロジェクトを初期化します。
で ローカルメタデータを自動的に構築するオプションが有効になっている場合、DataGrip はローカルプロバイダーのメタデータを自動的に再生成します。 このオプションが無効になっている場合は、メタデータを手動でリフレッシュできます。
プロバイダーのメタデータを手動でリフレッシュする
プロジェクトを初期化した後、次のいずれかを実行します。
Terraform 構成ファイルを開き、エディター内の任意の場所を右クリックします。
プロジェクト ツールウィンドウ Alt+2 を開き、Terraform 構成ファイルを右クリックします。
コンテキストメニューから を選択します。

拡張設定
- Terraform ドキュメントを自動的にダウンロードする
標準で、DataGrip は Terraform のプロパティに関するクイックドキュメントを Terraform Registry からダウンロードします。 ネットワークやパフォーマンスに問題がある場合は無効化でき、その場合 DataGrip はメタデータ由来の説明を表示します。 こうした説明の提供可否はリソース開発者に依存します。
- ローカルメタデータを自動的に構築する
有効な場合、
terraform initを実行した後、DataGrip はローカルプロバイダーのメタデータを自動的に再生成します。 これにより、コーディング支援が構成ファイルで定義されたプロバイダーバージョンを使用するようになります。- 変数を深く検索する
Terraform で変数を使用すると、DataGrip はプロジェクト内すべての Terraform ファイルで変数定義をチェックします。 DataGrip でルートディレクトリ(
.terraform.lock.hclがあるディレクトリ)内のファイルのみ確認したい場合は、チェックボックスをオフにしてください。
Terraform コードスタイル設定
Terraform 固有のコードスタイル設定は で使用できます。
- 整形しながらプロパティの位置を揃える
プロパティとその値の揃え方を選択してください:イコール記号で揃える、値で揃える、または何も揃えない。
- 行コメンターのシンボル
Ctrl+/ を押したときに単一行コメントに使用するシンボルを選択します。
- 補完時にプロバイダーを自動的にインポートする
リソース名を入力したら、現在のファイルにプロバイダー要件を挿入します。
required_providersブロックが不足している場合は追加してください。- 整形に 'terraform/tofu fmt' を起動する
を実行する際に Terraform(または OpenTofu)フォーマッターを実行します。
