2017-07-26 31 views
0

我正在開發一個小項目,以列出訂閱下的所有VirtualNetworks詳細信息。在我們的訂閱中,我們有經典和ARM虛擬網絡。我正在使用Azure最新的Java SDK(1.1.2)來提取信息。我正在使用下面的API調用,它僅從ARM返回VNets,而不是從經典版中返回。請參閱代碼片段。如何使用Java API獲取Azure經典虛擬網絡的列表

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(
       clientId, tenantId, clientKey, AzureEnvironment.AZURE); 
     Azure azure = Azure.authenticate(credentials).withSubscription(subscriptionId); 
for (Network virtualNetwork : azure.networks().list()){ 
      Utils.print(virtualNetwork); 
     } 

如何獲得ARM和傳統VNets?

+0

考慮發佈版本號 - 「最新的Java SDK」會隨着時間而改變。 – user3486184

+0

我正在使用SDK版本 - 1.1.2即'com.microsoft.azure:azure:1.1.2' –

回答

0

ASM(Azure服務管理)的API支持列出經典虛擬網絡的功能。

有兩種方法如下。

  1. 使用Azure的Java SDK中的ASM,您可以通過Maven倉庫azure-svc-mgmt & azure-svc-mgmt-network安裝,並按照blogNetworkManagementService來驗證創建的NetworkManagementClient一個實例getNetworksOperations()list()NetworkListResponse

  2. 通過ASM的REST API List Virtual Network Sites獲得XML響應,並參考參考Authenticating Service Management RequestsService to service calls using client credentials (shared secret or certificate) & Create the request創建一個身份驗證的請求來調用REST API。

同時,你也可以參考這些類似的SO線程的ASM如下。

  1. Azure retrieving the PublicIPAddress of VirtualMachines from Azure Java SDK
  2. MS Azure java client code throws the error

希望它能幫助。

+0

感謝您的快速響應。所以,我必須使用兩個不同的SDK,以便使用兩個不同的API來提取信息。最糟糕的部分是認證程序也不同。我們不能要求我們的客戶做兩件不同的事情來獲取信息。我認爲更好的選擇是實現普通的REST Java客戶端來獲取信息。 –

相關問題