使用 TFS 在 azure 中启动自动交换
Start an Auto Swap in azure using TFS
我正在使用 VSO 持续部署到 Azure。
我有三个插槽:
- 暂存(用于自动化测试)
- AutoSwap(如果该版本在暂存阶段通过了自动化测试,则会部署到 AutoSwap)
- Production(部署 AutoSwap 时,它会自动与 Production 交换)。
问题是我的部署是使用 FTP 完成的(我不能这样做,因为它是 Asp.net Core 1.0 应用程序),所以当我部署到 AutoSwap 时,未检测到它作为实际部署,因此不会对生产进行自动交换。
我的问题:我可以从 TFS 任务调用任何 powershell 命令来启动自动交换吗? (一个命令,例如告诉部署已经完成,我可以在 FTP 上传结束时调用)?
编辑
我已经找到并尝试过这个,但它什么也没做(它不会失败):
Switch-AzureWebsiteSlot -Name "MyApp" -Slot1 "production" -Slot2 "AutoSwap" -Force
尝试使用 Move-AzureDeployment,它可以交换生产和暂存中的部署。
Parameter Set: Default
Move-AzureDeployment [-ServiceName] <String> [ <CommonParameters>]
更多细节你可以参考来自MSDN的link:Move-AzureDeployment
注意:这仅适用于云服务,不适用于网络应用。 Web APP和云服务的区别:Web App vs Cloud Service
更新
这可能是由于 VSO 在线加载的 azure powershell 脚本不支持交换槽。尝试删除 Azure powershell 模块,并导入一个不同的模块。
请参阅此 MSDN link 中 Ryan P 的回答:https://social.msdn.microsoft.com/Forums/windows/en-US/0f30b76b-7954-4558-a10d-6a2b6635765a/switchazurewebsiteslot-does-not-work-in-vso-online
问题是我正在使用此实用程序通过 FTP 上传文件:
https://marketplace.visualstudio.com/items?itemName=januskamphansen.ftpupload-task
在它的代码中有这一行应该注释掉,以免在它后面的任务中阻止 azure 命令:
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$CurrentSession.ignoreCert}
现在一切正常,我花了一个星期才找到它,我希望这个答案能为别人节省时间。
我正在使用 VSO 持续部署到 Azure。
我有三个插槽:
- 暂存(用于自动化测试)
- AutoSwap(如果该版本在暂存阶段通过了自动化测试,则会部署到 AutoSwap)
- Production(部署 AutoSwap 时,它会自动与 Production 交换)。
问题是我的部署是使用 FTP 完成的(我不能这样做,因为它是 Asp.net Core 1.0 应用程序),所以当我部署到 AutoSwap 时,未检测到它作为实际部署,因此不会对生产进行自动交换。
我的问题:我可以从 TFS 任务调用任何 powershell 命令来启动自动交换吗? (一个命令,例如告诉部署已经完成,我可以在 FTP 上传结束时调用)?
编辑 我已经找到并尝试过这个,但它什么也没做(它不会失败):
Switch-AzureWebsiteSlot -Name "MyApp" -Slot1 "production" -Slot2 "AutoSwap" -Force
尝试使用 Move-AzureDeployment,它可以交换生产和暂存中的部署。
Parameter Set: Default
Move-AzureDeployment [-ServiceName] <String> [ <CommonParameters>]
更多细节你可以参考来自MSDN的link:Move-AzureDeployment
注意:这仅适用于云服务,不适用于网络应用。 Web APP和云服务的区别:Web App vs Cloud Service
更新
这可能是由于 VSO 在线加载的 azure powershell 脚本不支持交换槽。尝试删除 Azure powershell 模块,并导入一个不同的模块。
请参阅此 MSDN link 中 Ryan P 的回答:https://social.msdn.microsoft.com/Forums/windows/en-US/0f30b76b-7954-4558-a10d-6a2b6635765a/switchazurewebsiteslot-does-not-work-in-vso-online
问题是我正在使用此实用程序通过 FTP 上传文件:
https://marketplace.visualstudio.com/items?itemName=januskamphansen.ftpupload-task
在它的代码中有这一行应该注释掉,以免在它后面的任务中阻止 azure 命令:
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$CurrentSession.ignoreCert}
现在一切正常,我花了一个星期才找到它,我希望这个答案能为别人节省时间。