Tworzenie i wdrażanie rozwiązania HPC za pomocą usługi Azure Pipelines

Narzędzia usługi Azure DevOps umożliwiają automatyzowanie tworzenia i testowania Azure Batch rozwiązań do obliczeń o wysokiej wydajności (HPC). Usługa Azure Pipelines udostępnia nowoczesne procesy ciągłej integracji i ciągłego wdrażania (CD) na potrzeby tworzenia, wdrażania, testowania i monitorowania oprogramowania. Te procesy przyspieszają dostarczanie oprogramowania, co pozwala skupić się na kodzie, a nie na obsłudze infrastruktury i operacji.

W tym artykule pokazano, jak skonfigurować procesy ciągłej integracji/ciągłego wdrażania przy użyciu usługi Azure Pipelines z szablonami usługi Azure Resource Manager (szablonami usługi ARM) w celu wdrożenia rozwiązań HPC na Azure Batch. W przykładzie tworzony jest potok kompilacji i wydania w celu wdrożenia infrastruktury Azure Batch i wydania pakietu aplikacji. Na poniższym diagramie przedstawiono ogólny przepływ wdrażania, przy założeniu, że kod jest opracowywany lokalnie:

Diagram przedstawiający przepływ wdrożenia w potoku.

Wymagania wstępne

Aby wykonać kroki opisane w tym artykule, potrzebne są następujące elementy:

Przygotowywanie rozwiązania

W przykładzie w tym artykule użyto kilku szablonów usługi ARM i istniejącej aplikacji do przetwarzania wideo typu open source , FFmpeg. Możesz skopiować lub pobrać te zasoby i wypchnąć je do repozytorium Azure Repos.

Ważne

W tym przykładzie jest wdrażane oprogramowanie systemu Windows w węzłach usługi Batch opartych na systemie Windows. Usługa Azure Pipelines, szablony usługi ARM i usługa Batch również w pełni obsługują oprogramowanie i węzły systemu Linux.

Omówienie szablonów usługi ARM

Trzy szablony możliwości, podobne do jednostek lub modułów, implementują określone elementy funkcjonalności. Szablon kompleksowego rozwiązania wdraża następnie podstawowe szablony możliwości. Ta połączona struktura szablonu pozwala na indywidualne przetestowanie i ponowne użycie każdego szablonu możliwości w różnych rozwiązaniach.

Diagram przedstawiający połączoną strukturę szablonu przy użyciu szablonów usługi ARM.

Aby uzyskać szczegółowe informacje na temat szablonów, zobacz przewodnik informacyjny dotyczący szablonów Resource Manager dla typów zasobów Microsoft.Batch.

Szablon konta magazynu

Zapisz następujący kod jako plik o nazwie storageAccount.json. Ten szablon definiuje konto usługi Azure Storage, które jest wymagane do wdrożenia aplikacji na koncie usługi Batch.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "accountName": {
            "type": "string",
            "metadata": {
                 "description": "Name of the Azure Storage Account"
             }
         }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Storage/storageAccounts",
            "name": "[parameters('accountName')]",
            "sku": {
                "name": "Standard_LRS"
            },
            "apiVersion": "2018-02-01",
            "location": "[resourceGroup().location]",
            "properties": {}
        }
    ],
    "outputs": {
        "blobEndpoint": {
          "type": "string",
          "value": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('accountName'))).primaryEndpoints.blob]"
        },
        "resourceId": {
          "type": "string",
          "value": "[resourceId('Microsoft.Storage/storageAccounts', parameters('accountName'))]"
        }
    }
}

Szablon konta usługi Batch

Zapisz następujący kod jako plik o nazwie batchAccount.json. Ten szablon definiuje konto usługi Batch. Konto usługi Batch działa jako platforma do uruchamiania aplikacji w pulach węzłów.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "batchAccountName": {
           "type": "string",
           "metadata": {
                "description": "Name of the Azure Batch Account"
            }
        },
        "storageAccountId": {
           "type": "string",
           "metadata": {
                "description": "ID of the Azure Storage Account"
            }
        }
    },
    "variables": {},
    "resources": [
        {
            "name": "[parameters('batchAccountName')]",
            "type": "Microsoft.Batch/batchAccounts",
            "apiVersion": "2017-09-01",
            "location": "[resourceGroup().location]",
            "properties": {
              "poolAllocationMode": "BatchService",
              "autoStorage": {
                  "storageAccountId": "[parameters('storageAccountId')]"
              }
            }
          }
    ],
    "outputs": {}
}

