Distribuire le applicazioni nei nodi di calcolo con i pacchetti dell'applicazione BatchDeploy applications to compute nodes with Batch application packages

I pacchetti dell'applicazione sono una funzionalità di Azure Batch che consente di gestire e distribuire facilmente le applicazioni per le attività nei nodi di calcolo del pool.The application packages feature of Azure Batch provides easy management of task applications and their deployment to the compute nodes in your pool. I pacchetti dell'applicazione consentono di caricare e gestire più versioni delle applicazioni eseguite dalle attività, inclusi i file di supporto.With application packages, you can upload and manage multiple versions of the applications your tasks run, including their supporting files. È quindi possibile di distribuire automaticamente una o più applicazioni nei nodi di calcolo del pool.You can then automatically deploy one or more of these applications to the compute nodes in your pool.

In questo articolo si apprenderà come caricare e gestire pacchetti dell'applicazione nel portale di Azure.In this article, you will learn how to upload and manage application packages in the Azure portal. Si apprenderà quindi come installarli nei nodi di calcolo di un pool usando la libreria Batch .NET.You will then learn how to install them on a pool's compute nodes with the Batch .NET library.

Nota

I pacchetti dell'applicazione sono supportati in tutti i pool di Batch creati dopo il 5 luglio 2017.Application packages are supported on all Batch pools created after 5 July 2017. Sono supportati nei pool di Batch creati tra il 10 marzo 2016 e il 5 luglio 2017 solo se il pool è stato creato usando una configurazione del servizio cloud.They are supported on Batch pools created between 10 March 2016 and 5 July 2017 only if the pool was created using a Cloud Service configuration. I pool di Batch creati prima del 10 marzo 2016 non supportano i pacchetti dell'applicazione.Batch pools created prior to 10 March 2016 do not support application packages.

Le API per la creazione e la gestione dei pacchetti dell'applicazione fanno parte della raccolta [Batch Management .NET] [api_net_mgmt].The APIs for creating and managing application packages are part of the [Batch Management .NET][api_net_mgmt] library. Le API per l'installazione dei pacchetti dell'applicazione in un nodo di calcolo sono parte della raccolta Batch .NET.The APIs for installing application packages on a compute node are part of the Batch .NET library.

La funzionalità dei pacchetti dell’applicazione descritta di seguito sostituisce la funzionalità App Batch disponibile nelle versioni precedenti del servizio.The application packages feature described here supersedes the Batch Apps feature available in previous versions of the service.

Requisiti dei pacchetti dell'applicazioneApplication package requirements

Per usare i pacchetti dell'applicazione, è necessario collegare un account di archiviazione di Azure all'account Batch.To use application packages, you need to link an Azure Storage account to your Batch account.

Questa funzionalità è stata introdotta nella versione 2015-12-01.2.2 dell'API REST Batch e nella versione 3.1.0 della libreria Batch .NET corrispondente.This feature was introduced in Batch REST API version 2015-12-01.2.2 and the corresponding Batch .NET library version 3.1.0. È consigliabile usare sempre la versione API più recente quando si usa Batch.We recommend that you always use the latest API version when working with Batch.

Nota

I pacchetti dell'applicazione sono supportati in tutti i pool di Batch creati dopo il 5 luglio 2017.Application packages are supported on all Batch pools created after 5 July 2017. Sono supportati nei pool di Batch creati tra il 10 marzo 2016 e il 5 luglio 2017 solo se il pool è stato creato usando una configurazione del servizio cloud.They are supported on Batch pools created between 10 March 2016 and 5 July 2017 only if the pool was created using a Cloud Service configuration. I pool di batch creati prima del 10 marzo 2016 non supportano i pacchetti dell'applicazione.Batch pools created prior to 10 March 2016 do not support application packages.

Informazioni sulle applicazioni e sui pacchetti dell’applicazioneAbout applications and application packages

Per applicazione in Azure Batch si intende un set di file binari con versione che possono essere scaricati automaticamente nei nodi di calcolo del pool.Within Azure Batch, an application refers to a set of versioned binaries that can be automatically downloaded to the compute nodes in your pool. Un pacchetto dell'applicazione è invece un set specifico di tali file binari e rappresenta una versione specifica dell'applicazione.An application package refers to a specific set of those binaries and represents a given version of the application.

Diagramma di alto livello di applicazioni e pacchetti applicazioneHigh-level diagram of applications and application packages

ApplicazioniApplications

