Terraform部署ADF分隔文本数据集提示azure_blob_fs_location块不支持如何解决
问题根因
你遇到该报错的核心原因是使用的AzureRM Terraform Provider版本过低,azure_blob_fs_location 位置块是在 azurerm v3.20.0 及之后版本才新增到 azurerm_data_factory_dataset_delimited_text 资源中的,低于该版本的Provider无法识别该块类型。
解决步骤
- 首先确认当前环境使用的azurerm provider版本,执行以下命令查看:
terraform providers
- 若版本低于v3.20.0,调整你的provider声明块,升级到符合要求的版本,示例配置如下:
terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = ">= 3.20.0" } } }
- 调整完成后执行初始化命令升级provider:
terraform init -upgrade
- 重新运行plan命令验证报错是否解决:
terraform plan
如果升级provider后仍然报错,请检查块名拼写是否完全正确,不存在拼写错误、大小写错误或多余空格。
备选方案(暂无法升级Provider时使用)
如果受环境限制暂时不能升级azurerm provider版本,可以将位置块替换为旧版本支持的azure_blob_storage_location块,调整后的配置示例如下:
resource "azurerm_data_factory_dataset_delimited_text" "test_dataset" { name = "test_dataset" resource_group_name = "test-rsg" data_factory_name = "test-adf" linked_service_name = "AzureDataLakeStorage1" azure_blob_storage_location { container = "csv-dump-demo" path = "" filename = "personal_customer_data.csv" } column_delimiter = "," row_delimiter = "\r\n" encoding = "UTF-8" quote_character = "\"" escape_character = "\\" first_row_as_header = true null_value = "NULL" }
注意原有配置中的file_system参数需要改为container,其余参数保持不变即可,ADLS Gen2存储账号兼容该旧位置块的配置。
内容的提问来源于stack exchange,提问作者Flumi
相关产品推荐
相关产品推荐

