带有自定义 vnet arm 模板的 Azure Databricks 不会连接到自定义 vnet

Azure Databricks with custom vnet arm template won't connect to the custom vnet

使用以下 ARM 模板,我部署了一个具有自定义托管资源组名称的 Azure Databricks,并将工作人员添加到自定义 VNET。在门户中,这工作正常。但是当我尝试在 ARM 模板中执行此操作时,托管资源组会继续为工作人员部署工作人员 vnet。我认为我走在正确的轨道上,但缺少一个设置。但是想不通。有谁能看到我错过了什么吗?

来源 ARM:https://github.com/Azure/azure-quickstart-templates/tree/master/101-databricks-workspace-with-vnet-injection

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "databricksName": {
            "type": "string",
            "metadata": {
                "description": "The name of the databricks workspace"
            }
        },
        "pricingTier": {
            "type": "string",
            "allowedValues": [
                "trial",
                "standard",
                "premium"
            ],
            "metadata": {
                "description": "The pricing tier of workspace."
            }
        },
        "managedResourceGroupName": {
            "type": "string",
            "metadata": {
                "description": "The name of the managed resource group that databricks will create"
            }
        },
        "Location": {
            "type": "string",
            "defaultValue": "[resourceGroup().location]",
            "metadata": {
                "description": "The Location of the deployment"
            }
        },
        "vnetName": {
            "type": "string",
            "metadata": {
                "description": "The Name of the virtual network where the Workers would be connected to"
            }
        },
        "privateSubnetName": {
            "defaultValue": "public-subnet",
            "type": "string",
            "metadata": {
                "description": "The name of the private subnet to create."
            }
        },
        "publicSubnetName": {
            "defaultValue": "private-subnet",
            "type": "string",
            "metadata": {
                "description": "The name of the public subnet to create."
            }
        }
    },
    "variables": {
        "ManagedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', parameters('managedResourceGroupName'))]",
        "vnetId": "[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]"
    },
    "resources": [
        {
            "name": "[parameters('databricksName')]",
            "type": "Microsoft.Databricks/workspaces",
            "apiVersion": "2018-04-01",
            "tags": {
                "description": "MIG6 databricks workspace",
                "costCenter": "WPIPM12SG552"
            },
            "location": "[parameters('Location')]",
            "properties": {
                "managedResourceGroupId": "[variables('managedResourceGroupId')]",
                "parameters": {
                    "customVirtualNetworkId": {
                        "value": "[variables('vnetId')]"
                    },
                    "customPublicSubnetName": {
                        "value": "[parameters('publicSubnetName')]"
                    },
                    "customPrivateSubnetName": {
                        "value": "[parameters('privateSubnetName')]"
                    }
                }
            },
            "sku": {
                "name": "[parameters('pricingTier')]"
            }
        }
    ]
}

您需要在模板中嵌套 vnet,这对我有用:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vnetName": {
            "type": "string"
        },
        "vnetRG": {
            "type": "string"
        },
        "publicSubnetName": {
            "type": "string"
        },
        "publicSubnetCIDR": {
            "type": "string"
        },
        "privateSubnetName": {
            "type": "string"
        },
        "privateSubnetCIDR": {
            "type": "string"
        },
        "workspaceName": {
            "type": "string"
        },
        "tier": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "nsgName": {
            "defaultValue": "databricks-nsg",
            "type": "string"
        },
        "environment": {
            "type": "string"
        }
    },
    "resources": [
        {
            "apiVersion": "2017-05-10",
            "name": "nestedTemplate",
            "type": "Microsoft.Resources/deployments",
            "resourceGroup": "[parameters('vnetRG')]",
            "properties": {
                "mode": "Incremental",
                "template": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "contentVersion": "1.0.0.0",
                    "parameters": {},
                    "variables": {},
                    "resources": [
                        {
                            "apiVersion": "2018-04-01",
                            "type": "Microsoft.Network/virtualNetworks/subnets",
                            "name": "[concat(parameters('vnetName'), '/', parameters('publicSubnetName'))]",
                            "location": "[parameters('location')]",
                            "properties": {
                                "addressPrefix": "[parameters('publicSubnetCIDR')]",
                                "networkSecurityGroup": {
                                    "id": "[variables('nsgId')]"
                                }
                            }
                        },
                        {
                            "apiVersion": "2018-04-01",
                            "type": "Microsoft.Network/virtualNetworks/subnets",
                            "name": "[concat(parameters('vnetName'), '/', parameters('privateSubnetName'))]",
                            "location": "[parameters('location')]",
                            "dependsOn": [
                                "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'), '/subnets/', parameters('publicSubnetName'))]"
                            ],
                            "properties": {
                                "addressPrefix": "[parameters('privateSubnetCIDR')]",
                                "networkSecurityGroup": {
                                    "id": "[variables('nsgId')]"
                                }
                            }
                        }
                    ]
                },
                "parameters": {}
            }
        },
        {
            "apiVersion": "2018-04-01",
            "type": "Microsoft.Databricks/workspaces",
            "location": "[parameters('location')]",
            "name": "[parameters('workspaceName')]",
            "dependsOn": [
                "['Microsoft.Resources/deployments/nestedTemplate']"
            ],
            "sku": {
                "name": "[parameters('tier')]"
            },
            "comments": "Please do not use an existing resource group for ManagedResourceGroupId.",
            "properties": {
                "ManagedResourceGroupId": "[variables('managedResourceGroupId')]",
                "parameters": {
                    "customVirtualNetworkId": {
                        "value": "[variables('vnetId')]"
                    },
                    "customPublicSubnetName": {
                        "value": "[parameters('publicSubnetName')]"
                    },
                    "customPrivateSubnetName": {
                        "value": "[parameters('privateSubnetName')]"
                    }
                }
            }
        }
    ],
    "variables": {
        "managedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
        "managedResourceGroupName": "[concat(resourceGroup().name,'-DATABRICKS-MANAGED')]",
        "vnetId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('vnetRG'), '/providers/Microsoft.Network/virtualNetworks/', parameters('vnetName'))]",
        "nsgId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('vnetRG'), '/providers/Microsoft.Network/networkSecurityGroups/', parameters('nsgName'))]"
    },
    "outputs": {}
}