The VSCode Azure Terraform extension is designed to increase developer productivity authoring, testing and using Terraform with Azure. The extension provides terraform command support, resource graph visualization and CloudShell integration inside VSCode.
Requirements
This extension requires:
Terraform - If you are executing terraform commands in integrated teminal.
GraphViz - If you are using the visualize feature.
NOTE: Please make sure these requirements are in your PATH environment variable.
Features
The features in this extension support execution in integrated terminal mode or remotely using Azure Cloud Shell. Some features only run locally at this time and will require some local dependencies.
This extension supports the following features:
Terraform commands: init, plan, apply, validate, refresh and destroy.
Visualize the terraform module.
Commands
Open the Command Palette (Command+Shift+P on macOS and Ctrl+Shift+P on Windows/Linux) and type in one of the following commands:
Command
Description
Basic commands:
Azure Terraform: init
Azure Terraform: plan
Azure Terraform: apply
Azure Terraform: validate
Azure Terraform: refresh
Azure Terraform: destroy
Execute terraform command against the current project workspace.
If run with terminal set to Cloud Shell, will run the command in Cloud Shell.
Azure Terraform: visualize
Create a visual representation of the components of the module and save it in graph.png.
Azure Terraform: push
Push workspace files that meet the filter azureTerraform.files setting in your configuration to Cloud Shell.
Azure Terraform: Execute Test
Run one of the following test against the current module using a test container:
lint: This command will check the formating of the code of the Terraform module.
e2e: This command will deploy the current module with the settings specified in the .tfvars file, verify that the deployment pass the controls and destroy the resources that have been created.
Extension Settings
azureTerraform.terminal - Specifies terminal used to run Terraform commands. Valid settings are cloudshell or integrated.
azureTerraform.files - Indicates the files that should be synchronized to Azure CloudShell using the glob pattern string. By default **/*.{rb,sh,tf,tfvars,txt,yml}.
azureTerraform.test.imageName - Indicates the container to use to run the tests. By default: microsoft/terraform-test.
azureTerraform.test.aciName - Indicates the name of the Azure Container Instance to use for testing. By default: tf-test-aci.
azureTerraform.test.aciResourceGroup - Indicates the name of the Resource Group to use for the ACI instance. By default: tfTestResourceGroup.
azureTerraform.aciContainerGroup - Indicates the name of the Container Group that host the ACI instance. By default: tfTestContainerGroup
azureTerraform.test.location - Indicates the location where to deploy the test container instance. By default: westus.
VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more. If you would like to opt out of sending telemetry data to Microsoft, update the telemetry.enableTelemetry setting to false in the File -> Preferences -> Settings. Read our FAQ to learn more.