从Build Server构建和部署Azure功能应用程序

时间:2017-09-05 04:49:18

标签: azure jenkins continuous-integration azure-web-sites azure-functions

我有一个使用C#和Microsoft.NET.Sdk.Function在Visual Studio中开发的Azure Functions应用程序。

我需要从Jenkins构建服务器构建和部署此应用程序。推荐的方法是什么?的MSBuild? MSDeploy? Azure Functions CLI? FTP? 我无法使用源代码管理或VSTS部署。

一些示例脚本将不胜感激!

4 个答案:

答案 0 :(得分:0)

我能够通过两个步骤实现部署。首先,使用msbuild创建一个zip包:

msbuild FunctionApp.sln /p:Configuration=Release /p:DeployOnBuild=true
    /p:WebPublishMethod=Package /p:PackageAsSingleFile=true
    /p:SkipInvalidConfigurations=true
    /p:DesktopBuildPackageLocation="c:\output.zip" /p:DeployIisAppPath="Default Web Site"

接下来,应该将包上传到azure blob存储(SAS令牌等) 然后,我使用Azure AppService的MSDeploy扩展来下载该软件包并将其部署到您的Azure Functions服务中:

{
    "apiVersion": "2015-08-01",
    "type": "Microsoft.Web/sites",
    "name": "[variables('functionAppName')]",
    "kind": "functionapp",
    "dependsOn": [
        ...
    ],
    "properties": {...},
    "resources": [
        {
            "name": "MSDeploy",
            "type": "extensions",
            "location": "[resourceGroup().location]",
            "apiVersion": "2015-08-01",
            "dependsOn": [
                "[concat('Microsoft.Web/sites/', variables('functionAppName'))]"
            ],
            "tags": {
                "displayName": "webDeploy"
            },
            "properties": {
                "packageUri": "[concat(parameters('_artifactsLocation'), '/', parameters('webDeployPackageFolder'), '/', parameters('webDeployPackageFileName'), parameters('_artifactsLocationSasToken'))]",
                "dbType": "None",
                "connectionString": "",
                "setParameters": {
                    "IIS Web Application Name": "[variables('functionAppName')]"
                }
            }
        }
    ]
},

确保Azure资源管理器能够访问该程序包!

答案 1 :(得分:0)

这是一个有趣的解决方案!我explored the options一会儿,现在只是FTP并等待便携式功能CLI或使用拉链的CLI发布。

答案 2 :(得分:0)

msbuild正常,请参考链接here以获取更多信息

    msbuild AzureFuncTest.sln /t:Rebuild /p:Configuration=Debug;PublishProfile=LocalDebug;DeployOnBuild=true;VisualStudioV
ersion=15.0 

答案 3 :(得分:-1)

您可以从功能应用程序的配置中设置持续部署。在一天结束时,您希望在构建服务器上利用您喜欢的任何工具“发布”您的应用程序,然后将这些资产部署为功能应用程序。

要设置部署,请导航到您的功能应用。

  1. 点击“平台功能”。您将看到一个名为“代码部署”的部分。
  2. 点击“部署选项”,系统将提示您设置源。在这里你可以选择GitHub,本地git,Dropbox等。让我们假设你正在使用本地git。
  3. 配置后,从门户网站获取git端点
  4. 在构建服务器上,本地或从中部署的任何位置创建git仓库。将端点(3)设置为远程。 git文件结构应该是已发布函数的根。
  5. 设置构建以在发布后推送远程。 Azure将检测更改并自动更新功能应用程序。
  6. 这与其他选项类似 - 例如,如果您选择DropBox,它将监视位置并在文件更改/刷新后更新。

    这里有一篇关于此功能的完整文章:

    https://jlik.me/7b