Azure App Service is a Platform as a Service (PaaS) that is used to build, deploy, and scale enterprise-grade applications such as web apps, mobile apps, logic apps, API apps, and function apps. It supports multiple programming languages and frameworks such as NET, .NET Core, Java, Ruby, Node.js, PHP, Python.
From a developers perspective Azure App Service provides a great platform to develop, deploy and scale applications. However, when it comes to production environments Infrastructure as code (IaC) comes in handy. Terraform is an open-source IaC tool with a consistent CLI that lets you write infrastructure as code using declarative configuration files and also, manage, plan and apply changes to infrastructure versions to reach the required configuration state.
Terraform is a good choice as it reduces manual human error by codifying the application infrastructure. Terraform manages infrastructure across more than 300 public clouds and it provides a reusable, cost-effective, and consistent environment that solves dependencies and version controls. In this article, we will take you through the process of deploying a web app in Azure App Service using Terraform.
To deploy the web app in Azure App Service using Terraform, here are the steps we need to follow:
Create the Resource Group:
The first step is to create a resource group using the following terraform code. Any resource that is created must be created within the resource group
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "resource_group" {
name = "app-service-rg"
location = "East US"
}
Create App Service plan and deploy web app
The App Service plan defines the capacity and resources to be shared among one or more app services that are assigned to that plan. Azure WebApp must be associated with an App Service Plan as it specifies the computing resources that are required for the web app to function. The following code creates an app service plan.
resource "azurerm_app_service_plan" "app_service_plan" {
name = "example-appserviceplan"
location = azurerm_resource_group.resource_group.location
resource_group_name = azurerm_resource_group.resource_group.name
sku {
tier = "Standard"
size = "S1"
}
}
And add code for creating app service. Finally, the terraform file looks like the below
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "resource_group" {
name = "app-service-rg"
location = "East US"
}
resource "azurerm_app_service_plan" "app_service_plan" {
name = "myappservice-plan"
location = azurerm_resource_group.resource_group.location
resource_group_name = azurerm_resource_group.resource_group.name
sku {
tier = "Standard"
size = "S1"
}
}
resource "azurerm_app_service" "app_service" {
name = "mywebapp-453627 "
location = azurerm_resource_group.resource_group.location
resource_group_name = azurerm_resource_group.resource_group.name
app_service_plan_id = azurerm_app_service_plan.app_service_plan.id
#(Optional)
site_config {
dotnet_framework_version = "v4.0"
scm_type = "LocalGit"
}
#(Optional)
app_settings = {
"SOME_KEY" = "some-value"
}
}
Now, we should run the following command to initiate terraform.
Command: terraform init
To create an execution plan, we should run the terraform plan command
Command: terraform plan -out appservice.tfplan
To apply the plan, run the following command
Command: terraform apply ” appservice.tfplan “
We can verify the app service created in the specified app service plan and resource group by checking in the Azure portal
Hope you found this article useful. Stay tuned for more articles coming up on Azure App Service and Terraform.
Share this:
CloudIQ is a leading Cloud Consulting and Solutions firm that helps businesses solve today’s problems and plan the enterprise of tomorrow by integrating intelligent cloud solutions. We help you leverage the technologies that make your people more productive, your infrastructure more intelligent, and your business more profitable.
LATEST THINKING
INDIA
Chennai One IT SEZ,
Module No:5-C, Phase ll, 2nd Floor, North Block, Pallavaram-Thoraipakkam 200 ft road, Thoraipakkam, Chennai – 600097
© 2024 CloudIQ Technologies. All rights reserved.
Get in touch
Please contact us using the form below
USA
INDIA