如何通过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
相关产品推荐
相关产品推荐

