2017-08-24 23 views
0

尝试通过Azure PowerShell函数创建KeyVault密钥时我遇到不一致的行为。看起来,在不同的功能主机上运行相同的PowerShell将返回不同的结果/失败。失败是以下的变体:通过Azure PowerShell函数创建KeyVault密钥时的行为不一致

_Get-AzureRmKeyVault:您Azure的凭证尚未建立或已经过期,请登录运行,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 

这是行为预期还是我能做的任何事情来使经验一致? 谢谢。

回答

0

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

这可能是在运行一些bug,这就是合适的地方开一个跟踪问题。请避免将来双重发布

+0

道歉,我不确定在哪里最好记录/跟踪问题。当前的建议是否将功能迁移到Azure自动化,直到Azure PowerShell功能未被归类为“实验性”? –

+0

不用担心。如果您可以跟踪Ling在github上链接的问题,那会很棒。她比我在功能方面的知识要多。 – ahmelsayed

0

对于任何与Azure PowerShell功能中的此类问题或类似问题作斗争的人,我的解决方案是从使用服务主体的基于密码的凭证切换到利用基于证书的凭证。这仍然不能解释我所经历的不一致,但至少现在已经非常一致。