Znalazłem, jak przesyłać / zarządzać pakietami aplikacji Azure Wsad Praca przez UI:

https://docs.microsoft.com/en-us/azure/batch/batch-Application-package.

Oraz jak przesyłać i zarządzać pakietami zasobów programowo:

https://github.com/azure/azure-batch-samples/tree/master/csharp/gettingStarted/02_poolsandresourcefiles.

Ale nie mogę się dość wydawać 2 i 2 razem na temat programatycznego zarządzania pakietami aplikacji. Czy istnieje punkt końcowy API, możemy zadzwonić do przesyłania / zarządzania pakietem aplikacji podczas konfigurowania pracy wsadowej?

3
Lane Goolsby 15 luty 2017, 23:14

2 odpowiedzi

Najlepsza odpowiedź

Ponieważ nie jest to dość proste, zapiszę moje odkrycia. Są to kroki, aby programowo przesyłać pakiety aplikacji za pośrednictwem aplikacji, która jest nienadzorowana - brak danych wejściowych (np. Poświadczenia Azure).

W portalu Azure:

  • Utwórz aplikację wsadowej Azure
  • Utwórz nowy Aplikacja Azure AD (jako typ aplikacji Użyj Web app / API)
  • Śledź Te kroki Aby utworzyć tajny klucz i przypisać rolę do konta wsadowego Azure
  • Zanotuj następujące poświadczenia / IDS:

W swoim kodzie:

Zebierz cały kod wygląda na coś takiego:

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);
}
8
Robar 25 październik 2017, 08:02

Operacje zarządzania aplikacjami w partii Azure występują na płaszczyźnie zarządzania. Dokumenty MSDN dla tej przestrzeni nazw są tutaj:

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

Pakiet Nuget dla Microsoft.Azure.Management.Batch jest tutaj:

https://www.nuget.org/package/microsoft.azure.management.batch/

A następująca próbka pokazuje operacje płaszczyzny do zarządzania w C #, chociaż dotyczy operacji pakietów nie zastosowań:

https://github.com/azure/azure-batch-samples/tree/master/csharp/accountmanagement.

1
fpark 15 luty 2017, 23:44