我有 Azure 密鑰保管庫資源的以下代碼:
$tempkeyid = (Get-AzKeyVaultKey -VaultName $vaultname -Name $tempkeyname).Id
$tempkeyid = $tempkeyid.Substring(0, $tempkeyid.LastIndexOf('/'))
$tempkeyid
New-AzSynapseWorkspaceKey -ResourceGroupName $resourcegroup -WorkspaceName $workspacename -Name $tempkeyname -EncryptionKeyIdentifier $tempkeyid
第 2 行在那里,因為密鑰保管庫回傳版本識別符號,但第 4 行需要無版本識別符號
第 3 行中 $tempkeyid 的值是:
https://keyvaultname.vault.azure.net:443/keys/keyname
我得到錯誤:
New-AzSynapseWorkspaceKey: Key Vault URL should be a normalized URL
我嘗試使用下面的代碼對 URL 進行編碼和解碼,但編碼嘗試得到相同的錯誤,并且解碼嘗試得到一個錯誤,顯示“無效的 URI:無法確定 URI 的格式”。我不確定如何以其他方式對其進行規范化,或者具體是什么未規范化。$tempkeyid 的值對我來說看起來是正確的。
$tempkeyid = [System.Web.HttpUtility]::UrlEncode($tempkeyid)
$tempkeyid = [System.Web.HttpUtility]::UrlDecode($tempkeyid)
uj5u.com熱心網友回復:
編碼與 URI 規范化不同,后者指的是以標準格式表達 uri。(參見維基百科條目)。在您的情況下,我猜它不喜歡使用默認埠(:443)。要系統地獲取標準化的 uri,請嘗試以下操作:
$tempkeyiduri = [System.Uri]($tempkeyid)
$tempkeyid = $tempkeyiduri.AbsoluteUri
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/466224.html
