Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Richiamo di API esterne asincrone
Data di pubblicazione: 30 gennaio 2023 () Storia del diagramma
Questa architettura mostra come chiamare servizi di terze parti che implementano il modello di callback del servizio per elaborare processi di lunga durata. È possibile creare un'orchestrazione AWS Step Functions per gestire i cicli di vita delle richieste, limitare le chiamate al servizio esterno in base al contratto RPS (Maximum-requests-per-second) e sospendere i flussi di lavoro delle richieste finché non si riceve una notifica di callback.
Richiamo di API esterne asincrone
I passaggi seguenti descrivono l'architettura:
-
Configura Step Functions per gestire il ciclo di vita delle richieste di lunga durata a un servizio di terze parti. Aggiungi una fase di richiesta che sospende il flusso di lavoro, in attesa che un token di attività continui. Imposta un timeout per interrompere il flusso di lavoro se non viene ricevuta una richiamata.
-
Invia il token dell'attività e richiedi il payload a una coda di Amazon Simple Queue Service. Usa Amazon CloudWatch per monitorare la lunghezza della coda e valuta la possibilità di modificare il contratto se la lunghezza supera i limiti.
-
AWS LambdaUsalo per eseguire il polling di Amazon SQS e attivare un flusso di lavoro rapido con Step Functions. Controlla la frequenza di invocazione utilizzando la dimensione del batch di polling, la concorrenza riservata e la concorrenza massima.
-
Aggiungi un ritardo dinamico all'interno di Lambda controllata da AWS AppConfig se il sistema necessita di un tasso di invocazione inferiore per rispettare l'RPS contrattato.
-
Step Functions richiama un'API proxy HTTP di Amazon API Gateway configurata con un limite di velocità per conformarsi all'RPS contrattato.
-
Richiama l'API del servizio asincrono esterno di terze parti inviando il payload consumato dalla coda delle richieste e ricevi l'ID del lavoro. Invia richieste non riuscite alla coda delle lettere morte (DLQ) utilizzando Amazon SQS.
-
Archivia il token di attività del flusso di lavoro e l'ID del lavoro ricevuto in un archivio di token implementato con Amazon DynamoDB. https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html
-
Quando il servizio esterno viene completato, ricevi l'ID del lavoro completato in un endpoint webhook di callback implementato con API Gateway.
-
Trasforma i callback esterni con i modelli di mappatura API Gateway, aggiungi il payload e il job ID a una coda Amazon SQS e rispondi immediatamente al chiamante.
-
Usa Lambda per interrogare la coda di callback di Amazon SQS, interrogare il token store e utilizzare il token per sbloccare il flusso di lavoro in attesa. Archivia i messaggi non riusciti in un DLQ di callback.
-
Nel flusso di lavoro, passate l'ID del processo al passaggio successivo e richiamate un processore Step Functions per recuperare i risultati dall'archivio risultati esterno di terze parti in base all'ID del lavoro. Elabora i risultati del servizio esterno.
Approfondimenti
Per ulteriori informazioni, consulta le seguenti risorse:
Storia del diagramma
Per ricevere notifiche sugli aggiornamenti di questo diagramma di architettura di riferimento, iscriviti al feed RSS.
| Modifica | Descrizione | Data |
|---|---|---|
Pubblicazione iniziale | Diagramma dell'architettura di riferimento pubblicato per la prima volta. | 30 gennaio 2023 |
Nota
Per iscriverti agli aggiornamenti RSS, devi avere un plugin RSS abilitato per il browser che stai utilizzando.