Utilizzo dei task REST
Un task REST consente di chiamare un endpoint API REST per eseguire un'operazione.
Per utilizzare il principal delle risorse di Oracle Cloud Infrastructure per autenticare un endpoint API in un task REST, vedere Autenticazione.
Come descritto in Parti di un task REST, creare un task REST in Data Integration definendo la richiesta REST (metodo HTTP, URL e intestazione richiesta) e i criteri di completamento (condizione di riuscita) che devono essere soddisfatti per un richiamo riuscito del task REST.
Dopo l'invio di una richiesta REST, per impostazione predefinita Data Integration attende che la chiamata restituisca la risposta prima di passare ad altri task (modalità API sincrona). Il richiamo REST viene completato quando viene ricevuta la risposta per la richiesta REST. Al momento, il tipo di contenuto supportato per la risposta API è JSON.
Se la richiesta REST richiama un'operazione con tempi di esecuzione lunghi, specificare una condizione di polling e una configurazione di interruzione facoltativa per definire il completamento del richiamo REST. Quando il polling è configurato, Data Integration non attende che la chiamata REST restituisca la risposta prima di passare ad altri task (modalità API asincrona). Per ulteriori informazioni, vedere Polling in operazioni con tempi di esecuzione lunghi e Cessazione in operazioni con tempi di esecuzione lunghi.
La dimensione massima supportata per una risposta restituita da un task REST è 512K. Le risposte più grandi vengono troncate.
Le pagine seguenti descrivono come creare, modificare ed eliminare i task REST:
- Creazione di un task REST
- Fornitura dell'autenticazione nel task REST
- Visualizzazione e gestione dei parametri in un task REST
- Convalida di un task REST
- Modifica di un task REST
- Eliminazione di un task REST
Le pagine riportate di seguito descrivono altri task di gestione che possono essere eseguiti dopo la creazione di un task REST.
Parti di un task REST
Per richiamare un endpoint API REST, fornire le informazioni per l'esecuzione e il completamento della richiesta REST in un task REST.
La creazione di un task REST comporta i passi principali riportati di seguito.
Definisci dettagli di esecuzione: definisce i dettagli di esecuzione per la richiesta REST, inclusi il metodo HTTP, l'URL e l'intestazione della richiesta.
L'URL è il server REST da contattare e il percorso relativo della risorsa a cui si desidera accedere nella richiesta. Ad esempio:
http://myserver.com:8081/workspaces/finance1234/dataAssets
Per un metodo POST o PUT, fornire anche il corpo della richiesta. Attualmente, solo JSON è il formato supportato per un corpo della richiesta.
La definizione dei dettagli di esecuzione in Data Integration è la stessa per le operazioni API con tempi di esecuzione brevi e per le operazioni API con tempi di esecuzione lunghi.
Specifica criteri di completamento: specificare i criteri della condizione di riuscita che devono essere soddisfatti per considerare il task REST come un completamento riuscito.
Scrivere la condizione che restituisce true o false utilizzando la risposta della chiamata REST nel passo di esecuzione. Se la condizione restituisce true, il risultato del task REST è riuscito. Se false, il risultato è un task REST non riuscito.
In Data Integration è disponibile una condizione di operazione riuscita predefinita che è possibile utilizzare o modificare.
La specifica dei criteri di completamento per un'operazione API con tempi di esecuzione lunghi richiede l'aggiunta di una condizione di polling e di altri valori di polling. L'aggiunta di una richiesta di interruzione è facoltativa.
Vedere anche Parametri in un task REST e gli elementi da impostare prima di utilizzare il principal delle risorse di Oracle Cloud Infrastructure per autenticare un endpoint API in un task REST.
Polling in operazioni con tempi di esecuzione lunghi
Per un'operazione API REST con tempi di esecuzione lunghi, oltre a una condizione di operazione riuscita, è necessario specificare un URL e una condizione di polling, nonché i valori di intervallo di polling e timeout per identificare il completamento del richiamo REST.
La configurazione di polling viene utilizzata per eseguire periodicamente il polling dello stato della chiamata REST richiamata al passo di esecuzione.
Nel polling, la condizione di operazione riuscita è un'espressione scritta sulla risposta della richiesta di polling. La chiamata di polling valuta la condizione di polling per determinare se il polling si interrompe o continua. Integrazione dei dati genera ripetutamente una chiamata di polling all'intervallo di polling specificato fino al raggiungimento del valore per il timeout di polling specificato o fino a quando la condizione di polling non restituisce false, a seconda di quale delle due condizioni si verifica per prima.
L'intervallo di polling indica il tempo di attesa prima dell'invio della richiesta di polling successiva. Il timeout di polling è il periodo di tempo massimo consentito per il polling ripetuto alla frequenza di intervallo specificata. Il valore dell'intervallo deve essere minore del valore di timeout.
Si supponga che il timeout di polling sia di 24 ore e che l'intervallo di polling sia di 1 ora. Dopo aver richiamato la richiesta REST al passo di esecuzione, la richiesta REST di polling viene inviata a intervalli di 1 ora, ma solo per un massimo di 24 ore o fino a quando la condizione di polling non restituisce false.
Se i criteri specificati nella condizione di operazione riuscita vengono soddisfatti, la chiamata REST viene completata correttamente e l'esecuzione del task REST viene considerata come operazione riuscita. Se la condizione di operazione riuscita restituisce false, il risultato dell'esecuzione del task REST viene considerato non riuscito.
Ad esempio, si supponga che la configurazione di polling esegua il polling dell'avanzamento di un task valutando lo stato nella risposta:
cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) != 'SUCCESS' or cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) != 'ERROR'
Il polling si interrompe quando viene soddisfatta la condizione di operazione riuscita.
cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) == 'SUCCESS'
Cessazione in operazioni con tempi di esecuzione lunghi
La configurazione del metodo HTTP e dell'URL REST per terminare la chiamata REST è facoltativa per un'operazione API con tempi di esecuzione lunghi.
La definizione dei dettagli per la richiesta di interruzione REST in Data Integration è simile alla definizione della richiesta REST nel passo di esecuzione. È tuttavia possibile includere espressioni che utilizzano la risposta API dal passo di esecuzione REST nell'URL di interruzione.
Se si interrompe l'esecuzione di un task REST e non viene fornita una configurazione di interruzione in tale task REST, Data Integration:
- Interrompe l'esecuzione del task REST
- Non arresta l'operazione API di base richiamata dal task REST
Se viene fornita una configurazione di interruzione, Data Integration arresta l'esecuzione del task REST e l'operazione API di base.
Autenticazione
Fornire l'autenticazione per richiamare l'endpoint API REST nel task REST.
Al momento, puoi utilizzare il principal delle risorse Oracle Cloud Infrastructure come metodo per autenticare gli endpoint delle API Oracle Cloud Infrastructure. È possibile utilizzare il principal risorsa dell'area di lavoro o dell'applicazione.
Autenticazione principal risorsa
Il principal delle risorse Oracle Cloud Infrastructure può essere specificato come metodo di autenticazione per l'esecuzione di un endpoint API Oracle Cloud Infrastructure in un task REST.
Un principal risorsa consente alle risorse di essere attori principali autorizzati che possono eseguire azioni sulle risorse del servizio. Il metodo di autenticazione del principal delle risorse Oracle Cloud Infrastructure utilizza un token di sessione (RPST) temporaneo del provider di risorse per l'autenticazione e l'autorizzazione viene stabilita tramite i criteri in Oracle Cloud Infrastructure Identity and Access Management (IAM) con i domini di Identity.
IAM consente di scrivere criteri per i principal delle risorse che fanno parte di gruppi dinamici. Prima di utilizzare il principal delle risorse OCI per autenticare gli endpoint dell'API OCI nei task REST, creare un gruppo dinamico e concedere l'autorizzazione all'area di lavoro o all'applicazione di Data Integration e alle risorse di rete.
Di seguito sono riportati alcuni esempi di criteri che è possibile utilizzare.
-
Per definire le risorse che appartengono al gruppo dinamico, creare la seguente regola di corrispondenza nel gruppo dinamico:
ALL{resource.type = 'disworkspace', resource.compartment.id = <compartment-ocid>}
-
Aggiungere la seguente istruzione di criterio che consente al gruppo dinamico di accedere alle risorse di rete.
allow dynamic-group <dynamic-group-name> to use virtual-network-family in tenancy
-
Per utilizzare il principal delle risorse dell'applicazione Oracle Cloud Infrastructure per autenticare un endpoint API in un task REST, effettuare le operazioni riportate di seguito.
allow any-user to use ai-service-language-family in tenancy where ALL {request.principal.type = 'disapplication', request.principal.id = '<disapplication-ocid>'}
-
Le istruzioni dei criteri fornite in questo argomento sono solo esempi. Assicurarsi di scrivere criteri che soddisfino i propri requisiti.
-
Dopo aver aggiunto i componenti IAM, ad esempio i gruppi dinamici e le istruzioni dei criteri, non provare a eseguire immediatamente i task associati. I nuovi criteri IAM richiedono da cinque a 10 minuti per diventare effettivi.
Parametri
È possibile includere parametri in un task REST, in modo da poter riutilizzare il task in diverse situazioni di runtime.
È possibile utilizzare i parametri per le seguenti parti della richiesta REST in un task REST:
- Una o più sezioni dell'URL di esecuzione REST, dell'URL di polling o dell'URL di interruzione. In Data Integration, le sezioni variabili parametrizzate dell'URL sono note come parametri URL. Vedere Configurazione dei parametri del metodo HTTP, dell'URL e dell'URL.
- Il valore di un'intestazione nella richiesta. Vedere Parametrizzazione di un valore di intestazione.
- L'intero corpo della richiesta in una richiesta POST o PUT. Vedere Parametrizzazione del corpo della richiesta.
- Condizione di operazione riuscita che determina i criteri per il completamento riuscito della chiamata REST. Vedere Parametrizzazione della condizione di operazione riuscita.
- Condizione di polling (scritta sulla risposta restituita dalla richiesta di polling) che determina se il polling si interrompe o continua. Vedere Parametrizzazione della condizione di polling.