Un'applicazione in Batch contiene uno o più pacchetti dell'applicazione e specifica le opzioni di configurazione per l'applicazione.An application in Batch contains one or more application packages and specifies configuration options for the application. Un'applicazione può ad esempio specificare la versione predefinita del pacchetto dell'applicazione da installare nei nodi di calcolo e se i pacchetti possono essere aggiornati o eliminati.For example, an application can specify the default application package version to install on compute nodes and whether its packages can be updated or deleted.

Pacchetti dell'applicazioneApplication packages

Un pacchetto dell'applicazione è un file zip contenente i file binari e i file di supporto dell'applicazione necessari per le attività di esecuzione dell'applicazione.An application package is a .zip file that contains the application binaries and supporting files that are required for your tasks to run the application. Ogni pacchetto dell’applicazione rappresenta una versione specifica dell'applicazione.Each application package represents a specific version of the application.

È possibile specificare i pacchetti dell'applicazione a livello di pool e di attività.You can specify application packages at the pool and task levels. È possibile specificare uno o più di questi pacchetti ed eventualmente una versione quando si crea un pool o un'attività.You can specify one or more of these packages and (optionally) a version when you create a pool or task.

  • pacchetti dell'applicazione del pool vengono distribuiti in ogni nodo del pool.Pool application packages are deployed to every node in the pool. Le applicazioni vengono distribuite quando un nodo viene aggiunto a un pool e quando viene riavviato o oppure la sua immagine viene ricreata.Applications are deployed when a node joins a pool, and when it is rebooted or reimaged.

    I pacchetti dell'applicazione del pool possono essere usati quando tutti i nodi in un pool eseguono le attività di un processo.Pool application packages are appropriate when all nodes in a pool execute a job's tasks. È possibile specificare uno o più pacchetti dell'applicazione quando si crea un pool e aggiungere o aggiornare i pacchetti di un pool esistente.You can specify one or more application packages when you create a pool, and you can add or update an existing pool's packages. Se si aggiornano i pacchetti dell'applicazione di un pool esistente, è necessario riavviare i nodi per installare il nuovo pacchetto.If you update an existing pool's application packages, you must restart its nodes to install the new package.

  • pacchetti dell'applicazione per le attività vengono distribuiti solo in un nodo di calcolo che dovrà eseguire un'attività, appena prima di eseguire la riga di comando dell'attività.Task application packages are deployed only to a compute node scheduled to run a task, just before running the task's command line. Se il pacchetto dell'applicazione specificato con la versione corrispondente si trova già nel nodo, non verrà ridistribuito e verrà usato il pacchetto esistente.If the specified application package and version is already on the node, it is not redeployed and the existing package is used.

    I pacchetti dell'applicazione per le attività sono utili in ambienti di pool condivisi, in cui diversi processi vengono eseguiti in un pool e il pool non viene eliminato quando viene completato un processo.Task application packages are useful in shared-pool environments, where different jobs are run on one pool, and the pool is not deleted when a job is completed. Se il processo ha meno attività che nodi nel pool, i pacchetti dell'applicazione di attività possono ridurre il trasferimento dei dati, perché l'applicazione viene distribuita solo nei nodi che eseguono le attività.If your job has fewer tasks than nodes in the pool, task application packages can minimize data transfer since your application is deployed only to the nodes that run tasks.

    Altri scenari che possono trarre vantaggio dai pacchetti dell'applicazione per le attività sono i processi che usano un'applicazione di dimensioni elevate, ma solo per poche attività.Other scenarios that can benefit from task application packages are jobs that run a large application, but for only a few tasks. Una fase di pre-elaborazione o un'attività di unione in cui l'applicazione di pre-elaborazione o di unione è pesante possono ad esempio beneficiare dell'uso di pacchetti dell'applicazione per le attività.For example, a pre-processing stage or a merge task, where the pre-processing or merge application is heavyweight, may benefit from using task application packages.

Importante

Sono previste restrizioni al numero di applicazioni e di pacchetti dell'applicazione in un account Batch e alle dimensioni massime del pacchetto dell'applicazione.There are restrictions on the number of applications and application packages within a Batch account and on the maximum application package size. Per informazioni dettagliate su questi limiti, vedere Quote e limiti per il servizio Azure Batch.See Quotas and limits for the Azure Batch service for details about these limits.

Vantaggi dei pacchetti dell'applicazioneBenefits of application packages

Con i pacchetti dell'applicazione è possibile semplificare il codice nella soluzione Batch e ridurre il sovraccarico richiesto in termini di gestione delle applicazioni eseguite delle attività.Application packages can simplify the code in your Batch solution and lower the overhead required to manage the applications that your tasks run.

