You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Terraform连接Azure AECS与ACS并验证自定义域名

用Terraform部署Azure Communication Service(ACS)、Email Communication Service(AECS)并完成关联+自定义域名配置

1. 基础资源部署(ACS + AECS)

首先配置AzureRM Provider,然后创建核心的azurerm_communication_service(ACS)和azurerm_email_communication_service(AECS)资源:

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 3.0"
    }
  }
}

provider "azurerm" {
  features {}
}

# 创建资源组(若已有可用资源组可跳过)
resource "azurerm_resource_group" "rg" {
  name     = "my-email-communication-rg"
  location = "eastus"
}

# 创建Azure Communication Service(ACS)
resource "azurerm_communication_service" "acs" {
  name                = "my-acs-resource"
  resource_group_name = azurerm_resource_group.rg.name
  location            = "global" # ACS仅支持global区域
}

# 创建Azure Email Communication Service(AECS)
resource "azurerm_email_communication_service" "aecs" {
  name                = "my-aecs-resource"
  resource_group_name = azurerm_resource_group.rg.name
  location            = "eastus" # 替换为AECS支持的区域,如eastus、westus2
  data_location       = "unitedstates" # 需与location对应的数据区域
}

2. 关联ACS与AECS

使用azurerm_email_communication_service_linked_resource资源完成两者的关联,对应手动操作中的绑定步骤:

# 将AECS关联到ACS
resource "azurerm_email_communication_service_linked_resource" "aecs_acs_link" {
  name                          = "link-acs-to-aecs"
  email_communication_service_id = azurerm_email_communication_service.aecs.id
  linked_resource_id            = azurerm_communication_service.acs.id
  link_type                     = "CommunicationService"
}

3. 自定义域名配置与验证

3.1 创建自定义域名资源

通过azurerm_email_communication_service_domain配置自定义域名,并指定验证方式:

# 配置AECS自定义域名
resource "azurerm_email_communication_service_domain" "custom_domain" {
  name                          = "mail.mydomain.com" # 替换为你的目标自定义域名
  email_communication_service_id = azurerm_email_communication_service.aecs.id
  domain_management             = "CustomerManaged" # 表示用户自行管理域名DNS解析
  validation_type               = "DnsTxtRecord" # 使用TXT记录验证域名所有权
}

3.2 获取并配置DNS记录

部署后,通过Terraform输出获取需要添加到域名DNS服务商的记录:

output "required_dns_records" {
  description = "DNS records to add to your domain provider"
  value       = azurerm_email_communication_service_domain.custom_domain.dns_records
}

执行terraform apply后,复制输出的TXT、MX、SPF等记录,到你的域名DNS管理后台添加对应的解析条目。

3.3 完成域名验证

DNS记录生效后(通常需要5-15分钟),Terraform会自动验证域名状态。若需手动触发验证,可使用Azure CLI:

az communication email domain verify --name ${azurerm_email_communication_service.aecs.name} --resource-group ${azurerm_resource_group.rg.name} --domain-name mail.mydomain.com

等待verified状态变为true,即表示域名验证完成。

4. 功能验证

  • 执行terraform apply完成所有资源部署
  • 检查Azure门户中ACS与AECS的关联状态
  • 确认自定义域名的验证状态为已通过
  • 通过ACS SDK调用邮件发送接口,测试使用自定义域名发送邮件的功能

内容的提问来源于stack exchange,提问作者CodingIsMyPassion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:33:24