如何使用Terraform导入Azure PostgreSQL灵活服务器的AAD管理员资源?
Azure PostgreSQL灵活服务器AAD管理员导入Terraform问题解答
1. azurerm_postgresql_active_directory_administrator是否适用于灵活服务器?
不适用。该资源是专为Azure PostgreSQL单服务器(旧版非灵活架构)设计的,它要求的资源ID格式包含/servers/段,但灵活服务器的资源ID使用/flexibleServers/段,两者架构不兼容,这也是你触发导入错误的直接原因。
2. 替代方案
针对PostgreSQL灵活服务器的AAD管理员,需使用Terraform AzureRM提供的专属资源:azurerm_postgresql_flexible_server_active_directory_administrator。
正确的导入命令
terraform import azurerm_postgresql_flexible_server_active_directory_administrator.administrator /subscriptions/<你的订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<灵活服务器名>/administrators/<AAD管理员对象ID>
请将命令中的占位符替换为你的实际资源信息。
配套Terraform配置示例
resource "azurerm_postgresql_flexible_server_active_directory_administrator" "administrator" { server_id = azurerm_postgresql_flexible_server.your_server.id login_username = "<AAD管理员登录名>" object_id = "<AAD管理员对象ID>" tenant_id = "<你的Azure租户ID>" }
3. 是否必须使用该资源?
- 若仅需将PostgreSQL灵活服务器本身导入Terraform,无需管控AAD管理员的配置,则可以不用该资源;
- 若需要通过Terraform管理该灵活服务器的AAD管理员(比如后续修改、删除管理员),则必须使用
azurerm_postgresql_flexible_server_active_directory_administrator——这是当前AzureRM Provider中唯一支持灵活服务器AAD管理员生命周期管控的资源类型。
内容的提问来源于stack exchange,提问作者apasic
相关产品推荐
相关产品推荐

