Impostazioni predefinite di configurazione intelligente - AWS SDK e strumenti

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

Impostazioni predefinite di configurazione intelligente

Con la funzionalità Smart Configuration Defaults, AWS gli SDK possono fornire valori predefiniti e ottimizzati per altre impostazioni di configurazione.

Configura questa funzionalità utilizzando quanto segue:

defaults_mode- impostazione dei AWS config file condivisi
AWS_DEFAULTS_MODE- variabile d'ambiente
aws.defaultsMode- Proprietà del sistema JVM: solo Java/Kotlin

Con questa impostazione, puoi scegliere una modalità che si allinea all'architettura dell'applicazione, che fornisce quindi valori predefiniti ottimizzati per l'applicazione. Se un'impostazione AWS SDK ha un valore impostato in modo esplicito, quel valore ha sempre la precedenza. Se un'impostazione AWS SDK non ha un valore impostato in modo esplicito e non defaults_mode è uguale a quella precedente, questa funzionalità può fornire valori predefiniti diversi per varie impostazioni ottimizzate per l'applicazione. Le impostazioni possono includere quanto segue: impostazioni di comunicazione HTTP, comportamento dei tentativi, impostazioni regionali degli endpoint del servizio e, potenzialmente, qualsiasi configurazione relativa all'SDK. I clienti che utilizzano questa funzionalità possono ottenere nuove impostazioni di configurazione predefinite personalizzate per scenari di utilizzo comuni. Se il tuo non defaults_mode è uguale alegacy, ti consigliamo di eseguire dei test dell'applicazione quando aggiorni l'SDK, poiché i valori predefiniti forniti potrebbero cambiare man mano che le best practice evolvono.

Valore predefinito: legacy

Nota: per impostazione predefinita, le nuove versioni principali degli SDK saranno impostate su. standard

Valori validi:

  • legacy— Fornisce impostazioni predefinite che variano in base all'SDK ed esistevano prima della creazione di. defaults_mode

  • standard— Fornisce i valori predefiniti più recenti consigliati che dovrebbero essere sicuri per l'esecuzione nella maggior parte degli scenari.

  • in-region— Si basa sulla modalità standard e include un'ottimizzazione personalizzata per le applicazioni che effettuano chiamate Servizi AWS dall'interno della stessa Regione AWS.

  • cross-region— Si basa sulla modalità standard e include un'ottimizzazione personalizzata per le applicazioni che effettuano chiamate Servizi AWS in una regione diversa.

  • mobile— Si basa sulla modalità standard e include un'ottimizzazione personalizzata per le applicazioni mobili.

  • auto— Si basa sulla modalità standard e include funzionalità sperimentali. L'SDK tenta di scoprire l'ambiente di runtime per determinare automaticamente le impostazioni appropriate. Il rilevamento automatico è basato sull'euristica e non fornisce una precisione del 100%. Se non è possibile determinare l'ambiente di esecuzione, standard viene utilizzata la modalità. Il rilevamento automatico potrebbe interrogare i metadati dell'istanza e i dati utente, il che potrebbe introdurre latenza. Se la latenza di avvio è fondamentale per la tua applicazione, ti consigliamo invece di sceglierne una esplicita. defaults_mode

Esempio di impostazione di questo valore nel config file:

[default] defaults_mode = standard

I seguenti parametri potrebbero essere ottimizzati in base alla selezione didefaults_mode:

  • retryMode— specifica in che modo l'SDK tenta di riprovare. Per informazioni, consulta Comportamento di ripetizione.

  • stsRegionalEndpoints— Specifica in che modo l'SDK determina l' Servizio AWS endpoint che utilizza per comunicare con (). AWS Security Token Service AWS STS Per informazioni, consulta AWS STS Endpoint regionalizzati.

  • s3UsEast1RegionalEndpoints: specifica in che modo l'SDK determina l'endpoint del AWS servizio che utilizza per comunicare con Amazon S3 per la regione. us-east-1

  • connectTimeoutInMillis— Dopo aver effettuato un tentativo di connessione iniziale su un socket, il periodo di tempo prima del timeout. Se il client non riceve il completamento dell'handshake di connessione, rinuncia e fallisce l'operazione.

  • tlsNegotiationTimeoutInMillis— Il tempo massimo che un handshake TLS può impiegare dal momento in cui il messaggio CLIENT HELLO viene inviato al momento in cui il client e il server hanno completamente negoziato i codici e si sono scambiati le chiavi.

Il valore predefinito per ogni impostazione cambia a seconda di quella selezionata per l'applicazione. defaults_mode Questi valori sono attualmente impostati come segue (soggetti a modifiche):

Parametro Modalità standard Modalità in-region Modalità cross-region Modalità mobile
retryMode standard standard standard standard
stsRegionalEndpoints regional regional regional regional
s3UsEast1RegionalEndpoints regional regional regional regional
connectTimeoutInMillis 3100 1100 3100 30000
tlsNegotiationTimeoutInMillis 3100 1100 3100 30000

Ad esempio, defaults_mode se l'opzione selezionata fossestandard, il valore di standard verrebbe assegnato a retry_mode (dalle retry_mode opzioni valide) e il valore di regional verrebbe assegnato a stsRegionalEndpoints (dalle stsRegionalEndpoints opzioni valide).

Compatibilità con gli AWS SDK

I seguenti SDK supportano le funzionalità e le impostazioni descritte in questo argomento. Vengono annotate eventuali eccezioni parziali. Tutte le impostazioni delle proprietà del sistema JVM sono supportate solo da AWS SDK for Java and the. SDK AWS for Kotlin

SDK Supportato Note o ulteriori informazioni
AWS CLI v2 No
SDK per C++ Parametri non ottimizzati:stsRegionalEndpoints,,s3UsEast1RegionalEndpoints. tlsNegotiationTimeoutInMillis
SDK per Go V2 (1.x) Parametri non ottimizzati:retryMode,,. stsRegionalEndpoints s3UsEast1RegionalEndpoints
SDK per Go 1.x (V1) No
SDK per Java 2.x Parametri non ottimizzati:. stsRegionalEndpoints
SDK per Java 1.x No
SDK per 3.x JavaScript Parametri non ottimizzati:stsRegionalEndpoints,,s3UsEast1RegionalEndpoints. tlsNegotiationTimeoutInMillis connectTimeoutInMillisviene chiamatoconnectionTimeout.
SDK per 2.x JavaScript No
SDK per Kotlin No
SDK per.NET 3.x Parametri non ottimizzati:connectTimeoutInMillis,. tlsNegotiationTimeoutInMillis
SDK per PHP 3.x Parametri non ottimizzati:. tlsNegotiationTimeoutInMillis
SDK per Python (Boto3) Parametri non ottimizzati:. tlsNegotiationTimeoutInMillis
SDK per Ruby 3.x
SDK per Rust No
Strumenti per PowerShell Parametri non ottimizzati:connectTimeoutInMillis,tlsNegotiationTimeoutInMillis.