2

我有一个在Visual Studio中使用C#和Microsoft.NET.Sdk.Function开发的Azure函数应用程序。从构建服务器构建和部署Azure函数应用程序

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

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

回答

0

我能够通过2个步骤实现部署。首先,使用的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" 

接着,包应该被上传到天蓝Blob存储(SAS令牌等) 然后,我使用天青AppService服务的MSDeploy扩展下载软件包并部署它进入您的Azure函数服务:

{ 
    "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资源管理器能够访问包!

0

这是一个有趣的解决方案! I explored the options一会儿回来,现在只是FTP,并等待可移植函数CLI或使用CLI发布拉链。

-1

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

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

  1. 点击“平台功能”。您将看到一个名为“代码部署”的部分。
  2. 点击“部署选项”,系统会提示您设置源代码。在这里,您可以选择GitHub,本地git,Dropbox等。假设您使用的是本地git。
  3. 一旦你配置好门户就从门户网站获取git端点
  4. 在你的构建服务器上创建一个git仓库,你可以在你的本地或你想从中进行部署。将(3)中的端点设置为远程端点。 git文件结构应该是你发布的函数的根。
  5. 设置您的版本以在发布后推送远程。 Azure会检测更改并自动更新功能应用程序。

这与其他选项类似 - 例如,如果您选择DropBox,它将监视位置并在文件更改/刷新后更新。

有在这里这个能力为文章全文:

https://jlik.me/7b

+0

感谢杰里米响应。我使用GIT方法的第一个问题是我的函数不在JavaScript中,即使在csx中也是如此。我的函数项目是基于Microsoft.NET.Sdk.Functions的.net应用程序。所以,我克隆的git包含每个函数的bin文件夹和function.json。因此,构建服务器可能必须在提交/推送之前先构建项目。什么是命令行?或者,如果我只提交我的c#代码,Azure应用服务将构建我的项目? –

+0

是的,您可以通过添加.deployment文件来指定您的部署详细信息。如果您对此有任何疑问,请告知我们:https://github.com/projectkudu/kudu/wiki/Customizing-deployments查找有关指定您的项目和/或解决方案的部分。 –

相关问题