繁体   English   中英

通过Azure PowerShell函数创建KeyVault密钥时的行为不一致

[英]Inconsistent behaviour when creating a KeyVault key via an Azure PowerShell Function

尝试通过Azure PowerShell功能创建KeyVault密钥时,我遇到了不一致的行为。 似乎在不同的功能主机上运行相同的PowerShell将返回不同的结果/失败。 故障是以下情况的变体:

_Get-AzureRmKeyVault:您的Azure凭据尚未设置或已过期,请运行Login-AzureRmAccount设置您的Azure凭据。

该脚本旨在通过Azure AD服务主体向Azure进行身份验证,获取相关的KeyVault并在其中创建密钥。 但是,即使对所有值进行硬编码以进行故障排除,但在不同的功能主机之间仍然存在不一致,即一个成功创建KeyVault密钥,而另一个失败。

$ServicePrincipalPassword = ConvertTo-SecureString "password" -AsPlainText -Force
$ServicePrincipalCredential = New-Object     System.Management.Automation.PSCredential ($ServicePrincipalAppId, $ServicePrincipalPassword)
$Login = Login-AzureRmAccount -ServicePrincipal -TenantId $TenantId -Credential $ServicePrincipalCredential
$KeyVault = Get-AzureRmKeyVault -VaultName "testkeyvault"
write-output "$($KeyVault.VaultURI)"
$Key = Add-AzureKeyVaultKey -VaultName $KeyVault.VaultName -Name 'testkey' -Destination Software
$KeyUrl = $Key.id.Substring(0, $Key.id.LastIndexOf("/"))
Write-Output $KeyUrl

这是预期的行为还是我可以做的任何使体验一致的事情? 谢谢。

看起来您在这里打开了一个问题https://github.com/Azure/azure-webjobs-sdk-script/issues/1827

这可能是运行时中的一些错误,这是打开跟踪问题的适当位置。 请避免将来再次发布

对于任何在Azure PowerShell函数中解决此问题或类似问题的人,我的解决方案是从使用服务主体的基于密码的凭据切换为利用基于证书的凭据。 这仍然不能解释我所经历的不一致,但是至少现在可以肯定地保持一致了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM