Partager via


Démarrage rapide : Créer une application App Service à l’aide d’un modèle Terraform

Commencez à utiliser Azure App Service en déployant une application dans le cloud via Terraform. Lorsque vous utilisez un niveau App Service gratuit, il n’y a aucun frais pour suivre ce guide de démarrage rapide.

Terraform vous permet de définir et de créer des déploiements d’infrastructure complets dans Azure. Vous créez des modèles Terraform dans un format lisible par l’homme qui créent et configurent des ressources Azure de manière cohérente et reproductible. Cet article vous montre comment créer une application à l’aide de Terraform.

Conditions préalables

Vérifier le modèle

Choisissez le modèle Linux ou Windows suivant pour créer un plan App Service et une application App Service. Linux crée un exemple d’application Node.js Hello World à partir du référentiel Exemples Azure . Le modèle de conteneur Windows crée un exemple d’application ASP.NET à partir de Microsoft Container Registry.

# 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
}

Le modèle définit les quatre ressources Azure suivantes. Pour plus d’informations sur l’utilisation et les informations d’utilisation, consultez le registreTerraform du fournisseur Azure.