Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在active directory中找不到Azure VM_Java_Azure_Azure Active Directory_Azure Resource Manager - Fatal编程技术网

Java 在active directory中找不到Azure VM

Java 在active directory中找不到Azure VM,java,azure,azure-active-directory,azure-resource-manager,Java,Azure,Azure Active Directory,Azure Resource Manager,我正在通过在Active Directory中创建的应用程序访问VM。此应用程序可以完全访问我尝试访问的所有资源 问题是找不到虚拟机。我可以访问虚拟机的资源组,但Azure报告内部没有虚拟机。知道为什么会这样吗 我的代码: ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(client, tenant, key, AzureEnvironment.AZURE); Azure azure = Azur

我正在通过在Active Directory中创建的应用程序访问VM。此应用程序可以完全访问我尝试访问的所有资源

问题是找不到虚拟机。我可以访问虚拟机的资源组,但Azure报告内部没有虚拟机。知道为什么会这样吗

我的代码:

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(client, tenant, key, AzureEnvironment.AZURE);
Azure azure = Azure.configure()
    .withLogLevel(LogLevel.NONE)
    .authenticate(credentials)
    .withSubscription(subscription);

VirtualMachine vm = azure.virtualMachines().getByResourceGroup(resourceGroup, vmName);
vm.start();

您是否确保您的订阅是正确的?我建议您打印您的订阅并检查它。下面的代码适合我

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(client, tenant, key, AzureEnvironment.AZURE);
Azure.Authenticated azureAuth = Azure.authenticate(credentials);
Azure azure = azureAuth.withSubscription(subscriptionid);
System.out.println("Selected subscription: " + azure.subscriptionId());

VirtualMachine vm = azure.virtualMachines().getByResourceGroup(resourceGroup, vmName);
System.out.println("Now VM is"+vm);
vm.start();
更新:


请确保您的虚拟机是ARM模式虚拟机,代码无法列出经典虚拟机。

您是否确保您的订阅正确?我建议您打印您的订阅并检查它。下面的代码适合我

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(client, tenant, key, AzureEnvironment.AZURE);
Azure.Authenticated azureAuth = Azure.authenticate(credentials);
Azure azure = azureAuth.withSubscription(subscriptionid);
System.out.println("Selected subscription: " + azure.subscriptionId());

VirtualMachine vm = azure.virtualMachines().getByResourceGroup(resourceGroup, vmName);
System.out.println("Now VM is"+vm);
vm.start();
更新:


请确保您的虚拟机是ARM模式虚拟机,代码无法列出经典虚拟机。

请确保您的虚拟机是在资源组中创建的,并且订阅正确。您可以在Azure Portal上检查它们。请确保您的VM是在资源组中创建的,并且订阅正确。您可以在Azure Portal上检查它们。vm位于正确的资源组中。我发现问题是因为vm是在ASM中创建的,而我使用的SDK仅适用于ARM vm。vm位于正确的资源组中。我发现问题是因为虚拟机是在ASM中创建的,而我使用的SDK只适用于ARM虚拟机。