Richieste di lavoro

Le richieste di lavoro consentono di monitorare le operazioni con tempi di esecuzione lunghi, ad esempio i backup del database o il provisioning delle istanze di computazione.

Quando si avvia un'operazione con tempi di esecuzione lunghi, il servizio crea una richiesta di lavoro. Una richiesta di lavoro è un log attività che consente di tenere traccia di ogni passo dello stato di avanzamento dell'operazione. Ogni richiesta di lavoro dispone di un OCID che consente di interagire con esso a livello di programmazione e di utilizzarlo per l'automazione.

Le richieste di lavoro in genere forniscono informazioni sullo stato del flusso di lavoro associato, errori, file di log e un elenco di risorse interessate dal flusso di lavoro.

Nota

Alcuni servizi Oracle Cloud Infrastructure, come Compute e Database, supportano le richieste di lavoro utilizzando l'API delle richieste di lavoro, che contiene l'operazione GetWorkRequest.

Alcuni servizi offrono richieste di lavoro supportate dall'API del servizio anziché dall'API Richieste di lavoro descritta in questo argomento. Ciascuna di queste API di servizio include operazioni che funzionano in modo simile all'operazione GetWorkRequest utilizzata dall'API delle richieste di lavoro.

Per i dettagli, consultare la documentazione di riferimento per l'API delle richieste di lavoro di ciascun servizio. I collegamenti a ciascun collegamento vengono forniti nella sezione Ulteriori informazioni e API per i servizi supportati.

Introduzione alle richieste di lavoro

Le richieste di lavoro sono utili nei seguenti scenari:

  • Se un'operazione non riesce, una richiesta di lavoro può aiutare a determinare quale fase del processo ha avuto un errore. Le richieste di lavoro acquisiscono errori di convalida asincrona.
  • Alcune operazioni interessano più risorse. Ad esempio, la creazione di un pool di istanze influisce anche sulle configurazioni delle istanze e delle istanze. Una richiesta di lavoro fornisce un elenco delle risorse interessate da un'operazione.
  • Per i flussi di lavoro che richiedono operazioni sequenziali, è possibile monitorare la richiesta di lavoro di ciascuna operazione e confermare che l'operazione è stata completata prima di procedere all'operazione successiva. Ad esempio, si supponga di voler creare un pool di istanze con il ridimensionamento automatico abilitato. A tale scopo, devi prima creare il pool di istanze e quindi configurare il ridimensionamento automatico. È possibile monitorare la richiesta di lavoro per la creazione del pool di istanze per determinare quando il workflow è completo, quindi configurare il ridimensionamento automatico al termine del workflow del pool di istanze.

Le richieste di lavoro vengono conservate per 12 ore.

Criterio IAM necessario

Per utilizzare Oracle Cloud Infrastructure, un amministratore deve essere membro di un gruppo a cui è stato concesso l'accesso di sicurezza in un criterio da un amministratore della tenancy. Questo accesso è necessario, indipendentemente dal fatto che si stia utilizzando la console o l'API REST con un SDK, un'interfaccia CLI o unaltro strumento. Se viene visualizzato un messaggio che informa che non si dispone dell'autorizzazione o che non si è autorizzati, verificare con l'amministratore della tenancy il tipo di accesso di cui si dispone e il compartimento in cui funziona l'accesso.

Per gli amministratori: le autorizzazioni che consentono agli utenti di visualizzare le richieste di lavoro, i log e i messaggi di errore per un'operazione variano a seconda del servizio. Per alcuni servizi, le richieste di lavoro ereditano le autorizzazioni dell'operazione che genera dinamicamente la richiesta di lavoro. Per altri servizi, le richieste di lavoro richiedono autorizzazioni separate. Per ulteriori informazioni, vedere Panoramica dei criteri IAM.

Stato della richiesta di lavoro

Le richieste di lavoro offrono visibilità sullo stato di avanzamento delle operazioni asincrone con tempi di esecuzione lunghi. Lo stato di una richiesta di lavoro indica lo stato di avanzamento dell'operazione.

Gli stati in genere includono valori quali IN_PROGRESS, FAILED o SUCCEEDED. Poiché ogni servizio o operazione che supporta le richieste di lavoro fornisce la propria API per ottenere lo stato, i valori specifici restituiti in una richiesta di lavoro possono variare a seconda del servizio e dell'operazione. Per informazioni sugli attributi di stato supportati dalle richieste di lavoro per ciascun servizio, vedere Stato richiesta di lavoro.

Risoluzione dei problemi errori di convalida

Le richieste di lavoro acquisiscono errori di convalida asincrona. Se un'operazione asincrona non riesce, una richiesta di lavoro può aiutare a determinare dove si è verificato l'errore nel processo.