Con i pacchetti dell'applicazione non è necessario che l'attività di avvio del pool specifichi un lungo elenco di singoli file di risorse da installare nei nodi.With application packages, your pool's start task doesn't have to specify a long list of individual resource files to install on the nodes. Non è necessario gestire manualmente più versioni dei file dell'applicazione in Archiviazione di Azure o nei nodi.You don't have to manually manage multiple versions of your application files in Azure Storage, or on your nodes. Per accedere ai file nell'account di archiviazione non è necessario generare un URL di firma di accesso condiviso .And, you don't need to worry about generating SAS URLs to provide access to the files in your Storage account. Batch interagisce in background con Archiviazione di Azure per archiviare e distribuire i pacchetti dell'applicazione nei nodi di calcolo.Batch works in the background with Azure Storage to store application packages and deploy them to compute nodes.

Nota

La dimensione totale di un'attività di avvio deve essere inferiore o uguale a 32768 caratteri, inclusi i file di risorse e le variabili di ambiente.The total size of a start task must be less than or equal to 32768 characters, including resource files and environment variables. Se l'attività di avvio supera questo limite, l'uso di pacchetti dell'applicazione è un'altra opzione.If your start task exceeds this limit, then using application packages is another option. Si può inoltre creare un archivio compresso contenente i file di risorse, caricarlo come un BLOB in Archiviazione di Azure e quindi decomprimerlo dalla riga di comando dell'attività di avvio.You can also create a zipped archive containing your resource files, upload it as a blob to Azure Storage, and then unzip it from the command line of your start task.

Caricare e gestire le applicazioniUpload and manage applications

È possibile usare il portale di Azure o la libreria di gestione .NET per Batch per gestire i pacchetti dell'applicazione nell'account Batch.You can use the Azure portal or the Batch Management .NET library to manage the application packages in your Batch account. Nelle sezioni successive verrà prima di tutto mostrato come collegare un account di archiviazione, quindi verrà descritta l'aggiunta di applicazioni e di pacchetti e la loro gestione con il portale.In the next few sections, we first show how to link a Storage account, then discuss adding applications and packages and managing them with the portal.

Per usare i pacchetti dell'applicazione, è prima necessario collegare un account di archiviazione di Azure all'account Batch.To use application packages, you must first link an Azure Storage account to your Batch account. Se non è stato ancora configurato un account di archiviazione, il portale di Azure visualizza un avviso nel momento in cui si seleziona per la prima volta il riquadro Applicazioni nel pannello account Batch.If you have not yet configured a Storage account, the Azure portal displays a warning the first time you click the Applications tile in the Batch account blade.

Importante

Batch supporta attualmente solo account di archiviazione per uso generico, come descritto nel passaggio 5, Creare un account di archiviazione, dell'articolo Informazioni sugli account di archiviazione di Azure.Batch currently supports only the General-purpose storage account type as described in step 5, Create a storage account, in About Azure storage accounts. Quando si collega un account di archiviazione di Azure all'account Batch, collegare solo un account di archiviazione per uso generico.When you link an Azure Storage account to your Batch account, link only a General-purpose storage account.

'Nessun account di archiviazione configurato' nel portale di Azure'No storage account configured' warning in Azure portal

Il servizio Batch usa l'account di archiviazione associato per archiviare i pacchetti dell'applicazione.The Batch service uses the associated Storage account to store your application packages. Dopo aver collegato i due account, Batch può distribuire automaticamente i pacchetti archiviati nell'account di archiviazione collegato nei nodi di calcolo.After you've linked the two accounts, Batch can automatically deploy the packages stored in the linked Storage account to your compute nodes. Per collegare un account di archiviazione a un account Batch selezionare Impostazioni account di archiviazione nel pannello Avviso e quindi fare clic su Account di archiviazione nel pannello Account di archiviazione.To link a Storage account to your Batch account, click Storage account settings on the Warning blade, and then click Storage Account on the Storage Account blade.

Selezionare il pannello Account di archiviazione nel portale di AzureChoose storage account blade in Azure portal

È consigliabile creare un account di archiviazione da usare specificamente con l'account Batch e selezionarlo qui.We recommend that you create a Storage account specifically for use with your Batch account, and select it here. Per informazioni dettagliate sulla creazione di un account di archiviazione, vedere "Creare un account di archiviazione" in Informazioni sugli account di archiviazione di Azure.For details about how to create a storage account, see "Create a Storage account" in About Azure Storage accounts. Dopo aver creato un account di archiviazione, è possibile collegarlo all'account Batch tramite il pannello Account di archiviazione .After you've created a Storage account, you can then link it to your Batch account by using the Storage Account blade.

