#azure #azure-batch
#azure #azure-batch
Вопрос:
Есть ли способ установить версию приложения по умолчанию в azure batch account с помощью java sdk? Пример сценария, который у них есть в git, не показывает, как установить версию по умолчанию version(https://github.com/Azure-Samples/batch-java-manage-batch-accounts/blob/master/src/main/java/com/microsoft/azure/management/batch/samples/ManageBatchAccount.java).
Также я пытался разобраться в interface(https://github.com/Azure/azure-libraries-for-java/blob/master/azure-mgmt-batch/src/main/java/com/microsoft/azure/management/batch/Application.java ), чтобы получить некоторые подсказки, но не смог увидеть ничего, что поддерживает обновление версии по умолчанию.
Обновить:
Мне удалось запустить обновление версии, следуя предложению @brklein:
BatchApplication batchApplication = batchAccount.applications().get(applicationName)
ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(applicationId, tenantId, appSecret, AzureEnvironment.AZURE)
BatchManager batchManager = BatchManager.authenticate(credentials, subscriptionId)
ApplicationsInner applicationsInner = batchManager.inner().applications()
ApplicationUpdateParameters parameters = new ApplicationUpdateParameters(defaultVersion: DEFAULT_APP_VERSION)
applicationsInner.update(resourceGroupName, batchAccountName, batchApplication.id(), parameters)
Ответ №1:
Не похоже, что версия по умолчанию отображается на клиентском уровне SDK.
Чтобы обойти это, вы должны иметь возможность вручную вызывать методы реализации, которые обладают полной функциональностью REST API (поскольку они генерируются автоматически). Для этого создайте либо CreateApplicationParameters
или ApplicationUpdateParameters
и установите свойство DefaultVersion. Затем вы можете вызвать методы создания или обновления реализаций вручную (https://github.com/Azure/azure-libraries-for-java/blob/78e8ff2940eba34bc63f8e7be6807a377500f5c7/azure-mgmt-batch/src/main/java/com/microsoft/azure/management/batch/implementation/ApplicationsInner.java#L474).
Комментарии:
1. Спасибо за ответ, это действительно полезно. Есть ли способ получить экземпляр applicactionsinner без создания его экземпляра вручную? Кажется, что единственный способ получить его — через BatchManagementClientImpl<-BatchManager, но BatchManager является частной собственностью в com.microsoft.azure.management. Azure.
2. Я полагаю, вам нужно будет создать свой собственный BatchManager, и тогда вы сможете получить его из средства доступа.