Azure Terraform Visual Studio Code 拡張機能のインストール
Terraform を使用すると、クラウド インフラストラクチャの定義、プレビュー、およびデプロイを行うことができます。 Terraform を使用する際は、HCL 構文を使って構成ファイルを作成します。 HCL 構文では、Azure などのクラウド プロバイダーと、クラウド インフラストラクチャを構成する要素を指定できます。 構成ファイルを作成したら、"実行プラン" を作成します。これにより、インフラストラクチャの変更をデプロイ前にプレビューすることができます。 変更を確認したら、実行プランを適用してインフラストラクチャをデプロイします。
Visual Studio Code の Terraform 拡張機能を使用すると、エディターから Terraform を操作できます。 この拡張機能を使用して、Terraform 構成の作成、テスト、実行を行うことができます。
この記事では、次のことについて説明します。
- Azure Terraform Visual Studio Code 拡張機能のインストール
- 拡張機能を使用して Azure リソース グループを作成する
- リソース グループが作成されたことを確認する
- 拡張機能を使用したテストが完了したら、リソース グループを削除する
1. 環境を構成する
- Azure サブスクリプション:Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
Terraform の構成: まだ行っていない場合は、次のいずれかのオプションを使用して Terraform を構成します。
- Node.js をインストールします。
2. Azure Terraform Visual Studio Code 拡張機能をインストールする
Visual Studio Code を起動します。
左側のメニューから [拡張機能] を選択し、検索テキスト ボックスに
Azure Terraform
と入力します。拡張機能の一覧から、
Azure Terraform
拡張機能を見つけます。 これは、拡張機能の一覧の先頭に表示されているはずです。拡張機能がまだインストールされていない場合は、拡張機能の [インストール] オプションを選択します。
重要なポイント:
- Azure Terraform 拡張機能の [インストール] を選択すると、Visual Studio Code によって Azure アカウントの拡張機能が自動的にインストールされます。
- Azure アカウントは、Azure Terraform 拡張機能の依存関係ファイルです。 このファイルは、Azure および Azure 関連のコード拡張機能に対する認証に使用されます。
拡張機能のインストールを確認するには、検索テキスト ボックスに
@installed
と入力します。 Azure Terraform 拡張機能と Azure アカウント拡張機能の両方が、インストール済み拡張機能の一覧に表示されます。
お使いの Cloud Shell 環境でサポートされているすべての Terraform コマンドを、Visual Studio Code 内から実行できるようになりました。
3. Terraform コードを実装する
サンプルの Terraform コードをテストするディレクトリを作成し、それを現在のディレクトリにします。
providers.tf
という名前のファイルを作成し、次のコードを挿入します。terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
main.tf
という名前のファイルを作成し、次のコードを挿入します。resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { location = var.resource_group_location name = random_pet.rg_name.id }
プロジェクト変数を格納する
variables.tf
という名前のファイルを作成し、次のコードを挿入します。variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." }
プロジェクト変数を格納する
outputs.tf
という名前のファイルを作成し、次のコードを挿入します。output "resource_group_name" { value = azurerm_resource_group.rg.name }
4. コードを Cloud Shell にプッシュする
[表示] メニューの [コマンド パレット] を選択します。
[コマンド パレット] テキスト ボックスで
Azure Terraform: Push
の入力を開始し、表示されたら選択します。[OK] を選択して、Cloud Shell を開くことを確認します。
重要なポイント:
- 構成の
azureTerraform.files
設定に定義されているフィルターを満たすワークスペース ファイルが Cloud Shell にコピーされます。
- 構成の
5. Visual Studio Code 内で Terraform を初期化する
[表示] メニューの [コマンド パレット] を選択します。
[コマンド パレット] テキスト ボックスで
Azure Terraform: Init
の入力を開始し、表示されたら選択します。重要なポイント:
- このオプションを選択することは、コマンド ラインから terraform init を実行して Terraform デプロイメントを初期化するのと同じです。
- このコマンドによって、Azure リソース グループを作成するために必要な Azure モジュールがダウンロードされます。
プロンプトに従って、サポートされている最新バージョンの nodejs など、依存関係をインストールします。
既定の Azure サブスクリプションで Cloud Shell を初めて使用する場合は、画面の指示に従って環境を構成してください。
6. Visual Studio Code 内で Terraform 実行プランを作成する
[表示] メニューの [コマンド パレット] を選択します。
[コマンド パレット] テキスト ボックスで
Azure Terraform: Plan
の入力を開始し、表示されたら選択します。重要なポイント:
- このコマンドにより terraform plan が実行され、現在のディレクトリ内の Terraform 構成ファイルから実行プランが作成されます。
7. Visual Studio Code 内で Terraform 実行プランを適用する
[表示] メニューの [コマンド パレット] を選択します。
[コマンド パレット] テキスト ボックスで
Azure Terraform: Apply
の入力を開始し、表示されたら選択します。確認を求めるダイアログが表示されたら、
yes
と入力して<Enter>
を押します。
8. 結果を確認する
[表示] メニューの [コマンド パレット] を選択します。
[コマンド パレット] テキスト ボックスで
Azure: Open Bash in Cloud Shell
の入力を開始し、表示されたら選択します。az group show を実行して、リソース グループを表示します。
<resource_group_name>
プレースホルダーを、Terraform 実行プランの適用後に表示されるリソース グループの、ランダムに生成された名前に置き換えます。
az group show --name <resource_group_name>
9.リソースをクリーンアップする
[表示] メニューの [コマンド パレット] を選択します。
[コマンド パレット] テキスト ボックスで
Azure Terraform: Destroy
の入力を開始し、表示されたら選択します。確認を求めるダイアログが表示されたら、
yes
と入力して<Enter>
を押します。Terraform によって新しいリソース グループが正常に破棄されたことを確認するには、「結果を確認する」セクションの手順を実行します。
Azure での Terraform のトラブルシューティング
Azure で Terraform を使用する場合の一般的な問題のトラブルシューティング