To deploy Managed Private Endpoints to Synapse workspace through automation, below powershell script could be used:
# Creating Managed Private Endpoint in Synapse
Param (
[string]$synapseWorkspaceName,
[string]$managedPEName,
[string]$privateLinkResourceId,
[string]$groupId
)
Write-Host "Synapse Workspace :" $synapseWorkspaceName
Write-Host "Managed PE name:" $managedPEName
Write-Host "Private Link Resource ID:" $privateLinkResourceId
Write-Host "Group ID:" $groupId
$tokenObject = Get-AzAccessToken -ResourceUrl "https://dev.azuresynapse.net"
$token = $tokenObject.Token
$url = "https://"+ $SynapseWorkspaceName +".dev.azuresynapse.net/managedVirtualNetworks/default/managedPrivateEndpoints/"+ $managedPEName +"?api-version=2020-12-01"
$headers = @{
'Authorization' = "Bearer $token"
'content-type' = 'application/json; charset=utf-8'
}
$body = @'
{
"name": "{managedPEName}",
"properties": {
"privateLinkResourceId": "{privateLinkResourceId}",
"groupId": "{groupId}"
}
}
'@
$body = $body -Replace ('{managedPEName}',$managedPEName)
$body = $body -Replace ('{privateLinkResourceId}',$privateLinkResourceId)
$body = $body -Replace ('{groupId}',$groupId)
Invoke-RestMethod -Uri $url -Method 'Put' -Headers $headers -Body $body -ContentType "application/json"