Avviso

Il servizio Batch usa Archiviazione di Azure per archiviare i pacchetti dell'applicazione come BLOB in blocchi.The Batch service uses Azure Storage to store your application packages as block blobs. L'importo addebitato sarà lo stesso calcolato per i dati BLOB in blocchi.You are charged as normal for the block blob data. Controllare la dimensione e il numero dei pacchetti dell'applicazione e rimuovere periodicamente i pacchetti obsoleti per ridurre al minimo il costo.Be sure to consider the size and number of your application packages, and periodically remove deprecated packages to minimize costs.

Visualizzare le applicazioni correntiView current applications

Per visualizzare le applicazioni nell'account Batch, fare clic sulla voce Applicazioni nel menu di sinistra mentre il pannello Account Batch è aperto.To view the applications in your Batch account, click the Applications menu item in the left menu while viewing the Batch account blade.

Riquadro ApplicazioniApplications tile

Selezionando questa opzione di menu viene visualizzato il pannello Applicazioni:Selecting this menu option opens the Applications blade:

Elenco applicazioniList applications

Nel pannello Applicazioni vengono visualizzati l'ID di ogni applicazione nell'account e le proprietà seguenti:The Applications blade displays the ID of each application in your account and the following properties:

  • Pacchetti: il numero delle versioni associate a questa applicazione.Packages: The number of versions associated with this application.
  • Versione predefinita: la versione dell'applicazione che verrà installata se non si indica una versione quando si specifica l'applicazione per un pool.Default version: The application version installed if you do not indicate a version when you specify the application for a pool. Questa impostazione è facoltativa.This setting is optional.
  • Consenti aggiornamenti: il valore che specifica se sono consentiti aggiornamenti, eliminazioni e aggiunte per il pacchetto.Allow updates: The value that specifies whether package updates, deletions, and additions are allowed. Se l'opzione è impostata su No, gli aggiornamenti del pacchetto e le eliminazioni sono disabilitate per l'applicazione.If this is set to No, package updates and deletions are disabled for the application. È possibile aggiungere solo nuove versioni del pacchetto dell'applicazione.Only new application package versions can be added. Il valore predefinito è .The default is Yes.

Visualizzare i dettagli dell'applicazioneView application details

Per aprire il pannello che include i dettagli dell'applicazione, selezionare l'applicazione nel pannello Applicazioni.To open the blade that includes the details for an application, select the application in the Applications blade.

Dettagli applicazioneApplication details

Nel pannello dei dettagli dell'applicazione, è possibile configurare le impostazioni seguenti per l'applicazione.In the application details blade, you can configure the following settings for your application.

  • Consenti aggiornamenti: specificare se i pacchetti dell'applicazione possono essere aggiornati o eliminati.Allow updates: Specify whether its application packages can be updated or deleted. Vedere "Aggiornare o eliminare un pacchetto dell'applicazione" più avanti in questo articolo.See "Update or Delete an application package" later in this article.
  • Versione predefinita: specificare un pacchetto dell'applicazione predefinito da distribuire nei nodi di calcolo.Default version: Specify a default application package to deploy to compute nodes.
  • Nome visualizzato: si tratta di un nome descrittivo che la soluzione Batch può usare per visualizzare informazioni sull'applicazione, ad esempio nell'interfaccia utente di un servizio offerto ai clienti tramite Batch.Display name: Specify a friendly name that your Batch solution can use when it displays information about the application, for example, in the UI of a service that you provide to your customers through Batch.

Aggiungere un’applicazione nuovaAdd a new application

Per creare un'applicazione nuova, aggiungere un pacchetto dell'applicazione usando un ID applicazione nuovo e univoco.To create a new application, add an application package and specify a new, unique application ID. Il primo pacchetto dell'applicazione aggiunto usando il nuovo ID applicazione crea anche la nuova applicazione.The first application package that you add with the new application ID also creates the new application.

Fare clic su Aggiungi nel pannello Applicazioni per aprire il pannello Nuova applicazione.Click Add on the Applications blade to open the New application blade.

Pannello Nuova applicazione nel portale di AzureNew application blade in Azure portal

Il pannello Nuova applicazione contiene i campi seguenti per specificare le impostazioni della nuova applicazione e del pacchetto dell'applicazione.The New application blade provides the following fields to specify the settings of your new application and application package.

ID applicazioneApplication id

