Terraform
terraform tool on LocalStack2 minute read
Introduction
Terraform is an Infrastructure-as-Code (IaC) tool that can deploy your full infrastructure with a few simple commands, in a reproducible manner. This guide will show you how to use it with LocalStack.
Getting started
This guide is designed for users who are new to LocalStack for Azure emulator and assumes basic knowledge of how Terraform works. We will demonstrate how to create an Azure resource group using Terraform.
Install the packages
Run the following command to install the required packages:
$ pip install azlocalYou now have access to the following LocalStack tools:
| CLI tool | LocalStack tool | Purpose |
|---|---|---|
| az | azlocal | Interact with Azure resources |
| azd | azdlocal | Deploy ARM/Bicep templates |
| terraform | tflocal | Deploy Terraform templates |
| func | funclocal | Deploy Azure Functions |
The LocalStack variants are wrappers around the existing tools, so you keep the full functionality of the original tool - it will just redirect all commands to the running LocalStack Emulator.
Terraform configuration
Create the following two files:
A Terraform template with the provider information called provider.tf:
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=4.14.0"
}
}
}
provider "azurerm" {
features {}
subscription_id = "00000000-0000-0000-0000-000000000000"
}
A Terraform file that contains the resource group information called main.tf:
resource "random_uuid" "uuid" {}
resource "azurerm_resource_group" "rg" {
name = "rg-hello-tf-${random_uuid.uuid.result}"
location = "westeurope"
}
Deploy Terraform
First, lets: login to Azure:
azlocal loginNow that we’re logged in, we can deploy this infrastructure using the tflocal tool, using the wellknown Terraform commands.
First initialize the repository, and download the specified provider:
tflocal initSecond, apply (create) the specified resources:
tflocal applyThe tflocal tool will now create the resource group.
You can verify that the resource exist by using the azlocal tool:
azlocal group list
The template shown here is very basic, but tflocal can be used to deploy any other resource that the LocalStack Azure Emulator supports.
Happy deploying!