You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地调用Azure Key Vault遇503错误,请求协助解决

问题:本地Azure函数从Azure Key Vault获取密钥时遭遇503认证失败

我尝试从Azure Key Vault获取密钥值,却遇到以下异常:

ManagedIdentityCredential authentication failed: Service request failed.
Status: 503 (Service Unavailable)
Content:"service_unavailable
error_description:Service not available because the machine is not connected to Azure. Connection status: Disconnected."

我的C#代码如下:

string keyVaultName = Environment.GetEnvironmentVariable("keyVaultName");
var kvUri = "https://" + keyVaultName + ".vault.azure.net";

var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());
var secretName = "testKeyVault";
try
{
    var clientIdRecord = await client.GetSecretAsync(secretName);

    string KeyvaultValue = clientIdRecord.Value.Value;
    return new OkObjectResult(KeyvaultValue);
}
// 原代码缺失try块闭合逻辑,建议补充
catch (Exception ex)
{
    // 新增异常处理便于排查问题
    return new BadRequestObjectResult(ex.Message);
}

local settings.json配置:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "keyVaultName": "DemoProjectVault"
  }
}

恳请协助解决该问题。


解决方案
  • 确认网络连接:检查本地机器是否正常联网,可尝试登录Azure门户验证能否访问Azure服务。
  • 通过Azure CLI提供本地身份:
    1. 安装最新版Azure CLI。
    2. 在终端执行az login,登录拥有目标Key Vault访问权限的Azure账号。
    3. 确保该账号已被授予Key Vault的Secret Reader(或更高权限)角色:进入Azure门户的目标Key Vault → 访问控制(IAM) → 添加角色分配,选择对应角色和账号。
  • 验证Key Vault名称:确认local settings.json中的keyVaultName与Azure中实际存在的Key Vault名称完全一致。
  • Visual Studio身份验证(若使用VS开发):打开Visual Studio,通过右上角账户入口登录正确的Azure账号,确保该账号拥有Key Vault访问权限。
  • 完善代码异常处理:补全原代码中缺失的try-catch闭合逻辑,便于捕获和定位问题。

内容的提问来源于stack exchange,提问作者F sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:25:23