用于预配托管专用端点的 Azure Synapse Analytics Powershell 或 CLI

Azure Synapse Analytics Powershell or CLI to provision Managed Private Endpoint

我一直在努力寻找有关 Azure Synapse Analytics 的 Microsoft 文档,以使用 powershell 或 CLI 提供托管专用终结点?

我可以通过 Azure 门户(基本上是通过 Studio)轻松完成,但我们希望将其作为 Azure DevOps 管道的一部分来完成,并通过 Powershell/CLI 提供托管私有端点(而非客户私有端点) .

有什么帮助吗?

谢谢

目前我们没有用于创建托管专用端点的本机 Synapse PowerShell 和 CLI 命令。有一种解决方法可以通过 Azure CLI 创建专用终结点。示例代码如下。

设置

$workspaceName = "your-workspace-name"
$synapseAnalyticsResourceId = "https://dev.azuresynapse.net"  
$managedVirtualNetworkName = "your-managed-virtual-network-name"
$newEndpointName = "your-new-endpoint-name"

列出专用端点

az rest --resource $synapseAnalyticsResourceId --method GET --url "https://$($workspaceName).dev.azuresynapse.net/managedVirtualNetworks/$($managedVirtualNetworkName)/managedPrivateEndpoints?api-version=2019-06-01-preview" 

创建专用端点

Doc for this API

# GroupId in the body is specifically for a Data Lake endpoint (Storage with Hierarchical namespace enabled)
$body = "{""properties"":{""privateLinkResourceId"": ""<resourceid-to-your-resource-for-endpoint>"", ""groupId"": ""dfs""}}" 
$body | Out-File body.json 
az rest --resource $synapseAnalyticsResourceId --method PUT --headers "Content-Type=application/json" --url "https://$($workspaceName).dev.azuresynapse.net/managedVirtualNetworks/$($managedVirtualNetworkName)/$($newEndpointName)?api-version=2019-06-01-preview" --body `@body.json 
Remove-Item body.json

此外,我们还执行了以下操作来批准托管端点连接。如果您希望能够批准 Endpoint 连接,则需要对要连接的资源具有权限。

# list all private endpoints
endpointList = Get-AzPrivateEndpointConnection -PrivateLinkResourceId '/subscriptions/<xxx>/resourceGroups/<xxx>/providers/Microsoft.Storage/storageAccounts/<xxx>'
# filter the synapse endpoint
$synpapseEndpoint = $endpointList | Where-Object {     $_.PrivateEndpoint.Id.EndsWith('<yourworkspacename>.<yourmanagedenpointname>') }

Approve-AzPrivateEndpointConnection -ResourceId $synpapseEndpoint.Id

在更新的 PowerShell 模块中,现在有一个 powershell commandlet 可用:New-AzSynapseManagedPrivateEndpoint

这应该是要走的路。如果您没有可用的 PowerShell,您仍然可以使用此 CLI 方法。