从构建服务器构建和部署 Azure Functions 应用程序
Build and Deploy Azure Functions App from Build Server
我有一个使用 C# 和 Microsoft.NET.Sdk.Function 在 Visual Studio 中开发的 Azure Functions 应用程序。
我需要从我们的 Jenkins 构建服务器构建和部署这个应用程序。推荐的方法是什么?建构?部署? Azure Functions CLI? FTP?
我无法使用源代码管理或 VSTS 部署。
一些示例脚本将不胜感激!
我分两步完成部署。首先,使用 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 资源管理器能够访问包!
这是一个有趣的解决方案!我 explored the options 不久前,现在只是 FTP 并等待可移植的 Functions CLI 或使用压缩的 CLI 发布。
您可以从功能应用程序的配置中设置持续部署。在一天结束时,您希望 "publish" 您的应用程序利用构建服务器上您喜欢的任何工具,然后将这些资产部署为函数应用程序。
要设置部署,请导航到您的函数应用。
- 单击 "Platform Features." 您将看到一个名为 "Code Deployment" 的部分。
- 单击"Deployment Options",系统将提示您设置源。在这里您可以选择 GitHub、本地 git、Dropbox 等。假设您使用的是本地 git。
- 配置后从门户中获取 git 端点
- 在您的构建服务器上创建一个 git 存储库,可以是本地的,也可以是您要从中部署的任何地方。将 (3) 中的端点设置为远程。 git 文件结构应该是您发布的函数的根目录。
- 设置您的构建以在发布后远程推送。 Azure 将检测更改并自动更新函数应用程序。
这与其他选项类似 - 例如,如果您选择 DropBox,它将监控位置并在文件为 changed/refreshed 后更新。
这里有一篇关于此功能的完整文章:
msbuild 可以,请参考 link here 了解更多信息
msbuild AzureFuncTest.sln /t:Rebuild /p:Configuration=Debug;PublishProfile=LocalDebug;DeployOnBuild=true;VisualStudioV
ersion=15.0
我有一个使用 C# 和 Microsoft.NET.Sdk.Function 在 Visual Studio 中开发的 Azure Functions 应用程序。
我需要从我们的 Jenkins 构建服务器构建和部署这个应用程序。推荐的方法是什么?建构?部署? Azure Functions CLI? FTP? 我无法使用源代码管理或 VSTS 部署。
一些示例脚本将不胜感激!
我分两步完成部署。首先,使用 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 资源管理器能够访问包!
这是一个有趣的解决方案!我 explored the options 不久前,现在只是 FTP 并等待可移植的 Functions CLI 或使用压缩的 CLI 发布。
您可以从功能应用程序的配置中设置持续部署。在一天结束时,您希望 "publish" 您的应用程序利用构建服务器上您喜欢的任何工具,然后将这些资产部署为函数应用程序。
要设置部署,请导航到您的函数应用。
- 单击 "Platform Features." 您将看到一个名为 "Code Deployment" 的部分。
- 单击"Deployment Options",系统将提示您设置源。在这里您可以选择 GitHub、本地 git、Dropbox 等。假设您使用的是本地 git。
- 配置后从门户中获取 git 端点
- 在您的构建服务器上创建一个 git 存储库,可以是本地的,也可以是您要从中部署的任何地方。将 (3) 中的端点设置为远程。 git 文件结构应该是您发布的函数的根目录。
- 设置您的构建以在发布后远程推送。 Azure 将检测更改并自动更新函数应用程序。
这与其他选项类似 - 例如,如果您选择 DropBox,它将监控位置并在文件为 changed/refreshed 后更新。
这里有一篇关于此功能的完整文章:
msbuild 可以,请参考 link here 了解更多信息
msbuild AzureFuncTest.sln /t:Rebuild /p:Configuration=Debug;PublishProfile=LocalDebug;DeployOnBuild=true;VisualStudioV
ersion=15.0