Waiter - AWS SDK for Rust

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à.

Waiter

I camerieri sono un'astrazione lato client utilizzata per interrogare una risorsa fino al raggiungimento dello stato desiderato o fino a quando non viene stabilito che la risorsa non entrerà nello stato desiderato. Questa è un'attività comune quando si lavora con servizi che alla fine sono coerenti, come Amazon Simple Storage Service, o servizi che creano risorse in modo asincrono, come Amazon Elastic Compute Cloud. Scrivere una logica per controllare continuamente lo stato di una risorsa può essere complicato e soggetto a errori. L'obiettivo dei camerieri è trasferire questa responsabilità dal codice del cliente alla società AWS SDK for Rust, che ha una conoscenza approfondita degli aspetti relativi alle tempistiche dell'operazione. AWS

Servizi AWS che forniscono supporto ai camerieri includono un modulo. <service>::waiters

  • La <service>::client::Waiters caratteristica fornisce metodi di cameriere per il cliente. I metodi sono implementati per la Client struttura. Tutti i metodi di cameriere seguono una convenzione di denominazione standard di wait_until_<Condition>

L'esempio seguente utilizza Amazon S3. Tuttavia, i concetti sono gli stessi per tutti quelli Servizio AWS che hanno uno o più camerieri definiti.

Il seguente esempio di codice mostra l'utilizzo di una funzione di cameriere invece di scrivere una logica di polling per attendere l'esistenza di un bucket dopo essere stato creato.

use std::time::Duration; use aws_config::BehaviorVersion; // Import Waiters trait to get `wait_until_<Condition>` methods on Client. use aws_sdk_s3::client::Waiters; let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; let s3 = aws_sdk_s3::Client::new(&config); // This initiates creating an S3 bucket and potentially returns before the bucket exists. s3.create_bucket() .bucket("my-bucket") .send() .await?; // When this function returns, the bucket either exists or an error is propagated. s3.wait_until_bucket_exists() .bucket("my-bucket") .wait(Duration::from_secs(5)) .await?; // The bucket now exists.
Nota

Ogni metodo di attesa restituisce una risposta Result<FinalPoll<...>, WaiterError<...>> che può essere utilizzata per ottenere la risposta finale dopo il raggiungimento della condizione desiderata o di un errore. Vedi FinalPolle WaiterErrornella documentazione dell'API Rust per i dettagli.