Si verificano errori sincroni durante la chiamata iniziale all'API del servizio e vengono restituiti dall'API del servizio. Si verificano errori asincroni durante il flusso di lavoro che si verificano dopo la chiamata API iniziale e vengono restituiti dalla richiesta di lavoro. Una chiamata all'API del servizio che restituisce una risposta HTTP 200 ("richiesta riuscita") potrebbe essere seguita da un errore asincrono acquisito dalla richiesta di lavoro.

Ad esempio, quando si crea un'istanza di computazione, viene effettuata una chiamata API all'operazione LaunchInstance. A questo punto si verifica la convalida sincrona. Se si verifica un errore, viene restituita una risposta HTTP 4xx. Se la chiamata riesce, viene restituita una risposta HTTP 200 e viene avviato il workflow di creazione dell'istanza.

Mentre il workflow di creazione istanza continua, si verificano ulteriori controlli di convalida ed errore e viene creata una richiesta di lavoro asincrona per tenere traccia dello stato di avanzamento del workflow. La risposta all'operazione LaunchInstance contiene l'OCID della richiesta di lavoro nell'intestazione opc-work-request-id. È possibile monitorare lo stato della richiesta di lavoro in qualsiasi momento chiamando l'operazione GetWorkRequest e passando l'ID della richiesta di lavoro. Se si verifica un errore durante il workflow, è possibile recuperare un elenco di errori richiamando ListWorkRequestErrors e passando l'ID della richiesta di lavoro.

La richiesta di lavoro rimane in coda fino al completamento dell'operazione.

Per informazioni dettagliate sulle richieste di lavoro, incluse le modalità di filtro della risposta alla richiesta e di una richiesta e risposta campione, vedere Richieste di lavoro asincrone.

Esempio di workflow di convalida delle richieste di lavoro

Il diagramma seguente mostra un esempio di workflow di creazione istanza in cui la convalida sincrona riesce e la convalida asincrona non riesce.

  1. Chiamare l'endpoint LaunchInstance nell'API di computazione.
  2. Si verifica la convalida sincrona e si riceve una risposta HTTP 2xx dall'API di computazione. La risposta include l'OCID della richiesta di lavoro nell'intestazione opc-work-request-id.
  3. Il workflow di creazione istanza viene avviato e la convalida asincrona viene eseguita in tutto il workflow. Si è verificato un errore e la convalida non riesce.
  4. L'API di computazione popola gli errori delle richieste di lavoro e contrassegna la richiesta di lavoro come non riuscita.
  5. Per monitorare la richiesta di lavoro, chiamare GetWorkRequest nell'API Richieste di lavoro e passare l'ID della richiesta di lavoro trovato nell'intestazione opc-work-request-id.
  6. Se la richiesta di lavoro non è riuscita, chiamare ListWorkRequestErrors nell'API Richieste di lavoro e passare l'ID richiesta di lavoro per recuperare un elenco di errori.
  7. L'API Richieste di lavoro restituisce un elenco di errori che è possibile utilizzare per determinare la causa dell'errore.
Diagramma di alto livello del flusso di lavoro di creazione istanza che mostra la convalida sincrona e asincrona.

Utilizzo della console per visualizzare le richieste di lavoro

È possibile utilizzare la console per visualizzare i messaggi di log, i messaggi di errore e le risorse associate a una richiesta di lavoro specifica. I passi per visualizzare una richiesta di lavoro possono variare a seconda del servizio e della risorsa di cui si desidera visualizzare le richieste di lavoro.

  1. Passare alla risorsa di cui si desidera visualizzare le richieste di lavoro.

    Ad esempio, per visualizzare le richieste di lavoro per un'istanza di computazione, aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.

  2. Se la risorsa viene visualizzata in una vista elenco, fare clic sul nome della risorsa per visualizzare i dettagli della risorsa.
  3. In Risorse, fare clic su Richieste di lavoro. Lo stato di tutte le richieste di lavoro viene visualizzato nella pagina.
  4. Per visualizzare i messaggi di log, i messaggi di errore e le risorse associate a una richiesta di lavoro specifica, fare clic sul nome dell'operazione. Selezionare quindi un'opzione nella sezione Ulteriori informazioni.

    Per le risorse associate, è possibile fare clic sul menu Azioni (tre punti) accanto a una risorsa per copiare l'OCID della risorsa.

Ulteriori informazioni e API per i servizi supportati

Per informazioni sull'uso dell'API e sulle richieste di firma, consultare la documentazione relativa all'API REST e le credenziali di sicurezza. Per informazioni sugli SDK, vedere SDK e CLI.

Utilizzare le operazioni API riportate di seguito per monitorare lo stato delle richieste di lavoro.