azure - 未处理的异常:Microsoft.Rest.Azure.CloudException
问题描述
我收到了这个错误:
未处理的异常:Microsoft.Rest.Azure.CloudException:对象 ID 为“XXX”的客户端“XXX”无权在范围“/subscriptions/YYY/resourcegroups/”上执行操作“Microsoft.Resources/subscriptions/resourcegroups/write” FluentRG' 或范围无效。如果最近授予访问权限,请刷新您的凭据。
我已将我的 Azure 帐户登录到 VS Code,并且我已将我的电子邮件地址作为我当前订阅的贡献者授予权限。尽管如此,仍然可以看到此异常。
using System;
using Microsoft.Azure.Management.Compute.Fluent;
using Microsoft.Azure.Management.Compute.Fluent.Models;
using Microsoft.Azure.Management.Fluent;
namespace RESTApp
{
class Program
{
static void Main(string[] args)
{
var azure = Azure.Authenticate("Azure-authentication.txt").WithDefaultSubscription();
Console.WriteLine("Creating a new VM...");
var windowsVM = azure.VirtualMachines.Define("VMCreatedWithFluent")
.WithRegion("West Europe")
.WithNewResourceGroup("FluentRG")
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIPAddressDynamic()
.WithNewPrimaryPublicIPAddress("fluentdns")
.WithPopularWindowsImage(KnownWindowsVirtualMachineImage.WindowsServer2012Datacenter)
.WithAdminUsername("serverAdmin")
.WithAdminPassword("mySuperSecurePassword18")
.WithSize(VirtualMachineSizeTypes.StandardDS3V2)
.Create();
Console.WriteLine("Successfully created a new VM: {0}!", windowsVM.Id);
Console.WriteLine("Press any key to exit...");
Console.ReadLine();
}
}
}
解决方案
我找到了您想参考的博客Azure-authentication.txt
(因为代码与您的相同,并且也用于身份验证)。
在此博客中,它使用服务主体凭据Azure-authentication.txt
进行身份验证,而不是您登录的用户帐户,要解决此问题,您需要为您的服务主体分配 RBAC 角色,只需按照博客中的步骤Setting up a Service Principal
操作即可。
您也可以在门户中执行此操作,如果您完全按照此博客进行操作,服务主体名为FluentAPIApp
,只需导航到门户中的订阅 -> Access control (IAM)
-> 搜索其名称并为其分配一个Contributor
,如下所示。
推荐阅读
- python - 当 lib 文件夹中存在烧瓶时,GCP 找不到烧瓶
- mongodb - MongoDB 文档大小限制
- javascript - 如何在javascript中查找JSON数组中的重复值?
- html - 是否可以使用纯 CSS/HTML 而没有 JavaScript 来实现 GDPR Cookie 同意?不希望脚本阻止程序阻止它
- java - 如何访问键“text/plain”中的数据
- java - 将 JVM 调试参数传递给 Spring JarLauncher
- php - 如何使用 php 通过脚本输出文件夹 dir 函数输入文件夹文件
- php - 将较新版本的 PHP 添加到 XAMPP 与升级到较新版本的 PHP
- xpages - 将richttextitem从docA复制到具有不同字段名的docB
- html - 网页抓取的基础知识