部署至Azure App Service的控制台应用遇Azure CLI未安装错误的解决问询
解决方案:使用Azure托管身份访问密钥保管库
不要在Azure App Service中安装Azure CLI,这既不必要也不是推荐的做法。问题根源是DefaultAzureCredential在App Service环境下尝试使用Azure CLI凭据,但App Service默认没有安装CLI。正确的做法是利用Azure托管身份实现无密钥访问:
步骤1:为App Service启用系统分配托管身份
- 登录Azure门户,打开你的App Service实例
- 左侧导航栏选择「身份」,切换到「系统分配」标签页
- 将状态设置为「开启」,点击「保存」确认
步骤2:为托管身份授予密钥保管库访问权限
- 打开目标密钥保管库,左侧导航栏选择「访问策略」
- 点击「添加访问策略」:
- 权限选择「机密」类别下的「获取」权限
- 主体选择你的App Service名称(系统分配托管身份的名称与App Service一致)
- 点击「添加」后保存策略
代码无需修改
你的现有代码使用DefaultAzureCredential是正确的,它会自动适配App Service环境,优先使用托管身份获取令牌,不会再尝试Azure CLI,因此无需改动代码即可解决错误。
补充说明
- 本地开发时,
DefaultAzureCredential会自动使用你的Azure CLI登录凭据,保持本地调试正常 - 若需使用用户分配托管身份,可在实例化
DefaultAzureCredential时指定ManagedIdentityClientId参数
内容的提问来源于stack exchange,提问作者tval
相关产品推荐
相关产品推荐

