Azure Functions部署:无需Oryx构建自动化的替代方案咨询
无需修改VNet配置的Azure Functions部署替代方案
你遇到的错误是因为绑定VNet的App Service无法访问Oryx的外部CDN来完成构建,以下是几个不用修改网络配置的替代部署方式,完全绕过Oryx的远程构建流程:
本地构建后直接部署成品包
在本地完成代码编译、依赖安装等所有构建步骤,然后直接上传已就绪的运行时文件到App Service:- 用Azure Functions Core Tools的话,执行命令:
func azure functionapp publish <你的函数应用名称> --no-build,--no-build参数会跳过远程构建环节,直接上传本地已构建好的文件。 - 也可以手动把本地构建后的文件打包成Zip包,通过Azure门户的「部署中心」或者Azure CLI命令
az webapp deployment source config-zip完成上传部署。
- 用Azure Functions Core Tools的话,执行命令:
使用自定义容器镜像部署
将Azure Functions应用打包成Docker容器镜像,推送到Azure容器注册表(ACR)后,配置App Service直接运行这个镜像:- 可以用
func init --docker初始化带Docker支持的函数项目,本地构建镜像并推送到ACR,再在App Service的容器配置中指定镜像来源即可。这种方式所有构建工作都在本地或CI/CD流程中完成,App Service无需访问外部Oryx资源。
- 可以用
内部缓存构建依赖(进阶场景)
如果必须在App Service端执行构建,可以把Oryx所需的SDK和依赖提前同步到VNet内的Azure存储账户,然后通过自定义构建脚本指定从内部存储拉取依赖,不过这个方案需要额外的配置和维护成本,优先级低于前两种。
需要明确的是,Oryx只是App Service默认的构建工具,并非部署Azure Functions的唯一途径,上述方案都能在不修改VNet网络配置的前提下完成部署。
内容的提问来源于stack exchange,提问作者Joe Plumb
相关产品推荐
相关产品推荐

