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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在通过Visual Studio部署资源时,在New-AzureRmResourceGroupDeployment期间Azure ExpiredAuthenticationToken相关的知识,希望对你有一定的参考价值。

我正在尝试通过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 - [错误] New-AzureRmResourceGroupDeployment:ExpiredAuthenticationToken:访问令牌到期UTC时间'3/14/2016 5:31:06 PM'早于当前UTC时间'3/14/2016 5:31: 07 PM'。

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

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

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

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

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

答案

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

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

希望有帮助......

另一答案

我打赌这是一个短暂的问题。我重新尝试部署(需要修改我的ARM模板),现在它成功了。

请检查门户中的Azure资源组。您可能会启动并运行您的资源。

@ Cleverguy25解释了我认为部署过程如何工作。

另一答案

我不确定,但我相信New-AzureRmResourceGroupDeployment上传您的模板文件并设置在云中发生的部署。然后,它会查询部署以查看是否已完成,并在创建资源时输出资源。显然,当令牌过期时,这些查询会出错。但部署应该继续。

您可以忽略此错误并自行查询部署或资源组,以查看何时完成。

以上是关于在通过Visual Studio部署资源时,在New-AzureRmResourceGroupDeployment期间Azure ExpiredAuthenticationToken的主要内容,如果未能解决你的问题,请参考以下文章

使用Visual Studio 2017克隆TFS Git repo时出错400

Visual Studio项目需要部署后才能启动

Visual Studio 2017 Web 部署失败

Visual Studio Shell 2015 不在解决方案资源管理器中使用自定义图标

更改密码后无法使用Visual Studio 2013登录Windows azure帐户

如何编写 Visual Studio 数据库项目的部署脚本?