2017-02-15 2 views
2

Я нашел, как загрузить/управлять Azure Пакеты Batch работу приложений через пользовательский интерфейс:Загрузить Azure Batch Job Application Package программным

https://docs.microsoft.com/en-us/azure/batch/batch-application-packages

и как загружать и управлять пакетами ресурсов программными средствами:

https://github.com/Azure/azure-batch-samples/tree/master/CSharp/GettingStarted/02_PoolsAndResourceFiles

Но я не могу представить, как 2 и 2 вместе управлять программными пакетами программ. Есть ли конечная точка API, которую мы можем вызывать для загрузки/управления пакетом приложений при настройке пакетного задания?

+0

Здравствуйте, вы нашли способ, чтобы загрузить пакет Джопа приложений? – Robar

+0

Я сделал, но я не помню, как и я больше не работаю над этим проектом, поэтому я не могу ссылаться на код. Я думаю, что комментарии @ fpark ниже помогли мне. Извините, я не мог больше помочь. :( –

ответ

4

Поскольку это не совсем понятно, я напишу свои выводы. Ниже перечислены шаги по программной загрузке пакетов приложений с помощью автоматического приложения - не требуется вводить пользовательский ввод (например, учетные данные Azure).

В Azure Portal:

  • Создать Azure приложение Batch
  • Create a new Azure AD application (как тип приложения используют Web app/API)
  • Следуйте these steps, чтобы создать секретный ключ и назначить роль в Azure Пакетный счет
  • Заполните следующие реквизиты/идентификационные данные:
    • Azure AD идентификатор приложения
    • Azure приложение AD секретный ключ
    • Azure AD tenant id
    • Subscription id
    • Имя пакета счет
    • Batch имя учетной записи группы ресурсов

В коде:

Соединенные весь код выглядит примерно так:

private const string ResourceUri = "https://management.core.windows.net/"; 
private const string AuthUri = "https://login.microsoftonline.com/" + "{TenantId}"; 
private const string ApplicationId = "{ApplicationId}"; 
private const string ApplicationSecretKey = "{ApplicationSecretKey}"; 
private const string SubscriptionId = "{SubscriptionId}"; 
private const string ResourceGroupName = "{ResourceGroupName}"; 
private const string BatchAccountName = "{BatchAccountName}"; 

private async Task UploadApplicationPackageAsync() { 
    // get the access token 
    var authContext = new AuthenticationContext(AuthUri); 
    var authResult = await authContext.AcquireTokenAsync(ResourceUri, new ClientCredential(ApplicationId, ApplicationSecretKey)).ConfigureAwait(false); 

    // create the BatchManagementClient and set the subscription id 
    var bmc = new BatchManagementClient(new TokenCredentials(authResult.AccessToken)) { 
     SubscriptionId = SubscriptionId 
    }; 

    // create the application package 
    var createResult = await bmc.ApplicationPackage.CreateWithHttpMessagesAsync(ResourceGroupName, BatchAccountName, "MyPackage", "1.0").ConfigureAwait(false); 

    // upload the package to the blob storage 
    var cloudBlockBlob = new CloudBlockBlob(new Uri(createResult.Body.StorageUrl)); 
    cloudBlockBlob.Properties.ContentType = "application/x-zip-compressed"; 
    await cloudBlockBlob.UploadFromFileAsync("myZip.zip").ConfigureAwait(false); 

    // create the application package 
    var activateResult = await bmc.ApplicationPackage.ActivateWithHttpMessagesAsync(ResourceGroupName, BatchAccountName, "MyPackage", "1.0", "zip").ConfigureAwait(false); 
} 
1

Операции управления пакетами Azure Batch Application выполняются на плоскости управления. Документов MSDN для этого пространства имен здесь:

https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.batch

NuGet пакет для Microsoft.Azure.Management.Batch здесь:

https://www.nuget.org/packages/Microsoft.Azure.Management.Batch/

А следующий пример показывает плоскости управления операциями в C#, хотя для операции без применения:

https://github.com/Azure/azure-batch-samples/tree/master/CSharp/AccountManagement

+0

Проясню это в документации. –