使用 Terraform 模板创建应用服务应用

通过使用 Terraform 将应用部署到云中,开始使用 Azure 应用服务。 由于使用的是免费应用服务层,因此完成本快速入门不会产生费用。

使用 Terraform 可以在 Azure 中定义和创建完整的基础结构部署。 以用户可读格式生成 Terraform 模板,用于以一致且可重现的方式创建和配置 Azure 资源。 本文展示如何使用 Terraform 创建 Windows 应用。

先决条件

Azure 订阅:如果没有 Azure 订阅,请想创建一个试用版订阅,然后再开始。

配置 Terraform:如果尚未执行此操作,请使用以下选项之一配置 Terraform:

查看模板

本快速入门中使用的模板如下所示。 它在 Linux 上部署应用服务计划和应用服务应用,并部署来自 Azure 示例存储库的示例 Node.js“Hello World”应用。

# 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 = "chinaeast"
}

# 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
  https_only            = true
  site_config { 
    minimum_tls_version = "1.2"
  }
}

#  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             = "master"
  use_manual_integration = true
  use_mercurial      = false
}

该模板中定义了四个 Azure 资源。 下面提供了 Azure 提供程序 Terraform 注册表的链接,以获取更多详细信息和使用情况信息:

有关如何构造 Terraform 模板的详细信息,请参阅 Terraform Learn 文档

实现 Terraform 代码

Terraform 提供了许多用于管理、构建、部署和更新基础结构的功能。 以下步骤将指导你完成部署和销毁资源的过程。 文档和 Azure 上的 Terraform 文档提供了更多详细信息,如果 Terraform 是你的 Azure 基础结构策略的一部分,应查看这些文档。

  1. 创建用于测试和运行示例 Terraform 代码的目录,并将其设为当前目录。

    mkdir appservice_tf_quickstart
    cd appservice_tf_quickstart
    
  2. 创建名为 main.tf 的文件并插入上述代码。

    code main.tf
    
  3. 初始化 Terraform。

    terraform init
    
  4. 创建 Terraform 计划。

    terraform plan
    
  5. 预配 main.tf 配置文件中定义的资源(在提示符处输入 yes 确认操作)。

    terraform apply
    

验证部署

  1. 在 Azure 门户的主菜单上,选择“资源组”,并导航到使用上述模板创建的资源组。 它将命名为“myResourceGroup-”,后跟随机整数字符串。

  2. 现在,你将看到 Terraform 创建的所有资源(应用服务和应用服务计划)。

  3. 选择“应用服务”并导航到 url,验证是否已正确创建站点。 相反,你只需浏览到 http://<app_name>.chinacloudsites.cn/,其中应用名称为“webapp-”,后跟资源组中相同的随机整数字符串。

清理资源

如果不再需要资源,请删除资源组,或返回到终端/命令行并执行 terraform destroy,以删除与此快速入门关联的所有资源。

注意

可在此处找到更多 Azure 应用服务 Terraform 示例。 可在此处找到所有 Azure 服务的更多 Terraform 示例。