VS Code本地测试Function App:代理设置导致Az.KeyVault模块加载失败求助
本地PowerShell Function App Az.KeyVault模块下载与代理冲突的解决办法
方法1:手动部署本地模块
- 临时开启AutoConfig代理,打开PowerShell 7.x(需与Function App使用的版本一致),执行命令下载指定版本的Az.KeyVault模块:
# 先查询兼容PS7的版本 Find-Module Az.KeyVault -AllVersions | Where-Object {$_.PowerShellVersion -le [version]"7.4"} # 下载到本地临时目录 Save-Module -Name Az.KeyVault -Path .\temp-modules -RequiredVersion <查询到的兼容版本号> - 关闭AutoConfig代理,在Function App项目根目录创建
.powershell/modules文件夹(如果不存在),将下载好的Az.KeyVault文件夹复制到该目录下。 - 确认
requirements.psd1中已添加对应版本的模块声明:@{ 'Az.KeyVault' = '<你下载的版本号>' } - 重启Function App,此时应用会直接加载本地模块,无需联网下载。
方法2:配置代理让Function App联网下载
- 保留AutoConfig代理设置,修改Function App的
local.settings.json,添加代理环境变量:
(代理地址和端口可从系统代理设置中获取,比如常见的{ "Values": { // 保留原有配置,新增以下内容 "HTTP_PROXY": "http://<你的代理地址>:<端口>", "HTTPS_PROXY": "http://<你的代理地址>:<端口>", "NO_PROXY": "localhost,127.0.0.1" } }http://127.0.0.1:8888) - 打开PowerShell,配置PowerShell Gallery的代理权限:
[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy('http://<你的代理地址>:<端口>') [System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials - 重启Function App,此时应用将通过代理连接PowerShell Gallery自动下载并加载Az.KeyVault模块。
方法3:离线导入模块包
- 在有网络的环境(或临时切换网络)中,下载Az.KeyVault的离线包:
Save-Module -Name Az.KeyVault -Path . -AsNupkg -RequiredVersion <兼容PS7的版本号> - 将下载的
.nupkg文件复制到本地Function App项目目录,执行安装命令:Install-Module -Name Az.KeyVault -Path .\Az.KeyVault.<版本号>.nupkg -Scope CurrentUser -Force - 在Function App的启动脚本中添加模块路径(确保应用能找到已安装的模块):
$env:PSModulePath += ";$HOME\Documents\PowerShell\Modules" - 关闭AutoConfig代理,重启Function App测试。
内容的提问来源于stack exchange,提问作者Philip Woodring
相关产品推荐
相关产品推荐