Questo campo specifica l'ID della nuova applicazione, che è soggetto alle regole standard di convalida dell'ID di Azure Batch.This field specifies the ID of your new application, which is subject to the standard Azure Batch ID validation rules. Di seguito sono riportate le regole per fornire un ID applicazione:The rules for providing an application ID are as follows:

  • Nei nodi di Windows, l'ID può contenere qualsiasi combinazione di caratteri alfanumerici, trattini e caratteri di sottolineatura.On Windows nodes, the ID can contain any combination of alphanumeric characters, hyphens, and underscores. Nei nodi di Linux, sono consentiti solo caratteri alfanumerici e caratteri di sottolineatura.On Linux nodes, only alphanumeric characters and underscores are permitted.
  • Non può contenere più di 64 caratteri.Cannot contain more than 64 characters.
  • Deve essere univoco nell’account Batch.Must be unique within the Batch account.
  • Mantiene le maiuscole/minuscole e non fa distinzione tra maiuscole e minuscole.Is case-preserving and case-insensitive.

VersioneVersion

Questo campo specifica la versione del pacchetto dell'applicazione che si sta caricando.This field specifies the version of the application package you are uploading. Le stringhe della versione sono soggette alle regole di convalida seguenti:Version strings are subject to the following validation rules:

  • Nei nodi di Windows la stringa di versione può contenere qualsiasi combinazione di caratteri alfanumerici, trattini, caratteri di sottolineatura e punti.On Windows nodes, the version string can contain any combination of alphanumeric characters, hyphens, underscores, and periods. Nei nodi di Linux, la stringa di versione può contenere solo caratteri alfanumerici e caratteri di sottolineatura.On Linux nodes, the version string can contain only alphanumeric characters and underscores.
  • Non può contenere più di 64 caratteri.Cannot contain more than 64 characters.
  • Devono essere univoche nell’applicazione.Must be unique within the application.
  • Mantengono le maiuscole/minuscole e non fanno distinzione tra maiuscole e minuscole.Are case-preserving and case-insensitive.

Pacchetto dell'applicazioneApplication package

Questo campo specifica il file ZIP contenente i file binari e i file di supporto dell'applicazione necessari per l'esecuzione dell'applicazione.This field specifies the .zip file that contains the application binaries and supporting files that are required to execute the application. Fare clic sulla casella Selezionare un file oppure sull'icona della cartella per cercare e selezionare un file ZIP contenente i file dell'applicazione.Click the Select a file box or the folder icon to browse to and select a .zip file that contains your application's files.

Dopo aver selezionato un file, fare clic su OK per avviare il caricamento in Archiviazione di Azure.After you've selected a file, click OK to begin the upload to Azure Storage. Una volta completata l'operazione di caricamento, il portale visualizza una notifica e chiude il pannello.When the upload operation is complete, the portal displays a notification and closes the blade. A seconda delle dimensioni del file che si sta caricando e della velocità della connessione di rete, l'operazione potrebbe richiedere alcuni minuti.Depending on the size of the file that you are uploading and the speed of your network connection, this operation may take some time.

Avviso

Non chiudere il pannello Nuova applicazione prima che l'operazione di caricamento sia terminata,Do not close the New application blade before the upload operation is complete. altrimenti il processo di caricamento sarà interrotto.Doing so will stop the upload process.

Aggiungere un nuovo pacchetto dell’applicazioneAdd a new application package

Per aggiungere una nuova versione del pacchetto dell'applicazione per un'applicazione esistente, selezionare un'applicazione nel pannello Applicazioni, fare clic su Pacchetti e quindi su Aggiungi per visualizzare il pannello Aggiungi pacchetto.To add a new application package version for an existing application, select an application in the Applications blade, click Packages, then click Add to open the Add package blade.

Pannello per aggiungere un pacchetto dell'applicazione nel portale di AzureAdd application package blade in Azure portal

Come si può notare, i campi corrispondono a quelli del pannello Nuova applicazione, ad eccezione della casella ID applicazione che è disabilitata.As you can see, the fields match those of the New application blade, but the Application id box is disabled. Come è stato fatto per la nuova applicazione, specificare la versione del nuovo pacchetto, scegliere il file ZIP del pacchetto dell'applicazione e quindi fare clic su OK per caricare il pacchetto.As you did for the new application, specify the Version for your new package, browse to your Application package .zip file, then click OK to upload the package.

Aggiornare o eliminare un pacchetto dell'applicazioneUpdate or delete an application package

