Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Nouvelle tentative

Mode de mise au point
Nouvelle tentative - Kit AWS SDK pour Rust

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Kit AWS SDK pour Rust Fournit un comportement de nouvelle tentative par défaut et des options de configuration personnalisables. Appels renvoyant de Services AWS temps en temps des exceptions inattendues. Certains types d'erreurs, tels que les erreurs de régulation ou les erreurs transitoires, peuvent réussir si l'appel est retenté.

Le comportement des nouvelles tentatives peut être configuré globalement à l'aide des variables d'environnement ou des paramètres du AWS config fichier partagé. Pour plus d'informations sur cette approche, consultez la section Comportement des nouvelles tentatives dans le guide de référence AWS SDKs et Tools. Il inclut également des informations détaillées sur la mise en œuvre des stratégies de réessai et sur la manière de choisir une stratégie plutôt qu'une autre.

Ces options peuvent également être configurées dans votre code, comme indiqué dans les sections suivantes.

Configuration de nouvelle tentative par défaut

Chaque client de service utilise par défaut la configuration de stratégie standard de nouvelle tentative fournie par la RetryConfigstructure. Par défaut, un appel sera essayé trois fois (la première tentative, plus deux tentatives). De plus, chaque nouvelle tentative sera retardée d'une courte durée aléatoire afin d'éviter les tempêtes de nouvelles tentatives. Cette convention convient à la majorité des cas d'utilisation, mais peut ne pas être adaptée dans des circonstances spécifiques telles que les systèmes à haut débit.

Seuls certains types d'erreurs sont considérés comme réessayables par le. SDKs Voici des exemples d'erreurs réessayables :

  • délais d'expiration des sockets

  • régulation côté service

  • erreurs de service transitoires telles que les réponses HTTP 5XX

Les exemples suivants ne sont pas considérés comme réessayables :

  • Paramètres manquants ou non valides

  • erreurs d'authentification/de sécurité

  • exceptions de mauvaise configuration

Vous pouvez personnaliser la stratégie des standard nouvelles tentatives en définissant le nombre maximal de tentatives, les délais et la configuration des interruptions.

Nombre maximum de tentatives

Vous pouvez personnaliser le nombre maximum de tentatives dans votre code en fournissant une modification RetryConfigà votre aws_config::defaults :

const CUSTOM_MAX_ATTEMPTS: u32 = 5; let retry_config = RetryConfig::standard() // Set max attempts. When max_attempts is 1, there are no retries. // This value MUST be greater than zero. // Defaults to 3. .with_max_attempts(CUSTOM_MAX_ATTEMPTS); let config = aws_config::defaults(BehaviorVersion::latest()) .retry_config(retry_config) .load() .await;

Retards et retards

Si une nouvelle tentative est nécessaire, la stratégie de nouvelle tentative par défaut attend avant d'effectuer la prochaine tentative. Le délai de la première tentative est faible, mais il augmente de façon exponentielle lors des tentatives ultérieures. Le délai maximal est plafonné afin qu'il ne devienne pas trop important.

Une instabilité aléatoire est appliquée aux délais entre toutes les tentatives. L'instabilité contribue à atténuer les effets des grandes flottes qui peuvent provoquer des tempêtes de nouvelles tentatives. Pour une discussion plus approfondie sur le recul et la gigue exponentiels, voir Exponential Backoff And Jitter dans le blog sur l'architecture.AWS

Vous pouvez personnaliser les paramètres de délai de votre code en fournissant une modification RetryConfigà votreaws_config::defaults. Le code suivant définit la configuration de manière à retarder la première tentative de 100 millisecondes au maximum et à ce que le délai maximum entre chaque nouvelle tentative soit de 5 secondes.

let retry_config = RetryConfig::standard() // Defaults to 1 second. .with_initial_backoff(Duration::from_millis(100)) // Defaults to 20 seconds. .with_max_backoff(Duration::from_secs(5)); let config = aws_config::defaults(BehaviorVersion::latest()) .retry_config(retry_config) .load() .await;

Mode de nouvelle tentative adaptatif

Comme alternative à la stratégie de nouvelle standard tentative de mode, la stratégie de nouvelle adaptive tentative de mode est une approche avancée qui recherche le taux de requêtes idéal afin de minimiser les erreurs de limitation.

Note

Les tentatives adaptatives sont un mode de nouvelle tentative avancé. L'utilisation de cette stratégie n'est généralement pas recommandée. Reportez-vous à la section Comportement de nouvelle tentative dans le guide de référence AWS SDKs et Tools.

Les tentatives adaptatives incluent toutes les fonctionnalités des tentatives standard. Il ajoute un limiteur de débit côté client qui mesure le taux de demandes limitées par rapport aux demandes non limitées. Cela limite également le trafic pour tenter de rester dans une bande passante sûre, ce qui ne provoque idéalement aucune erreur de régulation.

Le tarif s'adapte en temps réel à l'évolution des conditions de service et des modèles de trafic et peut augmenter ou diminuer le taux de trafic en conséquence. Surtout, le limiteur de débit peut retarder les premières tentatives dans les scénarios à fort trafic.

Vous pouvez sélectionner la stratégie adaptive de nouvelle tentative dans le code en fournissant une modification RetryConfig:

let config = aws_config::defaults(BehaviorVersion::latest()) .retry_config(RetryConfig::adaptive()) .load() .await;

Rubrique suivante :

Délais
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.