如何无需Maven插件部署预打包Quarkus Azure Functions应用?
无需Maven插件部署预打包Quarkus Azure Functions应用的方法
当然可以,以下是几种可行的方案,帮你实现预打包Quarkus应用的部署、升级与回滚,避免每次部署都重新构建源码:
1. 用Azure CLI直接部署预构建压缩包
Quarkus打包Azure Functions应用后,会在target/azure-functions/<你的函数应用名称>目录下生成完整的函数运行文件。你可以手动将该目录打包为zip文件,然后通过Azure CLI直接部署:
确保已安装并登录Azure CLI,执行命令:
az functionapp deployment source config-zip --resource-group <你的资源组名> --name <你的函数应用名> --src <预打包的zip文件路径>
该命令会直接将预构建包部署到Azure Functions,跳过源码构建环节。
2. 拆分CI/CD流程中的构建与部署阶段
在CI/CD管道中分离构建和部署步骤,实现不可变包的管理:
- 构建阶段:在独立环境执行Quarkus打包命令,禁用自动部署:
生成的包作为不可变产物存储(比如CI/CD平台的产物库、Azure Blob存储)。mvn package -Dquarkus.azure-functions.deploy=false - 部署阶段:从存储中拉取指定版本的预构建包,通过Azure CLI、PowerShell或Azure Functions部署API完成部署。
这种方式可以保留多版本包,升级或回滚时只需切换部署对应版本的包即可。
3. 部署独立运行时包
Quarkus支持生成包含所有依赖的独立可执行jar包,搭配Azure Functions配置文件打包部署:
- 先执行命令生成独立jar包:
mvn package -Dquarkus.package.type=uber-jar - 将生成的jar包与Azure Functions必需的配置文件(
host.json、function.json等)一起打包为zip。 - 最后通过Azure CLI或Azure门户上传该zip包完成部署。此包完全不可变,升级时替换对应版本zip即可。
回滚操作说明
只要保留各版本的预构建包,回滚就非常简单:直接重新部署目标版本的包即可。另外,你可以借助Azure Functions的部署槽位功能,将新版本部署到测试槽验证,无误后再切换到生产槽,进一步降低回滚风险。
内容的提问来源于stack exchange,提问作者Phyxx
相关产品推荐
相关产品推荐

