快速入门:使用 Terraform 部署 Azure DocumentDB 群集

在本快速入门中,你将使用 Terraform 部署新的 Azure DocumentDB 群集。 本快速入门提供分步说明,帮助你快速入门。 此群集包含所有 MongoDB 资源:数据库、集合和文档。 它为工具和软件开发工具包(SDK)提供了一个唯一的终结点,用于连接到 Azure DocumentDB 并执行操作。

先决条件

  • Azure 订阅服务

    • 如果没有 Azure 订阅,请创建 试用版
  • 如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI

    • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 将扩展与 Azure CLI 配合使用

    • 运行az version命令,以查看已安装的版本和依赖库。 若要升级到最新版本,请运行az upgrade

配置环境

设置 Azure CLI 环境以管理订阅中的 Azure DocumentDB 资源。

  1. 从空目录中开始。

  2. 登录到 Azure CLI。

    az login
    
  3. 检查目标 Azure 订阅。

    az account show
    

    注释

    如果未连接到预期的订阅,请使用以下命令更改订阅:

    az account set --subscription "<subscription-name>"
    

    有关详细信息,请参阅 使用 Azure CLI 管理 Azure 订阅

准备 Terraform 配置

创建并配置 Terraform 文件以定义部署 Azure DocumentDB 群集所需的资源。

  1. 在项目目录中创建新的 main.tf 文件。

  2. 将此配置添加到文件的内容。

    variable "admin_username" {
      type = string
      description = "Username for default administrator account"
    }
    
    variable "admin_password" {
      type = string
      description = "Password for default administrator account"
      sensitive = true
    }
    
    terraform {
      required_providers {
        azurerm = {
          source = "hashicorp/azurerm"
          version = "~> 4.0"
        }
      }
    }
    
    provider "azurerm" {
      features { }
    }
    
    resource "azurerm_resource_group" "resource_group" {
      name     = "example-resource-group"
      location = "West US"
    }
    
    resource "azurerm_mongo_cluster" "cluster" {
      name                   = "example-mongo-cluster"
      resource_group_name    = azurerm_resource_group.resource_group.name
      location               = azurerm_resource_group.resource_group.location
      administrator_username = var.admin_username
      administrator_password = var.admin_password
      shard_count            = "1"
      compute_tier           = "M10"
      high_availability_mode = "Disabled"
      storage_size_in_gb     = "32"
      version                = "8.0"
    }
    

    小窍门

    有关使用 azurerm_mongo_cluster 资源的选项的详细信息,请参阅 azurerm Terraform 注册表中的提供程序文档

部署配置

使用执行计划部署在上一步中创建的配置文件。

  1. 使用 Terraform CLI 初始化 Terraform 部署。

    terraform init --upgrade
    
  2. 创建执行计划,并将其保存到名为 main.tfplan 的文件。 当系统提示输入 admin_usernameadmin_password 变量时提供值。

    ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv) terraform plan --out "main.tfplan"
    

    注释

    此命令暂时设置 ARM_SUBSCRIPTION_ID 环境变量。 自版本 4.0 起,azurerm 提供程序需要此设置。有关详细信息,请参阅 azurerm 中的订阅 ID。

  3. 应用执行计划将资源部署到 Azure。

    ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv) terraform apply "main.tfplan"
    
  4. 等待部署操作完成,再继续。

查看已部署的资源

列出部署到资源组的 Azure DocumentDB 资源。

  1. 使用 az resource list 来获取您的资源组中的资源列表。

    az resource list \
        --resource-group "<resource-group-name>" \
        --namespace "Microsoft.DocumentDB" \
        --resource-type "mongoClusters" \
        --query "[].name" \
        --output json
    
  2. 在示例输出中,查找类型为Microsoft.DocumentDB/mongoClusters的资源。 下面是预期输出类型的示例:

    [
      "msdocs-documentdb-example-cluster"
    ]
    

清理资源

删除 Terraform 配置中定义的所有资源。

  1. 使用 destroy 命令销毁由 Terraform 管理的资源。

    ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv) terraform destroy
    

    小窍门

    或者,使用az group delete从订阅中删除资源组:

    az group delete \
        --name "<resource-group-name>" \
        --yes \
        --no-wait
    

    重要

    在运行此命令之前,请确保不再需要资源,因为它会永久删除它们。

  2. 确认所有相关提示以继续删除。