【问题标题】:How to deploy to Azure Cloud Service如何部署到 Azure 云服务
【发布时间】:2013-08-19 02:56:44
【问题描述】:

Azure 的默认教程介绍了如何从头开始创建项目,并将其部署到 Azure 云服务。我在尝试部署现有项目时遇到了意想不到的问题。

所以,我所拥有的是存储在 GIT 中的几个项目的 Web 解决方案。在解决方案内部有一个主项目,其中包含所有关系,在构建该项目的文件夹后,即可部署到服务器。

问题是 - 我如何为 Azure 部署配置项目,并通过 CLI 工具为其构建部署包?

【问题讨论】:

    标签: asp.net .net azure deployment azure-cloud-services


    【解决方案1】:

    经过一段时间的研究,我找到了一个可行的解决方案。

    旧网站的解决方案应该有点准备:

    1. 在您的 Azure 帐户中设置存储和云服务;
    2. 安装 Azure SDK 并根据需要安装 Powershell Azure Cmdlets(在 Azure SDK 2.0 之前,它们没有集成到 SDK 中);
    3. 将新项目添加到类型为Cloud -> Azure Project 的解决方案中,但不要在此步骤中选择角色;
    4. 右键单击角色并从现有 Web 项目添加。

    在此步骤中,您可以从 Visual Studio 的下拉菜单(如“发布...”或“包...”)部署解决方案。但请先配置您的角色。

    要使包自动部署,只需执行here 中描述的脚本即可。这是我发现的最干净的脚本,它正在制定任何 Azure SDK 的部署过程。

    要自动打包项目,只需运行以下powershell脚本:

    $project = resolve-path ".\..\relative\path\to\azure\deploy\project.ccproj"
    Import-Module -Name ".\Invoke-MsBuild.psm1"
    $buildSucceeded = Invoke-MsBuild -Path $project -P '/p:configuration=release /p:overwritereadonlyfiles=true /p:targetprofile="Cloud" /target:Clean;Publish'
    if ($buildSucceeded)
    { Write-Host "Build completed successfully." }
    else
    { Write-Host "Build failed. Check the build log file for errors." }
    

    对于这个脚本,你需要Invoke-MsBuild

    【讨论】:

    • 2019年有没有更好的办法?
    【解决方案2】:

    绝对有可能。如果使用 Azure 网站,您可以进行 git-deploy、dropbox 等。如果是云服务(Web 角色),您可以通过 Visual Studio(IDE 或命令行)构建,然后使用 PowerShell 部署包。

    编辑使用 PowerShell 的快速示例,在本地创建云服务(通过 New-AzureServiceProject 和 [Add-AzureWebRole(http://msdn.microsoft.com/en-us/library/windowsazure/dn205203.aspx)):

    New-AzureServiceProject -ServiceName myservice
    Add-AzureWebRole -Name MyWebRole
    

    您可以将您的代码添加到创建的 Web 角色并使用 msbuild 来构建它(并使用 cspack 来打包它)。然后,您可以通过New-AzureDeployment 使用 PowerShell 部署您构建的包:

    New-AzureDeployment -ServiceName "mynewservice" -Slot "production -Package packagepath -Configuration configpath -Label "my service deployment"
    

    请注意,对于包和配置路径,它们可以是本地的,也可以位于 blob 中(您需要在调用 New-AzureDeployment 之前将它们上传到 blob)。也可以看看Publish-AzureServiceProject

    注意:Azure PowerShell cmdlet 引用为here。但是...如果您在 PS 命令行中键入 get-help *azure*,您将看到最新的 cmdlet,然后您可以查看各个 cmdlet 的帮助。

    除此之外,我不确定您到底在寻找什么。但我强烈建议花一些时间在command-line tools + documentation 上,以及在asp.net + Azure 上运行一些基本教程,例如this one 用于网站和this one 用于云服务(特别是介绍视频)。

    【讨论】:

    • 感谢您的评论。 Azure 已经发布了大量关于在云中创建项目的信息。但是通过您提供的链接,没有关于创建部署包到 Azure 云服务的信息。
    • 是的,有关于使用 PowerShell cmdlet 创建部署包的信息。我已经继续并编辑了我的答案,为您指明了正确的方向。
    • 我给了你一个很好的开始,并回答了你原来的问题。请在 CLI 中输入 azure --help 以查看 CLI 可以为您做什么,包括 azure service --help
    • 在谷歌上搜索了几个小时后,这个答案让我明白了
    猜你喜欢
    • 2014-12-13
    • 2020-09-22
    • 2018-06-24
    • 2017-06-24
    • 2012-09-05
    • 2018-08-29
    • 2015-11-10
    • 2014-10-08
    • 1970-01-01
    相关资源
    最近更新 更多