在通过Visual Studio部署资源时,在New-AzureRmResourceGroupDeployment期间Azure ExpiredAuthenticationToken

Jam*_*len 4 azure azure-sdk-.net azure-resource-manager visual-studio-2015

我正在尝试通过Visual Studio使用ARM模板部署HDInsight群集.我在Visual Studio 2015中创建了一个Azure资源组项目,并将我的资源定义添加到模板JSON文件中.

但是当我去部署它时(通过右键单击项目,选择Deploy - > New Deployment,输入我的参数),Visual Studio的输出显示(我已经删除了一些无聊的东西):

17:19:23 - 开始构建

17:19:23 - 项目"LaunchHdInsightCluster.deployproj"(StageArtifacts target(s)):

[剪断]

17:20:27 - [VERBOSE] 17:20:27 - 资源Microsoft.HDInsight/clusters'groupbhdinsight'配置状态正在运行

17:31:06 - [ERROR] New-AzureRmResourceGroupDeployment:ExpiredAuthenticationToken:访问令牌到期UTC时间'3/14/2016 5:31:06 PM'早于当前UTC时间'2016年3月14日5:31: 07 PM'.

请注意,部署仅在访问令牌到期之前运行了12分钟 - 显然,对于部署HDInsight群集,这是一个问题(平均需要20分钟).

我只是想了解这里发生了什么,因为我找不到这方面的文档.即:

创建访问令牌的原因是什么?它能持续多久?在部署时我没有被要求任何Azure信誉 - 我假设我必须使用我在Azure中使用的相同帐户登录到Visual Studio,并且它"借用"身份验证会话,但这是只是一个猜测

什么决定了访问令牌的到期时间,以便我可以再次阻止这种情况发生?

如何刷新我的身份验证令牌?

bmo*_*sft 7

这里发生的是VS中的Azure资源组部署使用项目中的PowerShell脚本进行部署(即使输出托管在VS中,我们使用该PS脚本来完成工作).PowerShell脚本通过使用VS登录中的令牌进行身份验证.该令牌仅适用于一小时,然后VS将刷新它.但是,一旦将其传递给PowerShell,PowerShell就不会自动刷新它.因此,如果您有59分钟的令牌,它将在您开始部署后很快到期.令牌可以持续一个小时,或者任何不到的时间.我们正在努力解决此问题(即让PowerShell自动刷新令牌),但这已经是一个月左右了.请参阅:https://github.com/Azure/azure-powershell/issues/1068

解决方法:不幸的是,VS没有好的工作.但...

希望有帮助......