Итак, я вроде как реализовал это следующим образом, и это можно рассматривать как альтернативный способ ... Рассматривая Azure SDK для java репо на Github (https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/postgresql ), похоже, они есть в бета-версии, поэтому я искал пом в mvnrepository. Я импортировал следующий pom в моем проекте (azure -mgmt- postgresql все еще находится в бета-версии):
<!-- https://mvnrepository.com/artifact/com.microsoft.azure.postgresql.v2017_12_01/azure-mgmt-postgresql -->
<dependency>
<groupId>com.microsoft.azure.postgresql.v2017_12_01</groupId>
<artifactId>azure-mgmt-postgresql</artifactId>
<version>1.0.0-beta-5</version>
</dependency>
В коде ниже приводится суть того, как я это сделал: у меня уже есть директор службы создан и имеет свою информацию со мной. Но любому, кто попытается это сделать, потребуются clientId
, tenantId
, clientSecret
и subscriptionId
с ними, как объяснил @Jim Xu.
// create the credentials object
ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(clientId, tenantId, clientSecret, AzureEnvironment.AZURE);
// build a rest client object configured with the credentials created above
RestClient restClient = new RestClient.Builder()
.withBaseUrl(credentials.environment(), AzureEnvironment.Endpoint.RESOURCE_MANAGER)
.withCredentials(credentials)
.withSerializerAdapter(new AzureJacksonAdapter())
.withResponseBuilderFactory(new AzureResponseBuilder.Factory())
.withInterceptor(new ProviderRegistrationInterceptor(credentials))
.withInterceptor(new ResourceManagerThrottlingInterceptor())
.build();
// use the PostgreSQLManager
PostgreSQLManager psqlManager = PostgreSQLManager.authenticate(restClient, subscriptionId);
PagedList<Server> azurePsqlServers = psqlManager.servers().listByResourceGroup(resourceGrpName);
for(Server azurePsqlServer : azurePsqlServers) {
System.out.println(azurePsqlServer.fullyQualifiedDomainName());
System.out.println(azurePsqlServer.userVisibleState().toString());
System.out.println(azurePsqlServer.sku().name());
}
Примечание: класс Server
относится к com.microsoft.azure.management.postgresql.v2017_12_01.Server
Также, если вы посмотрите на класс Azure
, вы заметите, как они это делают внутри.
Для справки, вы можете использовать SqlServerManager sqlServerManager
в класс Azure
и посмотрите, как они его использовали и создали менеджер с проверкой подлинности на случай, если вы захотите использовать некоторые службы, которые все еще находятся в preview
или beta
.