Szablon puli usługi Batch

Zapisz następujący kod jako plik o nazwie batchAccountPool.json. Ten szablon tworzy pulę węzłów i węzły na koncie usługi Batch.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "batchAccountName": {
           "type": "string",
           "metadata": {
                "description": "Name of the Azure Batch Account"
           }
        },
        "batchAccountPoolName": {
            "type": "string",
            "metadata": {
                 "description": "Name of the Azure Batch Account Pool"
             }
         }
    },
    "variables": {},
    "resources": [
        {
            "name": "[concat(parameters('batchAccountName'),'/', parameters('batchAccountPoolName'))]",
            "type": "Microsoft.Batch/batchAccounts/pools",
            "apiVersion": "2017-09-01",
            "properties": {
                "deploymentConfiguration": {
                    "virtualMachineConfiguration": {
                        "imageReference": {
                            "publisher": "MicrosoftWindowsServer",
                            "offer": "WindowsServer",
                            "sku": "2022-datacenter",
                            "version": "latest"
                        },
                        "nodeAgentSkuId": "batch.node.windows amd64"
                    }
                },
                "vmSize": "Standard_D2s_v3"
            }
          }
    ],
    "outputs": {}
}

Szablon programu Orchestrator

Zapisz następujący kod jako plik o nazwie deployment.json. Ten ostateczny szablon pełni rolę orkiestratora w celu wdrożenia trzech podstawowych szablonów możliwości.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "StorageContainerUri": {
           "type": "string",
           "metadata": {
                "description": "URI of the Blob Storage Container containing the Azure Resource Manager templates"
            }
        },
        "StorageContainerSasToken": {
           "type": "string",
           "metadata": {
                "description": "The SAS token of the container containing the Azure Resource Manager templates"
            }
        },
        "applicationStorageAccountName": {
            "type": "string",
            "metadata": {
                 "description": "Name of the Azure Storage Account"
            }
         },
        "batchAccountName": {
            "type": "string",
            "metadata": {
                 "description": "Name of the Azure Batch Account"
            }
         },
         "batchAccountPoolName": {
             "type": "string",
             "metadata": {
                  "description": "Name of the Azure Batch Account Pool"
              }
          }
    },
    "variables": {},
    "resources": [
        {
            "apiVersion": "2017-05-10",
            "name": "storageAccountDeployment",
            "type": "Microsoft.Resources/deployments",
            "properties": {
                "mode": "Incremental",
                "templateLink": {
                  "uri": "[concat(parameters('StorageContainerUri'), 'arm-templates/storageAccount.json', parameters('StorageContainerSasToken'))]",
                  "contentVersion": "1.0.0.0"
                },
                "parameters": {
                    "accountName": {"value": "[parameters('applicationStorageAccountName')]"}
                }
            }
        },
        {
            "apiVersion": "2017-05-10",
            "name": "batchAccountDeployment",
            "type": "Microsoft.Resources/deployments",
            "dependsOn": [
                "storageAccountDeployment"
            ],
            "properties": {
                "mode": "Incremental",
                "templateLink": {
                  "uri": "[concat(parameters('StorageContainerUri'), 'arm-templates/batchAccount.json', parameters('StorageContainerSasToken'))]",
                  "contentVersion": "1.0.0.0"
                },
                "parameters": {
                    "batchAccountName": {"value": "[parameters('batchAccountName')]"},
                    "storageAccountId": {"value": "[reference('storageAccountDeployment').outputs.resourceId.value]"}
                }
            }
        },
        {
            "apiVersion": "2017-05-10",
            "name": "poolDeployment",
            "type": "Microsoft.Resources/deployments",
            "dependsOn": [
                "batchAccountDeployment"
            ],
            "properties": {
                "mode": "Incremental",
                "templateLink": {
                  "uri": "[concat(parameters('StorageContainerUri'), 'arm-templates/batchAccountPool.json', parameters('StorageContainerSasToken'))]",
                  "contentVersion": "1.0.0.0"
                },
                "parameters": {
                    "batchAccountName": {"value": "[parameters('batchAccountName')]"},
                    "batchAccountPoolName": {"value": "[parameters('batchAccountPoolName')]"}
                }
            }
        }
    ],
    "outputs": {}
}

