Condividi tramite


Guida introduttiva: Creare un'app del servizio app con un modello Terraform

Introduzione al servizio app di Azure distribuendo un'app nel cloud tramite Terraform. Quando si utilizza un piano di servizio App gratuito, non ci sono costi per completare questa guida introduttiva.

Terraform consente di definire e creare distribuzioni complete dell'infrastruttura in Azure. I modelli Terraform vengono compilati in un formato leggibile che crea e configura le risorse di Azure in modo coerente e riproducibile. Questo articolo illustra come creare un'app usando Terraform.

Prerequisiti

Rivedere il modello

Scegli il seguente modello Linux o Windows per creare un piano di servizio per app e un'app di tale servizio. Linux creerà un'app di esempio Node.js Hello World dal repository Azure Samples . Il modello di contenitore di Windows creerà un'app di esempio ASP.NET dal Registro Contenitori Microsoft.

# Configure the Azure provider
terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 3.0.0"
    }
  }
  required_version = ">= 0.14.9"
}
provider "azurerm" {
  features {}
}

# Generate a random integer to create a globally unique name
resource "random_integer" "ri" {
  min = 10000
  max = 99999
}

# Create the resource group
resource "azurerm_resource_group" "rg" {
  name     = "myResourceGroup-${random_integer.ri.result}"
  location = "eastus"
}

# Create the Linux App Service Plan
resource "azurerm_service_plan" "appserviceplan" {
  name                = "webapp-asp-${random_integer.ri.result}"
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name
  os_type             = "Linux"
  sku_name            = "B1"
}

# Create the web app, pass in the App Service Plan ID
resource "azurerm_linux_web_app" "webapp" {
  name                  = "webapp-${random_integer.ri.result}"
  location              = azurerm_resource_group.rg.location
  resource_group_name   = azurerm_resource_group.rg.name
  service_plan_id       = azurerm_service_plan.appserviceplan.id
  depends_on            = [azurerm_service_plan.appserviceplan]
  https_only            = true
  site_config { 
    minimum_tls_version = "1.2"
    application_stack {
      node_version = "16-lts"
    }
  }
}

#  Deploy code from a public GitHub repo
resource "azurerm_app_service_source_control" "sourcecontrol" {
  app_id             = azurerm_linux_web_app.webapp.id
  repo_url           = "https://github.com/Azure-Samples/nodejs-docs-hello-world"
  branch             = "main"
  use_manual_integration = true
  use_mercurial      = false
}

Il modello definisce le quattro risorse di Azure seguenti. Per altri dettagli e informazioni sull'utilizzo, vedere Registro Terraform del provider di Azure.