Per aggiornare o eliminare un pacchetto dell'applicazione esistente, aprire il pannello dei dettagli relativo all'applicazione, fare clic su Pacchetti per visualizzare il pannello Pacchetti, fare clic sui puntini di sospensione nella riga del pacchetto dell'applicazione che si vuole modificare e quindi selezionare l'azione da eseguire.To update or delete an existing application package, open the details blade for the application, click Packages to open the Packages blade, click the ellipsis in the row of the application package that you want to modify, and select the action that you want to perform.

Aggiornare o eliminare un pacchetto nel portale di AzureUpdate or delete package in Azure portal

AggiornareUpdate

Se si seleziona Aggiorna, verrà visualizzato il pannello Aggiorna pacchetto.When you click Update, the Update package blade is displayed. Questo pannello è simile al pannello usato per creare un nuovo pacchetto dell'applicazione. In questo caso, però, è abilitato solo il campo di selezione del pacchetto, in cui è possibile specificare un nuovo file ZIP da caricare.This blade is similar to the New application package blade, however only the package selection field is enabled, allowing you to specify a new ZIP file to upload.

Pannello per aggiornare un pacchetto nel portale di AzureUpdate package blade in Azure portal

EliminazioneDelete

Se si seleziona Elimina, verrà chiesto di confermare l'eliminazione della versione del pacchetto e Batch eliminerà il pacchetto da Archiviazione di Azure.When you click Delete, you are asked to confirm the deletion of the package version, and Batch deletes the package from Azure Storage. Se si elimina la versione predefinita di un'applicazione, verrà rimossa l'impostazione Versione predefinita per l'applicazione.If you delete the default version of an application, the Default version setting is removed for the application.

Eliminare un'applicazione Delete application

Installare le applicazioni su nodi di calcoloInstall applications on compute nodes

Dopo aver appreso come gestire i pacchetti dell'applicazione con il portale di Azure, verrà ora descritta la distribuzione dei pacchetti nei nodi di calcolo e la relativa esecuzione con attività di Batch.Now that you've learned how to manage application packages with the Azure portal, we can discuss how to deploy them to compute nodes and run them with Batch tasks.

Installare pacchetti dell'applicazione nel poolInstall pool application packages

Per installare un pacchetto dell'applicazione in tutti i nodi di calcolo di un pool, specificare uno o più riferimenti al pacchetto dell'applicazione per il pool.To install an application package on all compute nodes in a pool, specify one or more application package references for the pool. I pacchetti dell'applicazione specificati per un pool vengono installati su ciascun nodo di calcolo quando tale nodo viene aggiunto al pool e quando il nodo viene riavviato o ne viene ricreata l'immagine.The application packages that you specify for a pool are installed on each compute node when that node joins the pool, and when the node is rebooted or reimaged.

In Batch .NET specificare uno o più CloudPool.ApplicationPackageReferences quando si crea un nuovo pool oppure aggiungerli al pool esistente.In Batch .NET, specify one or more CloudPool.ApplicationPackageReferences when you create a new pool, or for an existing pool. La classe ApplicationPackageReference specifica un ID applicazione e la versione da installare nei nodi di calcolo di un pool.The ApplicationPackageReference class specifies an application ID and version to install on a pool's compute nodes.

// Create the unbound CloudPool
CloudPool myCloudPool =
    batchClient.PoolOperations.CreatePool(
        poolId: "myPool",
        targetDedicatedComputeNodes: 1,
        virtualMachineSize: "small",
        cloudServiceConfiguration: new CloudServiceConfiguration(osFamily: "4"));

// Specify the application and version to install on the compute nodes
myCloudPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "litware",
        Version = "1.1001.2b" }
};

// Commit the pool so that it's created in the Batch service. As the nodes join
// the pool, the specified application package is installed on each.
await myCloudPool.CommitAsync();

Importante

Se una distribuzione del pacchetto dell'applicazione non riesce, il servizio Batch contrassegna il nodo come inutilizzabile e non vengono pianificate attività per l'esecuzione in tale nodo.If an application package deployment fails for any reason, the Batch service marks the node unusable, and no tasks are scheduled for execution on that node. In questo caso è necessario riavviare il nodo per reinizializzare la distribuzione del pacchetto.In this case, you should restart the node to reinitiate the package deployment. Il riavvio del nodo consente anche di pianificarne di nuovo le attività.Restarting the node also enables task scheduling again on the node.

Installare pacchetti dell'applicazione per le attivitàInstall task application packages

