Azure Databricks集成现有Vnet部署报GatewayAuthenticationFailed求助
问题:Azure Databricks工作区VNet集成部署报GatewayAuthenticationFailed错误
我尝试在Azure订阅中部署与现有VNet集成的Azure Databricks实例,通过Terraform创建了公网/私网子网、NSG及NSG关联,在Databricks工作区的custom_parameters块中配置了虚拟网络ID和子网NSG关联ID。从Azure DevOps部署时出现报错:
创建/更新工作区(订阅:"xxxx-xxxx-xxx-xxx" 资源组:"rg-xxxxx-test" 工作区名称:"xxxx-test-workspace"):CreateOrUpdate后轮询失败,Azure API返回状态为"GatewayAuthenticationFailed"的错误,提示无法准备子网'xxxx-test-private',详细信息为'Microsoft.Network网关认证失败'。
目前子网已成功创建,但工作区创建失败,求排查思路。
相关Terraform代码
公网子网及NSG关联代码
resource "azurerm_subnet" "public" { name = "${var.dbname}-public-subnet" resource_group_name = data.azurerm_resource_group.qa.name virtual_network_name = data.azurerm_virtual_network.vnet.name address_prefixes = ["1.2.3.4/24"] delegation { name = "databricks_public" service_delegation { name = "Microsoft.Databricks/workspaces" } } } resource "azurerm_network_security_group" "nsg" { name = "${var.dbname}-qa-databricks-nsg" resource_group_name = data.azurerm_resource_group.qa.name location= data.azurerm_resource_group.qa.location } resource "azurerm_subnet_network_security_group_association" "nsga_public" { network_security_group_id = azurerm_network_security_group.nsg.id subnet_id = azurerm_subnet.public.id }
Databricks工作区custom_parameters块
custom_parameters { public_subnet_name = azurerm_subnet.public.name public_subnet_network_security_group_association_id = azurerm_subnet_network_security_group_association.nsga_public.id private_subnet_name = azurerm_subnet.private.name private_subnet_network_security_group_association_id = azurerm_subnet_network_security_group_association.nsga_private.id virtual_network_id = data.azurerm_virtual_network.vnet.id }
排查思路
- 检查服务主体权限:确认Azure DevOps部署用的服务主体对目标VNet、子网、NSG有足够权限,至少要有
Network Contributor角色,或自定义包含以下操作的权限:Microsoft.Network/virtualNetworks/subnets/read、Microsoft.Network/virtualNetworks/subnets/write、Microsoft.Network/networkSecurityGroups/read、Microsoft.Network/networkSecurityGroups/write。 - 验证私网子网配置:
- 私网子网必须同样配置
Microsoft.Databricks/workspaces服务委派,不能有冲突的其他委派。 - 子网地址范围要符合Databricks要求:每个子网至少/24的空间,公网、私网子网不能重叠。
- 确认子网未被其他Azure服务占用。
- 私网子网必须同样配置
- 检查NSG规则:NSG不能阻止Databricks管理平面与子网的通信,需放行:
- 入站:Databricks服务IP段的访问
- 出站:子网到Databricks管理端点的HTTPS(443)访问
- 跨资源组权限验证:如果VNet和Databricks工作区不在同一资源组,服务主体需要对VNet所在资源组也有网络资源操作权限。
- 确认Terraform依赖顺序:给Databricks工作区资源添加
depends_on,显式依赖子网、NSG关联资源,避免因资源未就绪导致认证失败。 - 排查区域与配额限制:确认目标区域支持Databricks与现有VNet集成,订阅无相关服务配额限制。
- 查看Azure活动日志:在Azure门户进入资源组的活动日志,筛选Databricks工作区创建失败事件,查看更详细的错误上下文。
内容的提问来源于stack exchange,提问作者MohitSinha
相关产品推荐
相关产品推荐

