如何配置Azure Core Tools使用自托管ExtensionBundle
本地配置Azure Core Tools从自托管端点下载Functions扩展包操作步骤
企业内网环境拦截公网访问、无法连接默认公网扩展包源时,按以下步骤配置即可替换为内网自托管源:
- 提前完成内网制品同步:将对应版本的
Microsoft.Azure.Functions.ExtensionBundle全量包、配套的index.json索引文件上传至内网静态文件服务/制品仓库(Nexus、Artifactory、内网Nginx静态服务均可),保持和公网源一致的目录结构,确保本地开发机可正常访问内网地址下的索引和包文件。
方案1:全局配置(所有本地项目生效)
找到本地Azure Functions Core Tools安装路径下的配置文件,不同操作系统对应路径:
- Windows:
%APPDATA%\npm\node_modules\azure-functions-core-tools\bin\workers\dotnet\ExtensionBundleConfig.json(独立安装版请对应到自身安装目录下的同相对路径) - macOS/Linux:
/usr/local/lib/node_modules/azure-functions-core-tools/bin/workers/dotnet/ExtensionBundleConfig.json
打开文件后将默认的uri字段值替换为内网托管的index.json完整访问地址即可,修改后配置示例:
{ "defaultBundleVersion": "[4.*, 5.0.0)", "uri": "http://内网制品仓库地址/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle/index.json" }
方案2:项目级配置(仅当前项目生效,推荐团队统一配置)
如果不想修改本地全局配置,可直接在项目根目录的host.json中指定扩展包源,配置优先级高于全局配置,配置示例:
{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[4.*, 5.0.0)", "uri": "http://内网制品仓库地址/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle/index.json" } }
配置验证
- 如需验证源是否生效,先删除本地已缓存的扩展包文件,缓存路径:
- Windows:
%USERPROFILE%\.azure-functions-core-tools\Functions\ExtensionBundles - macOS/Linux:
~/.azure-functions-core-tools/Functions/ExtensionBundles
- Windows:
- 在项目目录执行
func host start启动运行时,查看日志中的扩展包拉取记录,若显示从你配置的内网地址拉取索引、下载扩展包,无公网连接报错即为配置成功。
注意:内网托管的
index.json中记录的扩展包下载地址也要同步替换为对应的内网包地址,否则会出现索引拉取成功但包下载失败的问题。
内容的提问来源于stack exchange,提问作者Yacine Zalouani
相关产品推荐
相关产品推荐

