安装 Azure Terraform Visual Studio Code 扩展

使用 Terraform 可以定义、预览和部署云基础结构。 使用 Terraform 时,请使用 HCL 语法来创建配置文件。 利用 HCL 语法,可指定 Azure 这样的云提供程序和构成云基础结构的元素。 创建配置文件后,请创建一个执行计划,利用该计划,可在部署基础结构更改之前先预览这些更改。 验证了更改后,请应用该执行计划以部署基础结构。

Visual Studio Code Terraform 扩展让你能够从编辑器中使用 Terraform。 使用此扩展,你可以创作、测试和运行 Terraform 配置。

在本文中,学习如何:

  • 安装 Azure Terraform Visual Studio Code 扩展
  • 使用该扩展创建 Azure 资源组
  • 确认已创建资源组
  • 使用该扩展完成测试时,请删除资源组

1.配置环境

  • Azure 订阅:如果没有 Azure 订阅,请在开始之前创建一个免费帐户。

2. 安装 Azure Terraform Visual Studio Code 扩展

  1. 启动 Visual Studio Code。

  2. 从左侧菜单中,选择“扩展”,然后在搜索框输入 Azure Terraform

    Search Visual Studio Code extensions in Marketplace.

  3. 从扩展列表中找到 Azure Terraform 扩展。 (它应为列出的第一个扩展。)

  4. 如果尚未安装该扩展,请选择该扩展的“安装”选项

    要点

    • 选择“安装”以安装 Azure Terraform 扩展时,Visual Studio Code 会自动安装 Azure 帐户扩展
    • Azure 帐户是 Azure Terraform 扩展的依赖项文件。 此文件用于对 Azure 和 Azure 相关代码扩展进行身份验证。
  5. 若要确认扩展安装情况,请在搜索文本框中输入 @installed。 Azure Terraform 扩展和 Azure 帐户扩展都显示在已安装的扩展列表中。

    View installed Terraform extensions.

现即可在 Visual Studio Code 内的 Cloud Shell 环境中运行所有受支持的 Terraform 命令。

3. 实现 Terraform 代码

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

  2. 创建名为 providers.tf 的文件并插入下列代码:

    terraform {
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>3.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  3. 创建名为 main.tf 的文件并插入下列代码:

    resource "random_pet" "rg_name" {
      prefix = var.resource_group_name_prefix
    }
    
    resource "azurerm_resource_group" "rg" {
      location = var.resource_group_location
      name     = random_pet.rg_name.id
    }
    
  4. 创建名为 variables.tf 的文件来包含项目变量,并插入以下代码:

    variable "resource_group_location" {
      type        = string
      default     = "eastus"
      description = "Location of the resource group."
    }
    
    variable "resource_group_name_prefix" {
      type        = string
      default     = "rg"
      description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
    }
    
  5. 创建名为 outputs.tf 的文件来包含项目变量,并插入以下代码:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    

4. 将代码推送到 Cloud Shell

  1. 从“视图”菜单中,选择“命令面板…”

  2. 在“命令面板”文本框中,开始输入 Azure Terraform: Push 并在显示该内容时选择它。

  3. 选择“确定”以确认打开 Cloud Shell

    Confirm the opening of Cloud Shell.

    要点

    • 如果工作区文件满足配置中 azureTerraform.files 设置中定义的筛选器,请将其复制到 Cloud Shell。

5. 初始化 Visual Studio Code 中的 Terraform

  1. 从“视图”菜单中,选择“命令面板…”

  2. 在“命令面板”文本框中,开始输入 Azure Terraform: Init 并在显示该内容时选择它。

    要点

    • 选择此选项与从命令行运行 terraform init 相同,并初始化 Terraform 部署。
    • 此命令将下载创建 Azure 资源组所需的 Azure 模块。
  3. 按照提示安装任何依赖项,例如 nodejs 的最新支持版本。

  4. 如果在默认 Azure 订阅中首次使用 Cloud Shell,请按照提示配置环境。

6. 在 Visual Studio Code 中创建 Terraform 执行计划

  1. 从“视图”菜单中,选择“命令面板…”

  2. 在“命令面板”文本框中,开始输入 Azure Terraform: Plan 并在显示该内容时选择它。

    要点

    • 此命令运行 terraform 计划,从当前目录中的 Terraform 配置文件创建执行计划。

7. 在 Visual Studio Code 中应用 Terraform 执行计划

  1. 从“视图”菜单中,选择“命令面板…”

  2. 在“命令面板”文本框中,开始输入 Azure Terraform: Apply 并在显示该内容时选择它。

  3. 当提示你进行确认时,输入 yes 然后按 <Enter>

8. 验证结果

  1. 从“视图”菜单中,选择“命令面板…”

  2. 在“命令面板”文本框中,开始输入 Azure: Open Bash in Cloud Shell 并在显示该内容时选择它。

  3. 若要显示资源组,请运行 az group show。 将 <resource_group_name> 占位符替换为应用 Terraform 执行计划后显示的资源组的随机生成名称。

az group show --name <resource_group_name>

9.清理资源

  1. 从“视图”菜单中,选择“命令面板…”

  2. 在“命令面板”文本框中,开始输入 Azure Terraform: Destroy 并在显示该内容时选择它。

  3. 当提示你进行确认时,输入 yes 然后按 <Enter>

  4. 若要确认 Terraform 已成功销毁新资源组,请运行本部分中的步骤来验证结果

Azure 上的 Terraform 故障排除

排查在 Azure 上使用 Terraform 时遇到的常见问题

后续步骤