Невозможно перечислить службы приложений Azure (приложения с начальной загрузкой) в подписке с использованием библиотек управления Azure для Java - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь перечислить мое развернутое приложение весенней загрузки в appservices в одной из моих подписок Azure, используя библиотеки управления Azure для Java, но не могу этого сделать.

Все отлично работает из лазурного кли.

azure java sdk version 1.18.0 (latest)
jdk version 1.8.0_172

build.gradle

dependencies {
    compile group: 'com.microsoft.azure', name: 'azure', version: '1.18.0'
    compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

сниппеты

try {
    Azure azure = Azure
                   .configure()
                   .authenticate(applicationTokenCredentials)
                   .withDefaultSubscription();

            listWebApps(azure);
            listWebAppsUsingAppServicePlan(azure);

        } catch (IOException e) {
            e.printStackTrace();
        }

private static void listWebAppsUsingAppServicePlan(Azure azure){
    PagedList<WebApp> webAppPagedList = azure.appServices().webApps().list();
    System.out.printf("There are %d web apps when searched via azure.appServices().webApps()\n", webAppPagedList.size());
    for (WebApp app : webAppPagedList) {
        System.out.printf("App: %s, Deployment slots: %d", app.name(), app.deploymentSlots().list().size());
    }

}

private static void listWebApps(Azure azure){
    PagedList<WebApp> webAppPagedList = azure.webApps().list();
    System.out.printf("There are %d web apps when searched via azure.webApps()\n", webAppPagedList.size());
    for (WebApp app : webAppPagedList) {
        System.out.printf("App: %s, Deployment slots: %d", app.name(), app.deploymentSlots().list().size());
    }
}

выход

There are 0 web apps when searched via azure.webApps() There are 0 web apps when searched via azure.appServices().webApps()

Я что-то упустил или есть какие-то предпосылки, дайте мне знать.

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

каким-то образом azure.webApps().list() подход возвращал пустой список, но переключался на azure.webapps.listAsync() решил мою проблему.

Новый фрагмент

    azure.webApps().listAsync()
            .subscribe(webApp -> {
                int capacity = webApp.manager().appServicePlans().getById(webApp.appServicePlanId()).capacity();
                System.out.println(webApp.name() + ": " + capacity + (capacity == 1 ? " instance" : " instances"));
            });
}
0 голосов
/ 10 января 2019

Я тестирую код, но не gradle, мой - maven. И я использовал az ad sp create-for-rbac --sdk-auth > my.azureauth, чтобы получить файл my.azureauth, затем получил clientID, clientScrect, SunscribtionID и tenantID. Вот мой результат, он хорошо работает.

enter image description here

А вот и мой код.

import com.microsoft.azure.AzureEnvironment;
import com.microsoft.azure.PagedList;
import com.microsoft.azure.credentials.ApplicationTokenCredentials;
import com.microsoft.azure.management.Azure;
import com.microsoft.azure.management.appservice.WebApp;


public class App 
{
public static void main( String[] args )
{

    String client="*******";
    String tenant="*******";
    String key="********";
    String subscriptionId="********";
    ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(
            client, tenant, key, AzureEnvironment.AZURE);
    Azure azure = Azure.authenticate(credentials).withSubscription(subscriptionId);

    System.out.println("asd");
    listWebApps(azure);
    System.out.println("asd");
    listWebAppsUsingAppServicePlan(azure);
}



private static void listWebAppsUsingAppServicePlan(Azure azure){
    PagedList<WebApp> webAppPagedList = azure.appServices().webApps().list();
    System.out.printf("There are %d web apps when searched via azure.appServices().webApps()\n", webAppPagedList.size());
    for (WebApp app : webAppPagedList) {
        System.out.printf("App: %s, Deployment slots: %d", app.name(), app.deploymentSlots().list().size());
    }

}

private static void listWebApps(Azure azure){
    PagedList<WebApp> webAppPagedList = azure.webApps().list();
    System.out.printf("There are %d web apps when searched via azure.webApps()\n", webAppPagedList.size());
    for (WebApp app : webAppPagedList) {
        System.out.printf("App: %s, Deployment slots: %d", app.name(), app.deploymentSlots().list().size());
    }
}

}

Примечание. Проверка подлинности и запуск методов для получения веб-списков потребует много времени. Если у вас остались другие вопросы, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...