Konfigurowanie repozytorium

Przekaż szablony usługi ARM, aplikację FFmpeg i plik definicji kompilacji YAML do repozytorium Azure Repos.

  1. Przekaż cztery szablony usługi ARM do folderu arm-templates w repozytorium.

  2. W przypadku pakietu aplikacji pobierz i wyodrębnij wersję 64-bitową systemu Windows FFmpeg 4.3.1 i przekaż ją do folderu hpc-application w repozytorium.

  3. W przypadku definicji kompilacji zapisz następującą definicję jako plik o nazwie hpc-app.build.yml i przekaż go do folderu pipelines w repozytorium.

    # To publish an application into Batch, you need to
    # first zip the file, and then publish an artifact, so
    # you can take the necessary steps in your release pipeline.
    steps:
    # First, zip up the files required in the Batch account.
    # For this instance, those are the ffmpeg files.
    - task: ArchiveFiles@2
      displayName: 'Archive applications'
      inputs:
        rootFolderOrFile: hpc-application
        includeRootFolder: false
        archiveFile: '$(Build.ArtifactStagingDirectory)/package/$(Build.BuildId).zip'
    # Publish the zip file, so you can use it as part
    # of your Release pipeline later.
    - task: PublishPipelineArtifact@0
      inputs:
        artifactName: 'hpc-application'
        targetPath: '$(Build.ArtifactStagingDirectory)/package'
    

Po zakończeniu konfigurowania repozytorium struktura folderów powinna mieć następujące główne sekcje:

  • Folder arm-templates zawierający szablony usługi ARM.
  • Folder hpc-application zawierający narzędzie ffmpeg.
  • Folder pipelines zawierający plik definicji kompilacji YAML dla potoku kompilacji.

Zrzut ekranu przedstawiający strukturę repozytorium.

Uwaga

Ta przykładowa struktura bazy kodu pokazuje, że można przechowywać kod aplikacji, infrastruktury i potoku w tym samym repozytorium.

Tworzenie potoku platformy Azure

Po skonfigurowaniu repozytorium kodu źródłowego użyj usługi Azure Pipelines , aby zaimplementować potok kompilacji, testowania i wdrażania dla aplikacji. Na tym etapie potoku zwykle są uruchamiane testy w celu weryfikacji kodu i kompilowania fragmentów oprogramowania. Liczba i typy testów oraz wszystkie inne uruchamiane zadania zależą od ogólnej strategii kompilacji i wydania.

Tworzenie potoku kompilacji

W tej sekcji utworzysz potok kompilacji YAML do pracy z oprogramowaniem ffmpeg uruchomionym na koncie usługi Batch.

  1. W projekcie usługi Azure DevOps wybierz pozycję Potoki w obszarze nawigacji po lewej stronie, a następnie wybierz pozycję Nowy potok.

  2. Na ekranie Where is your code (Gdzie to twój kod) wybierz pozycję Azure Repos Git.

    Zrzut ekranu przedstawiający ekran Nowy potok.

  3. Na ekranie Wybierz repozytorium wybierz repozytorium.

    Uwaga

    Potok kompilacji można również utworzyć przy użyciu projektanta wizualnego. Na stronie Nowy potok wybierz pozycję Użyj edytora klasycznego. Szablon YAML można użyć w projektancie wizualizacji. Aby uzyskać więcej informacji, zobacz Definiowanie potoku klasycznego.

  4. Na ekranie Konfigurowanie potoku wybierz pozycję Istniejący plik YAML usługi Azure Pipelines.

  5. Na ekranie Wybierz istniejący plik YAML wybierz plik hpc-app.build.yml z repozytorium, a następnie wybierz pozycję Kontynuuj.

  6. Na ekranie Przeglądanie potoku YAML przejrzyj konfigurację kompilacji, a następnie wybierz pozycję Uruchom lub wybierz daszek listy rozwijanej obok pozycji Uruchom i wybierz pozycję Zapisz. Ten szablon umożliwia ciągłą integrację, więc kompilacja jest wyzwalana automatycznie, gdy nowe zatwierdzenie w repozytorium spełnia warunki określone w kompilacji.

    Zrzut ekranu przedstawiający istniejący potok kompilacji.

  7. Możesz wyświetlić aktualizacje postępu kompilacji na żywo. Aby wyświetlić wyniki kompilacji, wybierz odpowiedni przebieg z definicji kompilacji w usłudze Azure Pipelines.

    Zrzut ekranu przedstawiający dane wyjściowe na żywo z kompilacji w usłudze Azure Pipelines.

