我有一个使用C#和Microsoft.NET.Sdk.Function在Visual Studio中开发的Azure Functions应用程序。
我需要从Jenkins构建服务器构建和部署此应用程序。推荐的方法是什么?的MSBuild? MSDeploy? Azure Functions CLI? FTP? 我无法使用源代码管理或VSTS部署。
一些示例脚本将不胜感激!
答案 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)
您可以从功能应用程序的配置中设置持续部署。在一天结束时,您希望在构建服务器上利用您喜欢的任何工具“发布”您的应用程序,然后将这些资产部署为功能应用程序。
要设置部署,请导航到您的功能应用。
这与其他选项类似 - 例如,如果您选择DropBox,它将监视位置并在文件更改/刷新后更新。
这里有一篇关于此功能的完整文章: