如何通过ARM模板部署托管专用终结点?Synapse工作区场景求助
解决Synapse Workspace与托管专用终结点一同ARM部署的问题
核心说明
托管专用终结点(Managed Private Endpoint)是依附于Synapse工作区**托管虚拟网络(Managed Virtual Network)**的独立子资源,不会直接出现在az synapse workspace show的输出或工作区顶层JSON结构中,必须单独在ARM模板里定义该资源,才能实现与工作区的联动部署。
具体操作步骤
1. 先确保工作区启用托管虚拟网络
在你的Synapse Workspace ARM模板中,必须先开启托管虚拟网络,否则无法创建托管专用终结点:
{ "type": "Microsoft.Synapse/workspaces", "apiVersion": "2021-06-01", "name": "[parameters('workspaceName')]", "location": "[parameters('location')]", "properties": { "managedVirtualNetwork": "default", // 必须设为default以启用托管VNet "sqlAdministratorLogin": "[parameters('sqlAdministratorLogin')]", "sqlAdministratorLoginPassword": "[parameters('sqlAdministratorLoginPassword')]", // 其他工作区配置属性... } }
2. 添加托管专用终结点的ARM资源定义
在同一模板中,新增Microsoft.Synapse/workspaces/managedPrivateEndpoints类型的资源,关联目标Private Link Service:
{ "type": "Microsoft.Synapse/workspaces/managedPrivateEndpoints", "apiVersion": "2021-06-01", "name": "[concat(parameters('workspaceName'), '/', parameters('managedPrivateEndpointName'))]", "dependsOn": [ "[resourceId('Microsoft.Synapse/workspaces', parameters('workspaceName'))]" ], "properties": { "privateLinkResourceId": "[parameters('privateLinkServiceResourceId')]", // 目标PLS的完整资源ID "groupId": "[parameters('privateLinkServiceGroupId')]" // 目标PLS对应的groupId,需与PLS配置一致 } }
3. 验证资源的正确命令
不要用az synapse workspace show,改用以下命令查看托管专用终结点:
- 列出工作区下所有托管专用终结点:
az synapse managed-private-endpoint list --workspace-name <你的工作区名称> - 查看单个终结点详情:
az synapse managed-private-endpoint show --workspace-name <你的工作区名称> --name <终结点名称>
4. 部署关键注意点
- 必须通过
dependsOn确保托管专用终结点在工作区创建完成后再部署 privateLinkResourceId格式为/subscriptions/<订阅ID>/resourceGroups/<资源组>/providers/Microsoft.Network/privateLinkServices/<PLS名称>groupId可通过az network private-link-service show --name <PLS名称> --resource-group <资源组>命令,查看输出中的groupIds字段获取
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