Uwaga

Jeśli używasz aplikacji klienckiej do uruchamiania rozwiązania HPC, musisz utworzyć oddzielną definicję kompilacji dla tej aplikacji. Przewodniki z instrukcjami można znaleźć w dokumentacji usługi Azure Pipelines .

Tworzenie potoku wydania

Potok wydania usługi Azure Pipelines służy do wdrażania aplikacji i podstawowej infrastruktury. Potoki wydania umożliwiają ciągłe wdrażanie i automatyzowanie procesu wydawania. Istnieje kilka kroków wdrażania aplikacji i podstawowej infrastruktury.

Połączone szablony dla tego rozwiązania muszą być dostępne z publicznego punktu końcowego HTTP lub HTTPS. Ten punkt końcowy może być repozytorium GitHub, kontem Azure Blob Storage lub inną lokalizacją magazynu. Aby zapewnić bezpieczeństwo przekazanych artefaktów szablonu, należy je przechowywać w trybie prywatnym, ale uzyskiwać do nich dostęp przy użyciu tokenu sygnatury dostępu współdzielonego (SAS).

W poniższym przykładzie pokazano, jak wdrożyć infrastrukturę i aplikację przy użyciu szablonów z obiektu blob usługi Azure Storage.

Konfigurowanie potoku

  1. W projekcie usługi Azure DevOps wybierz pozycję Wydania potoków> w obszarze nawigacji po lewej stronie.

  2. Na następnym ekranie wybierz pozycję Nowy>potok wydania.

  3. Na ekranie Wybieranie szablonu wybierz pozycję Puste zadanie, a następnie zamknij ekran Etap .

  4. Wybierz pozycję Nowy potok wydania w górnej części strony i zmień nazwę potoku na odpowiedni dla potoku, na przykład Deploy Azure Batch + Pool (Wdróż Azure Batch i pulę).

    Zrzut ekranu przedstawiający początkowy potok wydania.

  5. W sekcji Artefakty wybierz pozycję Dodaj.

  6. Na ekranie Dodawanie artefaktu wybierz pozycję Kompiluj , a następnie wybierz potok kompilacji, aby uzyskać dane wyjściowe dla aplikacji HPC.

    Uwaga

    Możesz utworzyć alias źródłowy lub zaakceptować wartość domyślną. Zanotuj wartość aliasu źródłowego , ponieważ jest ona potrzebna do tworzenia zadań w definicji wydania.

    Zrzut ekranu przedstawiający link artefaktu do pakietu hpc-application w potoku kompilacji.

  7. Wybierz pozycję Dodaj.

  8. Na stronie potoku wybierz pozycję Dodaj obok pozycji Artefakty, aby utworzyć link do innego artefaktu — repozytorium Azure Repos. Ten link jest wymagany do uzyskania dostępu do szablonów usługi ARM w repozytorium. Szablony usługi ARM nie wymagają kompilacji, więc nie trzeba ich wypychać do potoku kompilacji.

    Uwaga

    Ponownie zanotuj wartość aliasu źródłowego do późniejszego użycia.

    Zrzut ekranu przedstawiający link artefaktu do repozytorium Azure Repos.

  9. Wybierz kartę Zmienne . Utwórz następujące zmienne w potoku, aby nie trzeba było ponownie wprowadzać tych samych informacji do wielu zadań.

    Nazwa Wartość
    applicationStorageAccountName Nazwa konta magazynu do przechowywania plików binarnych aplikacji HPC.
    batchAccountApplicationName Nazwa aplikacji na koncie usługi Batch.
    batchAccountName Nazwa konta usługi Batch.
    batchAccountPoolName Nazwa puli maszyn wirtualnych do wykonania przetwarzania.
    batchApplicationId Unikatowy identyfikator aplikacji usługi Batch formularza:
    /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>^
    /providers/Microsoft.Batch/batchAccounts/<batchAccountName>^
    /applications/<batchAccountApplicationName>.

    Zastąp <subscriptionId> symbol zastępczy identyfikatorem subskrypcji platformy Azure, a inne symbole zastępcze wartościami ustawionymi dla innych zmiennych na tej liście.
    batchApplicationVersion Semantyczna wersja aplikacji usługi Batch, w tym przypadku 4.3.1.
    Lokalizacji Region świadczenia usługi Azure dla zasobów, które mają zostać wdrożone.
    resourceGroupName Nazwa grupy zasobów, w ramach których mają zostać wdrożone zasoby.
    storageAccountName Nazwa konta magazynu do przechowywania połączonych szablonów usługi ARM.
    StorageContainerSasToken $(<referenceName>.StorageContainerSasToken). <referenceName Zastąp symbol zastępczy wartością Nazwa odwołania skonfigurowaną w sekcji Zmienne wyjściowe w poniższym kroku kopiowania plików platformy Azure.
    StorageContainerUri $(<referenceName>.StorageContainerUri). <referenceName> Zastąp symbol zastępczy wartością Nazwa odwołania skonfigurowaną w sekcji Zmienne wyjściowe kroku kopiowania plików platformy Azure.

    Zrzut ekranu przedstawiający zmienne ustawione dla wydania usługi Azure Pipelines.

  10. Wybierz kartę Zadania , a następnie wybierz pozycję Zadanie agenta.

  11. Na ekranie Zadanie agenta w obszarze Pula agentów wybierz pozycję Azure Pipelines.

  12. W obszarze Specyfikacja agenta wybierz pozycję windows-latest.

    Zrzut ekranu przedstawiający ustawienia zadania agenta.

