尝试从Azure-Java-SDK
运行CreateVMExample.java VirtualMachine vm = ComputeHelper.createVM(
resourceManagementClient, computeManagementClient, networkResourceProviderClient, storageManagementClient,
context, "javaSampleVM", "Foo12", "BaR@123rgababaab")
.getVirtualMachine();
System.out.println(vm.getName() + " is created");
并收到以下错误。
Exception in thread "main" java.util.concurrent.ExecutionException: com.microsoft.windowsazure.exception.ServiceException: MissingSubscriptionRegistration: The subscription is not registered to use namespace 'Microsoft.Storage'.
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at com.microsoft.azure.management.storage.StorageAccountOperationsImpl.create(StorageAccountOperationsImpl.java:737)
at com.microsoft.azure.utility.StorageHelper.createStorageAccount(StorageHelper.java:71)
at com.microsoft.azure.utility.StorageHelper.createStorageAccount(StorageHelper.java:53)
at com.microsoft.azure.utility.ComputeHelper.createVM(ComputeHelper.java:246)
at com.microsoft.azure.utility.ComputeHelper.createVM(ComputeHelper.java:213)
at com.microsoft.azure.auth.CreateVMExample.main(CreateVMExample.java:74)
由于我是AWS的新手,无法理解从哪里开始。看到同样的错误泄漏到Azure PS。但没有多大帮助。请提出建议。我正在使用Azure Active Directory身份验证。感谢。
答案 0 :(得分:1)
您引用的存储帐户名是否可能是旧存储帐户?如果你去portal.azure.com存储帐户将分为两类:存储帐户(经典)和存储帐户。如果您引用的帐户位于经典列表中,请尝试创建新的存储帐户,然后引用该帐户吗?
答案 1 :(得分:1)
此问题是由Azure AD身份验证引起的。
文档"验证Azure资源管理请求"(https://msdn.microsoft.com/en-us/library/azure/dn790557.aspx)表示"您使用Azure资源管理器对资源执行的所有任务都必须使用Azure Active Directory进行身份验证。 &#34 ;.因此,使用类ComputeHelper
的Azure资源管理API必须使用AAD进行身份验证。
首先,您需要使用管理门户在Azure AD上设置身份验证。有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/azure/dn790557.aspx#bk_portal和https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/。
有一个示例项目(https://github.com/Azure-Samples/active-directory-java-graphapi-web)用于在Java中调用Azure AD,它可以为您提供帮助。