Come per un pool, specificare i riferimenti del pacchetto dell'applicazione per un'attività.Similar to a pool, you specify application package references for a task. Quando un'attività è pianificata per l'esecuzione su un nodo, il pacchetto viene scaricato ed estratto appena prima dell'esecuzione della riga di comando dell'attività.When a task is scheduled to run on a node, the package is downloaded and extracted just before the task's command line is executed. Se un pacchetto specificato con la versione corrispondente è già installato nel nodo, non verrà scaricato e verrà usato il pacchetto esistente.If a specified package and version is already installed on the node, the package is not downloaded and the existing package is used.

Per installare un pacchetto dell'applicazione per le attività, configurare la proprietà CloudTask.ApplicationPackageReferences dell'attività:To install a task application package, configure the task's CloudTask.ApplicationPackageReferences property:

CloudTask task =
    new CloudTask(
        "litwaretask001",
        "cmd /c %AZ_BATCH_APP_PACKAGE_LITWARE%\\litware.exe -args -here");

task.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference
    {
        ApplicationId = "litware",
        Version = "1.1001.2b"
    }
};

Eseguire le applicazioni installateExecute the installed applications

I pacchetti specificati per un pool o un'attività vengono scaricati ed estratti in una directory denominata all'interno del nodo AZ_BATCH_ROOT_DIR .The packages that you've specified for a pool or task are downloaded and extracted to a named directory within the AZ_BATCH_ROOT_DIR of the node. Batch crea anche una variabile di ambiente che contiene il percorso della directory denominata.Batch also creates an environment variable that contains the path to the named directory. Le righe di comando dell'attività usano questa variabile di ambiente quando fanno riferimento all'applicazione nel nodo.Your task command lines use this environment variable when referencing the application on the node.

Nei nodi di Windows la variabile è nel formato seguente:On Windows nodes, the variable is in the following format:

Windows:
AZ_BATCH_APP_PACKAGE_APPLICATIONID#version

Nei nodi di Linux, il formato è leggermente diverso.On Linux nodes, the format is slightly different. Punti (.), trattini (-) e simboli di cancelletto (#) vengono convertiti in caratteri di sottolineatura nella variabile di ambiente.Periods (.), hypens (-) and number signs (#) are flattened to underscores in the environment variable. Si noti inoltre che il caso dell'ID dell'applicazione viene mantenuto.Also, note that the case of the application ID is preserved. ad esempio:For example:

Linux:
AZ_BATCH_APP_PACKAGE_applicationid_version

APPLICATIONID e version sono valori che corrispondono all'applicazione e alla versione del pacchetto specificati per la distribuzione.APPLICATIONID and version are values that correspond to the application and package version you've specified for deployment. Se ad esempio si specifica l'installazione della versione 2.7 dell'applicazione blender nei nodi di Windows, le righe di comando dell'attività useranno questa variabile di ambiente per accedere ai file corrispondenti:For example, if you specified that version 2.7 of application blender should be installed on Windows nodes, your task command lines would use this environment variable to access its files:

Windows:
AZ_BATCH_APP_PACKAGE_BLENDER#2.7

Nei nodi di Linux, specificare la variabile di ambiente nel formato seguente:On Linux nodes, specify the environment variable in this format. Convertire punti (.), trattini (-) e cancelletti (#) in caratteri di sottolineatura e mantenere il caso dell'ID applicazione:Flatten the periods (.), hypens (-) and number signs (#) to underscores, and preserve the case of the application ID:

Linux:
AZ_BATCH_APP_PACKAGE_blender_2_7

Quando si carica un pacchetto dell'applicazione, è possibile specificare una versione predefinita da distribuire ai nodi di calcolo.When you upload an application package, you can specify a default version to deploy to your compute nodes. Se è stata specificata una versione predefinita per un'applicazione, è possibile omettere il suffisso della versione quando si fa riferimento l'applicazione.If you have specified a default version for an application, you can omit the version suffix when you reference the application. È possibile specificare la versione predefinita dell'applicazione nel pannello Applicazioni del portale di Azure, come illustrato in Caricare e gestire le applicazioni.You can specify the default application version in the Azure portal, on the Applications blade, as shown in Upload and manage applications.

Se ad esempio è stata specificata la versione predefinita "2.7" per l'applicazione blender e le attività fanno riferimento alla variabile di ambiente seguente, i nodi di Windows eseguiranno la versione 2.7:For example, if you set "2.7" as the default version for application blender, and your tasks reference the following environment variable, then your Windows nodes will execute version 2.7:

AZ_BATCH_APP_PACKAGE_BLENDER

Il frammento di codice seguente mostra una riga di comando dell'attività di esempio che consente di avviare la versione predefinita dell'applicazione blender :The following code snippet shows an example task command line that launches the default version of the blender application:

string taskId = "blendertask01";
string commandLine =
    @"cmd /c %AZ_BATCH_APP_PACKAGE_BLENDER%\blender.exe -args -here";
CloudTask blenderTask = new CloudTask(taskId, commandLine);

Suggerimento

Per altre informazioni sulle impostazioni dell'ambiente dei nodi di calcolo, vedere Impostazioni di ambiente per le attività in Panoramica delle funzionalità di Batch per sviluppatori.See Environment settings for tasks in the Batch feature overview for more information about compute node environment settings.

Aggiornare i pacchetti dell’applicazione di un poolUpdate a pool's application packages

Se un pool esistente è già stato configurato con un pacchetto dell’applicazione, è possibile specificare un nuovo pacchetto per il pool.If an existing pool has already been configured with an application package, you can specify a new package for the pool. Se si specifica un nuovo riferimento al pacchetto per un pool, si applica quanto segue:If you specify a new package reference for a pool, the following apply:

  • Il servizio Batch installa il pacchetto appena specificato su tutti i nuovi nodi aggiunti al pool e su tutti i nodi esistenti riavviati o per i quali viene ricreata l'immagine.The Batch service installs the newly specified package on all new nodes that join the pool and on any existing node that is rebooted or reimaged.
  • I nodi di calcolo che si trovano già nel pool quando si aggiornano i riferimenti al pacchetto non installano automaticamente il nuovo pacchetto dell’applicazione.Compute nodes that are already in the pool when you update the package references do not automatically install the new application package. Questi nodi di calcolo devono essere riavviati o ne deve essere ricreata l'immagine per ricevere il nuovo pacchetto.These compute nodes must be rebooted or reimaged to receive the new package.
  • Quando viene distribuito un nuovo pacchetto, le variabili di ambiente create riflettono i riferimenti al nuovo pacchetto dell'applicazione.When a new package is deployed, the created environment variables reflect the new application package references.

In questo esempio il pool esistente ha la versione 2.7 dell'applicazione blender configurata come uno dei relativi CloudPool.ApplicationPackageReferences.In this example, the existing pool has version 2.7 of the blender application configured as one of its CloudPool.ApplicationPackageReferences. Per aggiornare i nodi del pool alla versione 2.76b, specificare un nuovo ApplicationPackageReference con la nuova versione ed eseguire il commit della modifica.To update the pool's nodes with version 2.76b, specify a new ApplicationPackageReference with the new version, and commit the change.

string newVersion = "2.76b";
CloudPool boundPool = await batchClient.PoolOperations.GetPoolAsync("myPool");
boundPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "blender",
        Version = newVersion }
};
await boundPool.CommitAsync();

