使用 Terraform 为只读副本创建虚拟终结点

使用 Terraform,可以在 Azure Database for PostgreSQL 灵活服务器中创建和管理只读副本的虚拟终结点。 Terraform 是一个开源基础结构即代码工具,让你可以使用高级配置语言定义和预配基础结构。

先决条件

在开始之前,确保你拥有:

  • 一个拥有所需权限的 Azure 帐户。
  • 已在本地计算机上安装 Terraform。 可以从官方 Terraform 网站下载 Terraform。
  • Azure CLI 已安装并已经过身份验证。 Azure CLI 文档中提供了相关说明。

确保你对 Terraform 语法和 Azure 资源预配有基本的了解。

逐步配置 Terraform:提供有关使用 Terraform 为只读副本配置虚拟终结点的分步指南。

配置虚拟终结点

按照以下步骤为 Azure Database for PostgreSQL 灵活服务器中的只读副本创建虚拟终结点:

初始化 Terraform 配置

创建 main.tf 文件并定义 Azure 提供程序。

 provider "azurerm" {
   features {}

   environment = "china"
 }

 resource "azurerm_resource_group" "example" {
   name     = "example-resources"
   location = "China North 3"
 }

创建主要 Azure Database for PostgreSQL

定义主要 PostgreSQL 服务器资源。

resource "azurerm_postgresql_flexible_server" "primary" {
  name                = "primary-server"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  version             = "12"
  administrator_login = "adminuser"
  administrator_password = "password"
  sku_name            = "Standard_D4s_v3"

  storage_mb = 32768
  backup_retention_days = 7
  geo_redundant_backup = "Disabled"
  high_availability {
    mode = "ZoneRedundant"
  }
}

创建只读副本

定义主服务器的只读副本。

resource "azurerm_postgresql_flexible_server_replica" "replica" {
  name                = "replica-server"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  source_server_id    = azurerm_postgresql_flexible_server.primary.id
}

配置虚拟终结点

定义配置虚拟终结点所需的资源。

resource "azurerm_private_endpoint" "example" {
  name                = "example-private-endpoint"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  subnet_id           = azurerm_subnet.example.id

  private_service_connection {
    name                           = "example-privateserviceconnection"
    private_connection_resource_id = azurerm_postgresql_flexible_server.primary.id
    is_manual_connection           = false
    subresource_names              = ["postgresqlServer"]
  }
}

应用配置

初始化 Terraform 并应用配置。

terraform init terraform apply

出现提示时确认应用操作。 Terraform 预配资源,并根据指定的信息配置虚拟终结点。

有关虚拟终结点的其他信息,请参阅创建虚拟终结点