Pools - Replace Pool Properties
Aggiorna le proprietà del Pool specificato.
Questo sostituisce completamente tutte le proprietà aggiornabili della piscina. Ad esempio, se il Pool ha associato un StartTask e se StartTask non è specificato con questa richiesta, allora il servizio Batch rimuoverà l'StartTask esistente.
POST {endpoint}/pools/{poolId}/updateproperties?api-version=2025-06-01
POST {endpoint}/pools/{poolId}/updateproperties?api-version=2025-06-01&timeOut={timeOut}
Parametri dell'URI
| Nome | In | Necessario | Tipo | Descrizione |
|---|---|---|---|---|
|
endpoint
|
path | True |
string (uri) |
Endpoint dell'account Batch (ad esempio: https://batchaccount.eastus2.batch.azure.com). |
|
pool
|
path | True |
string |
L'ID del Pool da aggiornare. |
|
api-version
|
query | True |
string minLength: 1 |
Versione dell'API da usare per questa operazione. |
|
time
|
query |
integer (int32) |
Tempo massimo di elaborazione della richiesta da parte del server, espresso in secondi. Il valore predefinito è 30 secondi. Se il valore è superiore a 30, verrà utilizzato il valore predefinito.". |
Intestazione della richiesta
Media Types: "application/json; odata=minimalmetadata"
| Nome | Necessario | Tipo | Descrizione |
|---|---|---|---|
| client-request-id |
string |
Identità della richiesta generata dal chiamante, sotto forma di GUID senza decorazioni come parentesi graffe, ad esempio 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. |
|
| return-client-request-id |
boolean |
Indica se il server deve restituire l'ID richiesta client nella risposta. |
|
| ocp-date |
string (date-time-rfc7231) |
Ora di emissione della richiesta. Le librerie client in genere impostano questo valore sull'ora corrente dell'orologio di sistema; impostarla in modo esplicito se si chiama direttamente l'API REST. |
Corpo della richiesta
Media Types: "application/json; odata=minimalmetadata"
| Nome | Necessario | Tipo | Descrizione |
|---|---|---|---|
| applicationPackageReferences | True |
Elenco dei pacchetti dell'applicazione da installare in ogni nodo di calcolo nel pool. L'elenco sostituisce tutti i riferimenti al pacchetto dell'applicazione esistenti nel pool. Le modifiche apportate ai riferimenti al pacchetto dell'applicazione influiscono su tutti i nuovi nodi di calcolo che si aggiungono al pool, ma non influiscono sui nodi di calcolo già presenti nel pool finché non vengono riavviati o ricreati l'immagine. È previsto un massimo di 10 riferimenti al pacchetto dell'applicazione in un determinato pool. Se omesso o se si specifica una raccolta vuota, eventuali riferimenti ai pacchetti di applicazioni esistenti vengono rimossi dal pool. È possibile specificare un massimo di 10 riferimenti in un determinato pool. |
|
| metadata | True |
Elenco di coppie nome-valore associate al pool come metadati. Questo elenco sostituisce tutti i metadati esistenti configurati nel pool. Se omesso o se si specifica una raccolta vuota, tutti i metadati esistenti vengono rimossi dal pool. |
|
| startTask |
Un'attività da eseguire in ogni nodo di calcolo quando viene aggiunto al pool. L'attività viene eseguita quando il nodo di calcolo viene aggiunto al pool o quando il nodo di calcolo viene riavviato. Se questo elemento è presente, sovrascrive qualsiasi StartTask esistente. Se omesso, qualsiasi StartTask esistente viene rimosso dal pool. |
Risposte
| Nome | Tipo | Descrizione |
|---|---|---|
| 204 No Content |
Non è disponibile alcun contenuto da inviare per questa richiesta, ma le intestazioni possono essere utili. Intestazioni
|
|
| Other Status Codes |
Risposta di errore imprevista. |
Sicurezza
OAuth2Auth
Tipo:
oauth2
Flow:
implicit
URL di autorizzazione:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
Ambiti
| Nome | Descrizione |
|---|---|
| https://batch.core.windows.net//.default |
Esempio
Pool update
Esempio di richiesta
POST {endpoint}/pools/poolId/updateproperties?api-version=2025-06-01
{
"startTask": {
"commandLine": "/bin/bash -c 'echo start task'"
},
"applicationPackageReferences": [],
"metadata": []
}
Risposta di esempio
Definizioni
| Nome | Descrizione |
|---|---|
|
Auto |
Enum AutoUserScope |
|
Auto |
Specifica le opzioni per l'utente automatico che esegue un'attività di Azure Batch. |
|
Batch |
Riferimento a un pacchetto da distribuire nei nodi di calcolo. |
|
Batch |
Risposta di errore ricevuta dal servizio Azure Batch. |
|
Batch |
Elemento di informazioni aggiuntive incluse in una risposta di errore di Azure Batch. |
|
Batch |
Messaggio di errore ricevuto in una risposta di errore di Azure Batch. |
|
Batch |
Il servizio Batch non assegna alcun significato a questi metadati; è esclusivamente per l'uso del codice utente. |
|
Batch |
Riferimento a un'identità assegnata dall'utente associata al pool di Batch che verrà usato da un nodo di calcolo. |
|
Batch |
Parametri per la sostituzione delle proprietà in un pool di Azure Batch. |
|
Batch |
Batch ritenta attività quando viene attivata un'operazione di ripristino in un nodo. Esempi di operazioni di ripristino includono (ma non sono limitati a) quando un nodo non integro viene riavviato o un nodo di calcolo è scomparso a causa di un errore dell'host. I tentativi dovuti alle operazioni di ripristino sono indipendenti da e non vengono conteggiati in base a maxTaskRetryCount. Anche se maxTaskRetryCount è 0, può verificarsi un nuovo tentativo interno a causa di un'operazione di ripristino. Per questo motivo, tutte le attività devono essere idempotenti. Ciò significa che le attività devono tollerare l'interruzione e il riavvio senza causare alcun danneggiamento o dati duplicati. La procedura consigliata per le attività a esecuzione prolungata consiste nell'usare una forma di checkpoint. In alcuni casi startTask può essere eseguito di nuovo anche se il nodo di calcolo non è stato riavviato. Prestare particolare attenzione per evitare StartTasks che creano processi di interruzione o installano/avviano i servizi dalla directory di lavoro StartTask, in quanto questo impedisce a Batch di essere in grado di eseguire nuovamente StartTask. |
|
Batch |
Impostazioni del contenitore per un'attività. |
|
Container |
Voce di percorso e modalità di montaggio da montare nel contenitore di attività. |
|
Container |
Percorsi che verranno montati nel contenitore dell'attività contenitore. |
|
Container |
Registro contenitori privato. |
|
Container |
ContainerWorkingDirectory enums |
|
Elevation |
Enum di ElevationLevel |
|
Environment |
Variabile di ambiente da impostare in un processo task. |
|
Resource |
Un singolo file o più file da scaricare in un nodo di calcolo. |
|
User |
Definizione dell'identità utente in cui viene eseguita l'attività. Specificare la proprietà userName o autoUser, ma non entrambe. |
AutoUserScope
Enum AutoUserScope
| Valore | Descrizione |
|---|---|
| task |
Specifica che il servizio dovrebbe creare un nuovo utente per il Task. |
| pool |
Specifica che il Task viene eseguito come il comune account utente automatico creato su ogni Nodo di Calcolo in un Pool. |
AutoUserSpecification
Specifica le opzioni per l'utente automatico che esegue un'attività di Azure Batch.
| Nome | Tipo | Descrizione |
|---|---|---|
| elevationLevel |
Livello di elevazione dell'utente automatico. Il valore predefinito è nonAdmin. |
|
| scope |
Ambito dell'utente automatico. Il valore predefinito è pool. Se il pool esegue Windows, è necessario specificare il valore Task se è necessario un isolamento più rigoroso tra le attività. Ad esempio, se l'attività modifica il Registro di sistema in un modo che potrebbe influire su altre attività. |
BatchApplicationPackageReference
Riferimento a un pacchetto da distribuire nei nodi di calcolo.
| Nome | Tipo | Descrizione |
|---|---|---|
| applicationId |
string |
L'ID dell'applicazione da distribuire. Quando si crea un pool, l'ID applicazione del pacchetto deve essere completo (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). |
| version |
string |
Versione dell'applicazione da distribuire. Se omesso, viene distribuita la versione predefinita. Se questo viene omesso in un Pool e non viene specificata una versione predefinita per questa applicazione, la richiesta fallisce con il codice di errore InvalidApplicationPackageReferences e il codice di stato HTTP 409. Se questo viene omesso in un Task e non è specificata una versione predefinita per questa applicazione, il Task fallisce con un errore di pre-elaborazione. |
BatchError
Risposta di errore ricevuta dal servizio Azure Batch.
| Nome | Tipo | Descrizione |
|---|---|---|
| code |
string |
Identificatore dell'errore. I codici sono invarianti e devono essere utilizzati a livello di codice. |
| message |
Messaggio che descrive l'errore, destinato a essere adatto per la visualizzazione in un'interfaccia utente. |
|
| values |
Raccolta di coppie chiave-valore contenenti dettagli aggiuntivi sull'errore. |
BatchErrorDetail
Elemento di informazioni aggiuntive incluse in una risposta di errore di Azure Batch.
| Nome | Tipo | Descrizione |
|---|---|---|
| key |
string |
Identificatore che specifica il significato della proprietà Value. |
| value |
string |
Informazioni aggiuntive incluse nella risposta di errore. |
BatchErrorMessage
Messaggio di errore ricevuto in una risposta di errore di Azure Batch.
| Nome | Tipo | Descrizione |
|---|---|---|
| lang |
string |
Il codice linguistico del messaggio di errore. |
| value |
string |
Testo del messaggio. |
BatchMetadataItem
Il servizio Batch non assegna alcun significato a questi metadati; è esclusivamente per l'uso del codice utente.
| Nome | Tipo | Descrizione |
|---|---|---|
| name |
string |
Nome dell'elemento di metadati. |
| value |
string |
Valore dell'elemento di metadati. |
BatchNodeIdentityReference
Riferimento a un'identità assegnata dall'utente associata al pool di Batch che verrà usato da un nodo di calcolo.
| Nome | Tipo | Descrizione |
|---|---|---|
| resourceId |
string (arm-id) |
ID risorsa ARM dell'identità assegnata dall'utente. |
BatchPoolReplaceOptions
Parametri per la sostituzione delle proprietà in un pool di Azure Batch.
| Nome | Tipo | Descrizione |
|---|---|---|
| applicationPackageReferences |
Elenco dei pacchetti dell'applicazione da installare in ogni nodo di calcolo nel pool. L'elenco sostituisce tutti i riferimenti al pacchetto dell'applicazione esistenti nel pool. Le modifiche apportate ai riferimenti al pacchetto dell'applicazione influiscono su tutti i nuovi nodi di calcolo che si aggiungono al pool, ma non influiscono sui nodi di calcolo già presenti nel pool finché non vengono riavviati o ricreati l'immagine. È previsto un massimo di 10 riferimenti al pacchetto dell'applicazione in un determinato pool. Se omesso o se si specifica una raccolta vuota, eventuali riferimenti ai pacchetti di applicazioni esistenti vengono rimossi dal pool. È possibile specificare un massimo di 10 riferimenti in un determinato pool. |
|
| metadata |
Elenco di coppie nome-valore associate al pool come metadati. Questo elenco sostituisce tutti i metadati esistenti configurati nel pool. Se omesso o se si specifica una raccolta vuota, tutti i metadati esistenti vengono rimossi dal pool. |
|
| startTask |
Un'attività da eseguire in ogni nodo di calcolo quando viene aggiunto al pool. L'attività viene eseguita quando il nodo di calcolo viene aggiunto al pool o quando il nodo di calcolo viene riavviato. Se questo elemento è presente, sovrascrive qualsiasi StartTask esistente. Se omesso, qualsiasi StartTask esistente viene rimosso dal pool. |
BatchStartTask
Batch ritenta attività quando viene attivata un'operazione di ripristino in un nodo. Esempi di operazioni di ripristino includono (ma non sono limitati a) quando un nodo non integro viene riavviato o un nodo di calcolo è scomparso a causa di un errore dell'host. I tentativi dovuti alle operazioni di ripristino sono indipendenti da e non vengono conteggiati in base a maxTaskRetryCount. Anche se maxTaskRetryCount è 0, può verificarsi un nuovo tentativo interno a causa di un'operazione di ripristino. Per questo motivo, tutte le attività devono essere idempotenti. Ciò significa che le attività devono tollerare l'interruzione e il riavvio senza causare alcun danneggiamento o dati duplicati. La procedura consigliata per le attività a esecuzione prolungata consiste nell'usare una forma di checkpoint. In alcuni casi startTask può essere eseguito di nuovo anche se il nodo di calcolo non è stato riavviato. Prestare particolare attenzione per evitare StartTasks che creano processi di interruzione o installano/avviano i servizi dalla directory di lavoro StartTask, in quanto questo impedisce a Batch di essere in grado di eseguire nuovamente StartTask.
| Nome | Tipo | Descrizione |
|---|---|---|
| commandLine |
string |
Riga di comando di StartTask. La riga di comando non viene eseguita in una shell e pertanto non può sfruttare le funzionalità della shell, ad esempio l'espansione delle variabili di ambiente. Se si desidera sfruttare tali funzionalità, è necessario richiamare la shell nella riga di comando, ad esempio usando "cmd /c MyCommand" in Windows o "/bin/sh -c MyCommand" in Linux. Se la riga di comando fa riferimento ai percorsi di file, deve usare un percorso relativo (relativo alla directory di lavoro attività) o usare la variabile di ambiente fornita da Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| containerSettings |
Le impostazioni del contenitore sotto cui viene eseguita la StartTask. Quando questo viene specificato, tutte le directory ricorsivamente sotto la AZ_BATCH_NODE_ROOT_DIR (la radice delle directory Azure Batch sul nodo) vengono mappate nel container, tutte le variabili dell'ambiente Task vengono mappate nel container e la riga di comando Task viene eseguita nel container. I file prodotti nel contenitore al di fuori di AZ_BATCH_NODE_ROOT_DIR potrebbero non essere riflessi sul disco host, il che significa che le API dei file Batch non potranno accedere a quei file. |
|
| environmentSettings |
Elenco delle impostazioni delle variabili di ambiente per StartTask. |
|
| maxTaskRetryCount |
integer (int32) |
Numero massimo di tentativi dell'attività. Il servizio Batch ritenta un'attività se il codice di uscita è diverso da zero. Si noti che questo valore controlla in modo specifico il numero di tentativi. Il servizio Batch proverà l'attività una sola volta e potrebbe quindi riprovare fino a questo limite. Ad esempio, se il numero massimo di tentativi è 3, Batch prova l'attività fino a 4 volte (un tentativo iniziale e 3 tentativi). Se il numero massimo di tentativi è 0, il servizio Batch non ritenta l'attività. Se il numero massimo di tentativi è -1, il servizio Batch ritenta l'attività senza limite, ma non è consigliabile per un'attività di avvio o per qualsiasi attività. Il valore predefinito è 0 (nessun tentativo). |
| resourceFiles |
Elenco di file scaricati dal servizio Batch nel nodo di calcolo prima di eseguire la riga di comando. È prevista una dimensione massima per l'elenco dei file di risorse. Quando viene superata la dimensione massima, la richiesta avrà esito negativo e il codice di errore della risposta sarà RequestEntityTooLarge. In questo caso, la raccolta di ResourceFiles deve essere ridotta di dimensioni. A tale scopo, è possibile usare .zip file, pacchetti di applicazioni o contenitori Docker. I file elencati in questo elemento si trovano nella directory di lavoro dell'attività. |
|
| userIdentity |
L'identità utente sotto cui viene eseguito il StartTask. Se omesso, il Task viene eseguito come un utente non amministrativo unico per il Task. |
|
| waitForSuccess |
boolean |
Indica se il servizio Batch deve attendere il completamento di StartTask( ovvero uscire con il codice di uscita 0) prima di pianificare qualsiasi attività nel nodo di calcolo. Se true e StartTask non riesce in un nodo, il servizio Batch ritenta l'avvio fino al numero massimo di tentativi (maxTaskRetryCount). Se l'attività non è ancora stata completata correttamente dopo tutti i tentativi, il servizio Batch contrassegna il nodo inutilizzabile e non pianifica attività. Questa condizione può essere rilevata tramite lo stato del nodo di calcolo e i dettagli dell'errore. Se false, il servizio Batch non attenderà il completamento di StartTask. In questo caso, è possibile avviare l'esecuzione di altre attività nel nodo di calcolo mentre StartTask è ancora in esecuzione; e anche se StartTask ha esito negativo, le nuove attività continueranno a essere pianificate nel nodo di calcolo. Il valore predefinito è vero. |
BatchTaskContainerSettings
Impostazioni del contenitore per un'attività.
| Nome | Tipo | Descrizione |
|---|---|---|
| containerHostBatchBindMounts |
Percorsi da montare nell'attività contenitore. Se questa matrice è null o non è presente, l'attività contenitore monta l'intera unità disco temporanea in Windows (o AZ_BATCH_NODE_ROOT_DIR in Linux). Se questa matrice è impostata come vuota, non verrà montato alcun percorso dati nel contenitore. |
|
| containerRunOptions |
string |
Opzioni aggiuntive per il comando create del contenitore. Queste opzioni aggiuntive vengono fornite come argomenti al comando "docker create", oltre a quelli controllati dal servizio Batch. |
| imageName |
string |
L'immagine da usare per creare il contenitore in cui verrà eseguito il Task. Questa è la referenza completa all'Image, come specificato per "docker pull". Se non viene fornito alcun tag come parte del nome dell'Immagine, il tag ":latest" viene usato come predefinito. |
| registry |
Il registro privato che contiene l'immagine del contenitore. Questa impostazione può essere omessa se era già stata fornita alla creazione del Pool. |
|
| workingDirectory |
La posizione della directory di lavoro Task del container. Il valore predefinito è 'taskWorkingDirectory'. |
ContainerHostBatchBindMountEntry
Voce di percorso e modalità di montaggio da montare nel contenitore di attività.
| Nome | Tipo | Descrizione |
|---|---|---|
| isReadOnly |
boolean |
Montare o meno questo percorso di origine come modalità di sola lettura. Il valore predefinito è false (modalità lettura/scrittura). Per Linux, se si monta questo percorso come modalità di lettura/scrittura, ciò non significa che tutti gli utenti nel contenitore dispongano dell'accesso in lettura/scrittura per il percorso, dipende dall'accesso nella macchina virtuale host. Se questo percorso viene montato in sola lettura, tutti gli utenti all'interno del contenitore non potranno modificare il percorso. |
| source |
Il percorso che può essere montato nel cliente del contenitore può selezionare. |
ContainerHostDataPath
Percorsi che verranno montati nel contenitore dell'attività contenitore.
| Valore | Descrizione |
|---|---|
| Shared |
Percorso dell'attività a più istanze in cui condividere i propri file. |
| Startup |
Percorso dell'attività di avvio. |
| VfsMounts |
Il percorso contiene tutti i file system virtuali montati in questo nodo. |
| Task |
Percorso dell'attività. |
| JobPrep |
Percorso dell'attività di preparazione del processo. |
| Applications |
Percorso delle applicazioni. |
ContainerRegistryReference
Registro contenitori privato.
| Nome | Tipo | Descrizione |
|---|---|---|
| identityReference |
Riferimento all'identità assegnata dall'utente da usare per accedere a un Registro Azure Container invece di nome utente e password. |
|
| password |
string (password) |
Password per accedere al server del Registro di sistema. |
| registryServer |
string (uri) |
URL del Registro di sistema. Se omesso, il valore predefinito è "docker.io". |
| username |
string |
Nome utente per accedere al server del Registro di sistema. |
ContainerWorkingDirectory
ContainerWorkingDirectory enums
| Valore | Descrizione |
|---|---|
| taskWorkingDirectory |
Usa la directory standard di lavoro Task di servizio Batch, che conterrà i File Risorsa Task popolati per Batch. |
| containerImageDefault |
Usa la directory di lavoro definita nell'immagine del container. Attenzione che questa directory non conterrà i File Risorse scaricati da Batch. |
ElevationLevel
Enum di ElevationLevel
| Valore | Descrizione |
|---|---|
| nonadmin |
L'utente è un utente standard senza accesso con privilegi elevati. |
| admin |
L'utente è un utente con accesso con privilegi elevati e opera con autorizzazioni di amministratore complete. |
EnvironmentSetting
Variabile di ambiente da impostare in un processo task.
| Nome | Tipo | Descrizione |
|---|---|---|
| name |
string |
Nome della variabile di ambiente. |
| value |
string |
Valore della variabile di ambiente. |
ResourceFile
Un singolo file o più file da scaricare in un nodo di calcolo.
| Nome | Tipo | Descrizione |
|---|---|---|
| autoStorageContainerName |
string |
Il nome del container di archiviazione nell'account di auto storage. Le proprietà autoStorageContainerName, storageContainerUrl e httpUrl si escludono a vicenda e una di esse deve essere specificata. |
| blobPrefix |
string |
Prefisso BLOB da usare durante il download di BLOB da un contenitore di Archiviazione di Azure. Verranno scaricati solo i BLOB i cui nomi iniziano con il prefisso specificato. La proprietà è valida solo quando si usa autoStorageContainerName o storageContainerUrl. Questo prefisso può essere un nome file parziale o una sottodirectory. Se non viene specificato un prefisso, verranno scaricati tutti i file nel contenitore. |
| fileMode |
string |
Attributo della modalità di autorizzazione file in formato ottale. Questa proprietà si applica solo ai file scaricati su Linux Compute Nodes. Verrà ignorato se viene specificato per un file di risorsa che verrà scaricato su un nodo di calcolo di Windows. Se questa proprietà non è specificata per un nodo Linux Compute, allora viene applicato un valore predefinito 0770 al file. |
| filePath |
string |
La posizione sul Nodo di Calcolo su cui scaricare il/i file/i, rispetto alla directory operativa del Task. Se viene specificata la proprietà httpUrl, filePath è obbligatorio e descrive il percorso in cui verrà scaricato il file, incluso il nome file. In caso contrario, se si specifica la proprietà autoStorageContainerName o storageContainerUrl, filePath è facoltativo ed è la directory in cui scaricare i file. Nel caso in cui filePath venga usato come directory, qualsiasi struttura di directory già associata ai dati di input verrà mantenuta in modo completo e accodato alla directory filePath specificata. Il percorso relativo specificato non può uscire dalla directory di lavoro del Task (ad esempio usando '..'). |
| httpUrl |
string (uri) |
URL del file da scaricare. Le proprietà autoStorageContainerName, storageContainerUrl e httpUrl si escludono a vicenda e una di esse deve essere specificata. Se l'URL punta ad Archiviazione BLOB di Azure, deve essere leggibile dai nodi di calcolo. Esistono tre modi per ottenere tale URL per un BLOB nell'archiviazione di Azure: includere una firma di accesso condiviso (SAS) che concede le autorizzazioni di lettura per il BLOB, usare un'identità gestita con autorizzazione di lettura o impostare l'ACL per il BLOB o il relativo contenitore per consentire l'accesso pubblico. |
| identityReference |
Il riferimento all'identità assegnata dall'utente da utilizzare per accedere a Azure Blob Storage specificato da storageContainerUrl o httpUrl. |
|
| storageContainerUrl |
string (uri) |
URL del contenitore BLOB all'interno di Archiviazione BLOB di Azure. Le proprietà autoStorageContainerName, storageContainerUrl e httpUrl si escludono a vicenda e una di esse deve essere specificata. Questo URL deve essere leggibile ed elencabile dai nodi di calcolo. Esistono tre modi per ottenere tale URL per un contenitore nell'archiviazione di Azure: includere una firma di accesso condiviso che concede autorizzazioni di lettura ed elenco per il contenitore, usare un'identità gestita con autorizzazioni di lettura ed elenco o impostare l'ACL per il contenitore per consentire l'accesso pubblico. |
UserIdentity
Definizione dell'identità utente in cui viene eseguita l'attività. Specificare la proprietà userName o autoUser, ma non entrambe.
| Nome | Tipo | Descrizione |
|---|---|---|
| autoUser |
L'utente automatico sotto cui viene eseguito il Task. Le proprietà userName e autoUser si escludono a vicenda; è necessario specificarne uno ma non entrambi. |
|
| username |
string |
Il nome dell'identità utente con cui viene eseguito il Task. Le proprietà userName e autoUser si escludono a vicenda; è necessario specificarne uno ma non entrambi. |