使用TFS在azure中启动自动交换

时间:2016-03-22 22:15:56

标签: azure tfs continuous-deployment azure-devops

我正在使用VSO继续部署到azure。

我有三个位置:

  • 分期(用于自动化测试)
  • AutoSwap(如果版本在分段中通过自动化测试,则会部署到AutoSwap)
  • 生产(部署AutoSwap时,它将自动与生产交换)。

问题是我的部署是使用FTP完成的(我不能这样做因为它是Asp.net Core 1.0应用程序),所以当我部署到AutoSwap时,它没有被检测为实际部署所以没有自动交换完成了生产。

我的问题:是否有任何powershell命令可以从TFS任务调用以启动自动交换? (例如,告诉我已经完成了部署,我可以在FTP上传结束时调用)?

修改 我已经找到并尝试了这个,但它什么都没做(它没有失败):

Switch-AzureWebsiteSlot -Name“MyApp”-Slot1“production”-Slot2“AutoSwap”-Force

2 个答案:

答案 0 :(得分:0)

尝试使用Move-AzureDeployment,它可以在生产和暂存中交换部署。

Parameter Set: Default
Move-AzureDeployment [-ServiceName] <String> [ <CommonParameters>]

有关详细信息,请参阅MSDN中的链接:Move-AzureDeployment

注意:这仅适用于云服务,而不适用于网络应用。 Web APP和云服务之间的区别:Web App vs Cloud Service

<强>更新

这可能是由来自VSO online的azure powershell脚本加载引起的,不支持swap-slot。尝试删除Azure PowerShell模块,然后导入另一个模块。

在此MSDN链接中查看 Ryan P 的答案:https://social.msdn.microsoft.com/Forums/windows/en-US/0f30b76b-7954-4558-a10d-6a2b6635765a/switchazurewebsiteslot-does-not-work-in-vso-online

答案 1 :(得分:0)

问题是我使用此实用程序通过FTP上传文件:

https://marketplace.visualstudio.com/items?itemName=januskamphansen.ftpupload-task

在它的代码中有这一行应该被评论为不阻止其后任务中的azure命令:

[System.Net.ServicePointManager] :: ServerCertificateValidationCallback = {$ CurrentSession.ignoreCert}

现在一切都很好,我花了一个星期才找到它,我希望这个答案可以节省时间给某人。