Ora che è stata configurata la nuova versione, il servizio Batch installa la versione 2.76b su qualsiasi nuovo nodo aggiunto al pool.Now that the new version has been configured, the Batch service installs version 2.76b to any new node that joins the pool. Per installare la versione 2.76b nei nodi già presenti nel pool, riavviarli o ricrearne l'immagine.To install 2.76b on the nodes that are already in the pool, reboot or reimage them. Notare che i nodi riavviati mantengono i file delle distribuzioni precedenti del pacchetto.Note that rebooted nodes retain the files from previous package deployments.

Elencare le applicazioni in un account BatchList the applications in a Batch account

È possibile elencare le applicazioni e i relativi pacchetti in un account Batch con il metodo ApplicationOperations.ListApplicationSummaries.You can list the applications and their packages in a Batch account by using the ApplicationOperations.ListApplicationSummaries method.

// List the applications and their application packages in the Batch account.
List<ApplicationSummary> applications = await batchClient.ApplicationOperations.ListApplicationSummaries().ToListAsync();
foreach (ApplicationSummary app in applications)
{
    Console.WriteLine("ID: {0} | Display Name: {1}", app.Id, app.DisplayName);

    foreach (string version in app.Versions)
    {
        Console.WriteLine("  {0}", version);
    }
}

Eseguire il wrappingWrap up

Con i pacchetti dell'applicazione è possibile assistere i clienti nella scelta delle applicazioni per i loro processi e specificare la versione corretta da usare durante l'elaborazione dei processi con il servizio abilitato per Batch.With application packages, you can help your customers select the applications for their jobs and specify the exact version to use when processing jobs with your Batch-enabled service. I clienti possono inoltre caricare e monitorare le applicazioni usate nel servizio.You might also provide the ability for your customers to upload and track their own applications in your service.

Passaggi successiviNext steps