Dodawanie zadań

Utwórz sześć zadań, aby:

  • Pobierz spakowane pliki ffmpeg.
  • Wdróż konto magazynu w celu hostowania zagnieżdżonych szablonów usługi ARM.
  • Skopiuj szablony usługi ARM do konta magazynu.
  • Wdróż konto usługi Batch i wymagane zależności.
  • Utwórz aplikację na koncie usługi Batch.
  • Przekaż pakiet aplikacji do konta usługi Batch.

Dla każdego nowego zadania określonego w następujących krokach:

  1. + Wybierz symbol obok pozycji Zadanie agenta w okienku po lewej stronie.

  2. Wyszukaj i wybierz określone zadanie w okienku po prawej stronie.

  3. Dodaj lub wybierz właściwości, aby skonfigurować zadanie.

  4. Wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający zadania używane do wydania aplikacji HPC do Azure Batch.

Utwórz zadania w następujący sposób:

  1. Wybierz zadanie Pobierz artefakty potoku i ustaw następujące właściwości:

    • Nazwa wyświetlana: wprowadź ciąg Download ApplicationPackage to Agent (Pobierz pakiet aplikacji) do agenta.
    • Nazwa artefaktu: wprowadź nazwę hpc-application.
    • Katalog docelowy: wprowadź .$(System.DefaultWorkingDirectory)
  2. Utwórz konto usługi Azure Storage do przechowywania szablonów usługi ARM. Możesz użyć istniejącego konta magazynu, ale aby obsługiwać ten samodzielny przykład i izolację zawartości, utwórz dedykowane konto magazynu.

    Wybierz wdrożenie szablonu usługi ARM: zadanie zakres grupy zasobów i ustaw następujące właściwości:

    • Nazwa wyświetlana: Wprowadź wartość Deploy storage account for ARM templates (Wdróż konto magazynu dla szablonów usługi ARM).
    • Połączenie usługi Azure Resource Manager: wybierz odpowiednią subskrypcję platformy Azure.
    • Subskrypcji: Wybierz odpowiednią subskrypcję platformy Azure.
    • Akcja: wybierz pozycję Utwórz lub zaktualizuj grupę zasobów.
    • Grupa zasobów: wprowadź .$(resourceGroupName)
    • Lokalizacja: wprowadź .$(location)
    • Szablon: wprowadź .$(System.ArtifactsDirectory)/<AzureRepoArtifactSourceAlias>/arm-templates/storageAccount.json Zastąp <AzureRepoArtifactSourceAlias> symbol zastępczy zanotowanymi wcześniej aliasem źródłowym repozytorium.
    • Zastąpij parametry szablonu: wprowadź wartość -accountName $(storageAccountName).
  3. Przekaż artefakty z kontroli źródła do konta magazynu. Część tego zadania kopiowania plików platformy Azure zwraca identyfikator URI kontenera konta magazynu i token SAS do zmiennej, aby można było użyć ich ponownie w kolejnych krokach.

    Wybierz zadanie kopiowania plików platformy Azure i ustaw następujące właściwości:

    • Nazwa wyświetlana: Wprowadź wartość Kopia pliku AzureBlob.
    • Źródła: Wprowadź wartość $(System.ArtifactsDirectory)/<AzureRepoArtifactSourceAlias>/arm-templates/. Zastąp <AzureRepoArtifactSourceAlias> symbol zastępczy zanotowanymi wcześniej aliasem źródłowym repozytorium.
    • Subskrypcja platformy Azure: Wybierz odpowiednią subskrypcję platformy Azure.
    • Typ miejsca docelowego: wybierz pozycję Azure Blob.
    • Konto magazynu usługi RM: wprowadź wartość $(storageAccountName).
    • Nazwa kontenera: wprowadź szablony.
    • Nazwa odwołania: rozwiń węzeł Zmienne wyjściowe, a następnie wprowadź wartość ffmpeg.

    Uwaga

    Jeśli ten krok zakończy się niepowodzeniem, upewnij się, że organizacja usługi Azure DevOps ma rolę Współautor obiektu blob usługi Storage na koncie magazynu.

  4. Wdróż szablon usługi ARM orkiestratora, aby utworzyć konto i pulę usługi Batch. Ten szablon zawiera parametry identyfikatora URI kontenera konta magazynu i token sas. Zmienne wymagane w szablonie usługi ARM są przechowywane w sekcji zmiennych definicji wydania i zostały ustawione w zadaniu kopiowania plików azureBlob.

    Wybierz wdrożenie szablonu usługi ARM: zadanie zakres grupy zasobów i ustaw następujące właściwości:

    • Nazwa wyświetlana: Wprowadź wartość Deploy Azure Batch (Wdróż Azure Batch).
    • Połączenie usługi Azure Resource Manager: wybierz odpowiednią subskrypcję platformy Azure.
    • Subskrypcji: Wybierz odpowiednią subskrypcję platformy Azure.
    • Akcja: wybierz pozycję Utwórz lub zaktualizuj grupę zasobów.
    • Grupa zasobów: wprowadź .$(resourceGroupName)
    • Lokalizacja: wprowadź .$(location)
    • Lokalizacja szablonu: wybierz adres URL pliku.
    • Link do szablonu: Wprowadź wartość $(StorageContainerUri)arm-templates/deployment.json$(StorageContainerSasToken).
    • Zastąpij parametry szablonu: wprowadź wartość -StorageContainerUri $(StorageContainerUri) -StorageContainerSasToken $(StorageContainerSasToken) -applicationStorageAccountName $(applicationStorageAccountName) -batchAccountName $(batchAccountName) -batchAccountPoolName $(batchAccountPoolName).

    Typowym rozwiązaniem jest użycie zadań usługi Azure Key Vault. Jeśli jednostka usługi połączona z subskrypcją platformy Azure ma odpowiedni zestaw zasad dostępu, może pobrać wpisy tajne z Key Vault i użyć jej jako zmiennej w potoku. Nazwa wpisu tajnego jest ustawiana ze skojarzona wartością. Możesz na przykład odwołać się do wpisu tajnego sshPassword z wartością $(sshPassword) w definicji wydania.

  5. Wywołaj interfejs wiersza polecenia platformy Azure, aby utworzyć aplikację w Azure Batch.

    Wybierz zadanie interfejsu wiersza polecenia platformy Azure i ustaw następujące właściwości:

    • Nazwa wyświetlana: Wprowadź wartość Create application in Azure Batch account (Utwórz aplikację na koncie Azure Batch).
    • Połączenie usługi Azure Resource Manager: wybierz odpowiednią subskrypcję platformy Azure.
    • Typ skryptu: wybierz pozycję PowerShell Core.
    • Lokalizacja skryptu: wybierz pozycję Skrypt wbudowany.
    • Wbudowany skrypt: wprowadź .az batch application create --application-name $(batchAccountApplicationName) --name $(batchAccountName) --resource-group $(resourceGroupName)
  6. Wywołaj interfejs wiersza polecenia platformy Azure, aby przekazać skojarzone pakiety do aplikacji, w tym przypadku pliki ffmpeg.

    Wybierz zadanie interfejsu wiersza polecenia platformy Azure i ustaw następujące właściwości:

    • Nazwa wyświetlana: Wprowadź wartość Upload package to Azure Batch account (Przekaż pakiet do konta usługi Azure Batch).
    • Połączenie usługi Azure Resource Manager: wybierz odpowiednią subskrypcję platformy Azure.
    • Typ skryptu: wybierz pozycję PowerShell Core.
    • Lokalizacja skryptu: wybierz pozycję Skrypt wbudowany.
    • Wbudowany skrypt: wprowadź .az batch application package create --application-name $(batchAccountApplicationName) --name $(batchAccountName) --resource-group $(resourceGroupName) --version $(batchApplicationVersion) --package-file=$(System.DefaultWorkingDirectory)/$(Release.Artifacts.<AzureBuildArtifactSourceAlias>.BuildId).zip Zastąp <AzureBuildArtifactSourceAlias> symbol zastępczy zanotowanymi wcześniej aliasem źródła kompilacji.

    Uwaga

    Numer wersji pakietu aplikacji jest ustawiony na zmienną. Zmienna umożliwia zastępowanie poprzednich wersji pakietu i umożliwia ręczne sterowanie wersją pakietu wypychaną do Azure Batch.

