Azure PostgreSQL灵活服务器Terraform同区域GeoRestore失败求助
Azure PostgreSQL灵活服务器Terraform同区域还原失败排查与修复
问题概述
已启用异地冗余备份的Azure PostgreSQL灵活服务器,通过Azure门户可成功完成同区域还原,但使用Terraform执行时触发ResourceNotFound错误,提示找不到源服务器。
错误原因
核心问题是错误使用GeoRestore模式执行同区域还原:
GeoRestore仅适用于跨区域的异地冗余备份还原场景,要求目标区域与源服务器区域不同,且源服务器的异地备份已同步到目标区域。- 同区域的时间点还原需使用
PointInTimeRestore模式,错误的模式会导致Terraform调用错误的API逻辑,进而无法正确识别源服务器。
修正后的Terraform模板
provider "azurerm" { features {} subscription_id = "my-sub-id" } # 同区域时间点还原创建灵活服务器 resource "azurerm_postgresql_flexible_server" "restored_server" { name = "sameregionrestoreserver" location = "westeurope" # 需与源服务器区域一致 storage_mb = 131072 sku_name = "GP_Standard_D2ds_v4" resource_group_name = "same-resource-group" backup_retention_days = 7 geo_redundant_backup_enabled = true # 目标服务器可按需设置,不影响同区域还原 create_mode = "PointInTimeRestore" # 替换为同区域还原模式 source_server_id = "/subscriptions/my-sub-id/resourceGroups/source-resource-group/providers/Microsoft.DBforPostgreSQL/flexibleServers/source-server-name" point_in_time_restore_time_in_utc = "2024-11-06T13:15:21.000Z" }
额外验证要点
- 确认
source_server_id中的订阅ID、资源组名称、源服务器名称完全正确,源服务器状态正常(未被删除)。 - 检查Terraform使用的Azurerm Provider版本是否为最新稳定版,避免API兼容性问题。
- 确保执行Terraform的账号拥有源服务器的读取权限以及目标资源组的创建权限。
内容的提问来源于stack exchange,提问作者swapnil_bharata
相关产品推荐
相关产品推荐

