Azure Powershell New-AzSynapseManagedPrivateEndpoint 定义文件格式?

Azure Powershell New-AzSynapseManagedPrivateEndpoint Definition File format?

我正在尝试将托管专用终结点部署到我的突触实例,以将其连接到同一资源组中的密钥保管库。 Bicep 中相同部署的文档非常不完整,因此我想使用以下命令试试 PowerShell 的运气:

    New-AzSynapseManagedPrivateEndpoint `
   -WorkspaceName "synapse-test-joao" `
   -Name "managedPrivateEndpointKeyVault" `
   -DefinitionFile file.json

但是,我似乎无法在 Internet 上的任何地方找到定义文件的格式,所以想知道是否有人有任何关于 json 格式以及需要在其中包含哪些参数的信息。 这将非常有帮助, 若奥

示例 -DefinitionFile 应采用以下格式:

{
    # here i am using sample blob storage
    "name": "testblob", #ManagePrivate Endpoint Name
    "properties": {
        "privateLinkResourceId": "/subscriptions/<subscription ID>/resourceGroups/<ResourceGroup name>/providers/Microsoft.Storage/storageAccounts/<Storage Account Name>",
        "groupId": "blob"
    }
}

要获取-DefinitionFile示例文件按照以下方式:

方式一:

  • 转到您的 Azure Synapse 工作区 -> 托管专用终结点
  • 将光标拖到您的私有端点,您可以看到 {} -(代码) 从那里您可以获得示例 -DefinitionFile.

方式二:

这样就可以得到ManagedPrivateEndpoint

PrivateLinkResourceId
$ds = Get-AzSynapseWorkspace -Name <Synapse workspaces Name> 
$ws | Get-AzSynapseManagedPrivateEndpoint -Name <Your Created Managed Private Endpoint Name>
# Private Link Resource Id
/subscriptions/<subscription ID>/resourceGroups/<ResourceGroup name>/providers/Microsoft.Storage/storageAccounts/<Storage Account Name>

参考here

在 devOps 管道中为 Synapse 部署托管专用端点的代码如下:

param(
    $environment,
    $synapseWorkspaceVar,
    $subscriptionId,
    $resourceGroupNameVar,
    $keyVaultNameVar
)

$createPrivateEndpointJsonString = @"
{    
    "properties": {
        "privateLinkResourceId": "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupNameVar/providers/Microsoft.KeyVault/vaults/$keyVaultNameVar",
        "groupId": "vault"
    }
}
"@


write-output $createPrivateEndpointJsonString

$tempFolderPath = ".\temp"

if (!(Test-path -path $tempFolderPath)) { 
    echo "new file"
    New-Item -ItemType directory -path $tempFolderPath
}

write-output "creating the PrivateEndpoint Definition Json file...."
$jsonpath = ".$tempFolderPath\createprivateendpoint.json"

Set-Content -Path $jsonpath -value $createPrivateEndpointJsonString

echo "Creating new Managed Private Endpoint from Synapse to KeyVault..."
New-AzSynapseManagedPrivateEndpoint `
-WorkspaceName $synapseWorkspaceVar `
-Name "managedPrivateEndpointKeyVaultACEP" `
-DefinitionFile $jsonpath
    
Get-AzSynapseManagedPrivateEndpoint -WorkspaceName $synapseWorkspaceVar