Azure存储账户新增文件共享后Terraform Plan执行超时求助
关于Terraform刷新Azure存储共享时超时的排查方向
问题背景
在Azure存储账户中部署新文件共享后,执行terraform plan时出现超时错误,报错信息如下:
azurerm_storage_account_customer_managed_key.this[0]: Refreshing state... [id=/subscriptions/**********/resourceGroups/myrg/providers/Microsoft.Storage/storageAccounts/myaccount] ╷ │ Error: shares.Client#GetProperties: Failure sending request: StatusCode=0 -- Original Error: context deadline exceeded │ │ with azurerm_storage_share.this["share1"], │ on main.tf line 155, in resource "azurerm_storage_share" "this": │ 155: resource "azurerm_storage_share" "this" { │ ╵ Destroy False detailedExitCode: 1 Error detected by Terraform ##[error]Script failed with exit code: 1
已尝试操作:
- 将存储账户网络设置为允许所有网络访问
- 更换多个Terraform版本(1.2.6、1.0.4、1.2.7、1.2.0)
- 查找过GitHub上两个类似未解决问题
新排查方向
- 检查客户托管密钥关联的密钥库状态:报错优先刷新了
azurerm_storage_account_customer_managed_key资源,需确认密钥库的网络规则是否限制访问、密钥是否有足够权限、是否处于禁用/过期状态。可通过az storage account show --name myaccount --resource-group myrg查看密钥配置,同时检查密钥库的访问日志。 - 手动验证存储共享可用性:用Azure Portal或CLI命令
az storage share show --name share1 --account-name myaccount检查share1是否存在、状态是否正常。如果该命令也超时/失败,说明问题出在Azure存储服务端,可联系Azure支持排查。 - 调整Terraform Provider超时配置:在AzureRM Provider中增加超时设置,延长资源读取的等待时间,示例配置:
provider "azurerm" { features {} timeout { read = "30m" } }
- 测试执行环境与存储服务的网络连通性:用
telnet myaccount.file.core.windows.net 445或nc -zv myaccount.file.core.windows.net 445测试端口连通性,确认没有网络层面的阻断。 - 重置Terraform状态记录:先执行
terraform state rm azurerm_storage_share.this["share1"]移除状态中该资源的异常记录,再用terraform import azurerm_storage_share.this["share1"] "/subscriptions/xxx/resourceGroups/myrg/providers/Microsoft.Storage/storageAccounts/myaccount/fileServices/default/shares/share1"重新导入,之后再运行terraform plan验证。
内容的提问来源于stack exchange,提问作者teamdever
相关产品推荐
相关产品推荐

