使用命令行工具发布Azure移动服务

时间:2015-10-05 10:43:28

标签: azure azure-mobile-services

我们使用.Net后端开发了Azure Mobile服务。我们可以从VisualStudio发布它,但是我们希望自动化从构建机器发布服务的过程。

我们希望将构建和发布流程分开,因此结合构建和发布所述 there 的解决方案对我们来说还不够。

Azure Mobile Services是否有任何powershell /命令行工具,类似于New-AzureDeployment / Set-AzureDeployment(参考: "Deploying cloud services to Azure with Powershell")?

2 个答案:

答案 0 :(得分:2)

对于Azure移动服务,您可以通过git进行部署 - 该机制是您将“生产”代码检查到git存储库中。这可以作为持续集成测试的一部分自动执行 - 请参阅以下演练:https://azure.microsoft.com/en-us/documentation/articles/mobile-services-store-scripts-source-control/。这可能是您自动化的最佳选择。

您还可以使用azure命令行工具。有关详细信息,请参阅以下演练:https://azure.microsoft.com/en-us/documentation/articles/mobile-services-manage-command-line-interface/

答案 1 :(得分:0)

我终于设法使用MSDeploy.exe工作了。我发现使用“/ p:DeployOnBuild = true”运行msbuild,但没有“/ p:PublishProfile”实际上并不发布移动服务,而是创建包含内容的文件夹,可以使用msdeploy发布。

使用msdeploy发布移动服务应遵循的步骤:

在构建过程中:

  1. 添加/ p:DeployOnBuild = true到构建移动服务的msbuild命令
  2. 发布文件夹在obj \ Release \ Package中创建。此文件夹包含PackageTmp文件夹以及应在发布期间使用的一些文件(.cmd,.xml,.zip)。但是我无法使用这些文件。在我的情况下,PackageTmp文件夹是我需要的,我将此文件夹复制到构建过程的输出。
  3. 在发布过程中:

    1. (仅一次)从Azure管理门户下载移动服务的发布配置文件(.publishsettings文件)(“仪表板”选项卡上的链接)
    2. 运行运行msdeploy.exe的批处理:
    3. 
      
          @echo off
          if "%MSDeployPath%" == "" (
          for /F "usebackq tokens=1,2,*" %%h  in (`reg query "HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy" /s  ^| findstr -i "InstallPath"`) do (
          if /I "%%h" == "InstallPath" ( 
          if /I "%%i" == "REG_SZ" ( 
          if not "%%j" == "" ( 
          if "%%~dpj" == "%%j" ( 
          set MSDeployPath=%%j
          ))))))
      
          "%MSDeployPath%"\msdeploy.exe -verb:sync -source:contentPath=<path_to_PackageTmp_folder> -dest:ContentPath=<mobile_service_site>,PublishSettings=<path_to_downloaded_publishsettings_file>,AuthType='Basic' -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension
      
      

      或者,可以将提到的PackageTmp文件夹的内容压缩为zip并将发布行更改为:

      
          "%MSDeployPath%"\msdeploy.exe -verb:sync -source:package=<path_to_zip_file> -dest:ContentPath=<mobile_service_site>,PublishSettings=<path_to_downloaded_publishsettings_file>,AuthType='Basic' -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension
      

      有几次我必须在发布后重新启动移动服务。可以使用Azure CLI轻松完成。

      我希望以上帮助那些想要自动化移动服务部署过程的人: - )

      帮助我完成所有工作的文章:Azure Mobile Service deployment with Team City part 4. Deploying Azure Mobile Services