Tworzenie i uruchamianie wydania

  1. Po zakończeniu tworzenia wszystkich kroków wybierz pozycję Zapisz w górnej części strony potoku, a następnie wybierz przycisk OK.

  2. Wybierz pozycję Utwórz wydanie w górnej części strony.

  3. Aby wyświetlić stan wydania na żywo, wybierz link w górnej części strony z informacją o utworzeniu wydania.

  4. Aby wyświetlić dane wyjściowe dziennika z agenta, umieść kursor na etapie, a następnie wybierz przycisk Dzienniki .

    Zrzut ekranu przedstawiający stan wydania.

Testowanie środowiska

Po skonfigurowaniu środowiska upewnij się, że następujące testy zostały pomyślnie uruchomione. Zastąp symbole zastępcze wartościami grupy zasobów i konta usługi Batch.

Nawiązywanie połączenia z kontem usługi Batch

Połącz się z nowym kontem usługi Batch przy użyciu interfejsu wiersza polecenia platformy Azure.

  1. Zaloguj się do konta platformy Azure przy użyciu polecenia i postępuj zgodnie z az login instrukcjami, aby się uwierzytelnić.
  2. Uwierzytelnij konto usługi Batch przy użyciu polecenia az batch account login -g <resourceGroup> -n <batchAccount>.

Wyświetlanie listy dostępnych aplikacji

az batch application list -g <resourceGroup> -n <batchAccount>

Sprawdź, czy pula jest prawidłowa

az batch pool list

W danych wyjściowych polecenia zanotuj wartość , currentDedicatedNodes aby dostosować ją w następnym teście.

Zmienianie rozmiaru puli

Uruchom następujące polecenie, aby zmienić rozmiar puli, aby zapewnić dostępność węzłów obliczeniowych na potrzeby testowania zadań i zadań. Zastąp <poolName> symbol zastępczy wartością nazwy puli, a <targetNumber> symbol zastępczy liczbą większą niż wartość currentDedicatedNodes z poprzednich danych wyjściowych polecenia. Sprawdź stan, uruchamiając az batch pool list polecenie, dopóki zmiana rozmiaru nie zostanie ukończona i zostanie wyświetlona docelowa liczba węzłów.

az batch pool resize --pool-id <poolname> --target-dedicated-nodes <target number>

Następne kroki

Zapoznaj się z tymi samouczkami, aby dowiedzieć się, jak korzystać z konta usługi Batch za pośrednictwem prostej aplikacji.