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à.
Configurazione dei client di servizio nel codice per AWS SDK for Java 2.x
In alternativa o in aggiunta alla configurazione esterna dei client di servizio, è possibile configurarli a livello di codice a livello di codice.
Configurando i client di servizio in codice, acquisisci un controllo approfondito delle numerose opzioni a tua disposizione. La maggior parte delle configurazioni che è possibile impostare esternamente possono essere impostate anche nel codice.
Configurazione di base in codice
Ad esempio, lo snippet seguente imposta il codice Regione AWS EU_SOUTH_2
per un client di servizio Amazon S3:
S3Client s3Client = S3Client.builder() .region(Region.EU_SOUTH_2) .build();
Lo snippet precedente mostra il metodo statico di fabbrica,. builder()
Il builder()
metodo restituisce un builder
oggetto che consente di personalizzare il client del servizio. I metodi fluent setter restituiscono l'builder
oggetto, in questo caso un'S3ClientBuilder
build()
Configurazione avanzata in codice
Il seguente frammento mostra opzioni di configurazione aggiuntive:
ClientOverrideConfiguration clientOverrideConfiguration = ClientOverrideConfiguration.builder() .apiCallAttemptTimeout(Duration.ofSeconds(1)) .addMetricPublisher(CloudWatchMetricPublisher.create()) .build(); S3Client s3Client = S3Client.builder() .region(Region.EU_SOUTH_2) .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) .overrideConfiguration(clientOverrideConfiguration) .httpClientBuilder( ApacheHttpClient.builder() .maxConnections(100) .connectionTimeout(Duration.ofSeconds(5)) .proxyConfiguration(ProxyConfiguration.builder() .endpoint(URI.create("http://proxy:8080")) .build()) ).build();
Nello snippet precedente, puoi vedere diversi punti di accesso per configurare un client di servizio:
-
Un
ClientOverrideConfiguration.Builder
oggettoche fornisce opzioni di configurazione comuni a tutti i client di servizio. Queste impostazioni sono comportamenti AWS specifici indipendenti da qualsiasi implementazione HTTP. -
Configurazione del client HTTP tramite un'implementazione separata di HTTP Client Builder.
Questo è un esempio. Il client di servizio fornisce ilApacheHttpClient.Builder
httpClientBuilder()
metodo per associare il client HTTP configurato al client di servizio. -
Metodi presenti nel client builder
stesso, ad esempio e region()
credentialsProvider()
Invece di creare oggetti separati e poi passarli ai metodi del client di servizio, AWS SDK for Java 2.x fornisce metodi che accettano espressioni lambda per creare questi oggetti in linea. I metodi di configurazione del builder hanno lo stesso nome, ma hanno firme diverse. Per esempio:
La configurazione del client S3 mostrata in precedenza utilizzando questo approccio può essere eseguita in un unico blocco di codice:
S3Client s3Client = S3Client.builder() .region(Region.EU_SOUTH_2) .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) .overrideConfiguration(b -> b .apiCallAttemptTimeout(Duration.ofSeconds(1)) .addMetricPublisher(CloudWatchMetricPublisher.create())) .httpClientBuilder(ApacheHttpClient.builder() .maxConnections(100) .connectionTimeout(Duration.ofSeconds(5)) .proxyConfiguration(ProxyConfiguration.builder() .endpoint(URI.create("http://proxy:8080")) .build())) .build();
Opzioni di configurazione non disponibili nel codice
Poiché le seguenti impostazioni influiscono sui processi di inizializzazione fondamentali nell'SDK, puoi impostare le seguenti impostazioni di configurazione solo esternamente e non nel codice:
Impostazioni della posizione dei file
Queste impostazioni controllano la posizione dei file di configurazione e credenziali condivisi e non possono essere sovrascritte a livello di codice dopo averli caricati dall'SDK:
-
AWS_CONFIG_FILE (variabile di ambiente)/AWS.configFile (proprietà del sistema JVM)
-
AWS_SHARED_CREDENTIALS_FILE (variabile di ambiente)/aws. sharedCredentialsFile (proprietà del sistema JVM)
Queste impostazioni devono essere impostate prima che l'SDK carichi i file di configurazione, poiché determinano dove l'SDK cerca la configurazione. Una volta inizializzato l'SDK, la modifica di questi valori non ha alcun effetto.
Disattivazione del servizio di metadati dell'istanza
-
AWS_EC2_METADATA_DISABLED (variabile di ambiente)/aws.disableEC2Metadata (proprietà del sistema JVM)
Questa impostazione controlla se l'SDK tenta o meno di utilizzare l'Instance Metadata Service. EC2 Una volta inizializzato l'SDK, non puoi modificare questa impostazione a livello di codice.
Selezione del profilo
-
AWS_PROFILE(variabile di ambiente)/aws.profile (proprietà del sistema JVM)
Questa impostazione indica all'SDK quale profilo caricare dai file di configurazione e credenziali condivisi. Una volta caricato, la modifica di questo valore non ha alcun effetto.
Percorsi delle credenziali del contenitore
-
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
-
AWS_CONTAINER_CREDENZIALI_COMPLETE_URI
-
AWS_CONTAINER_TOKEN DI AUTORIZZAZIONE
-
AWS_CONTAINERFILE_TOKEN_DI _AUTORIZZAZIONE
Utilizzate queste variabili di ambiente per indicare all'SDK come recuperare le credenziali dai servizi del contenitore. Dopo aver stabilito la catena di fornitori di credenziali durante l'inizializzazione del client di servizio, non è possibile modificare queste impostazioni.
Selezione predefinita dell'implementazione HTTP
-
SYNC_HTTP_SERVICE_IMPL (variabile di ambiente)/software.amazon.awssdk.http.service.impl (proprietà del sistema JVM)
-
ASYNC_HTTP_SERVICE_IMPL (variabile di ambiente)/software.amazon.awssdk.http.async.service.impl (proprietà di sistema JVM)
Queste impostazioni globali determinano l'implementazione del client HTTP utilizzata dall'SDK per tutti i client di servizio, a meno che non venga sovrascritta nel codice per i singoli client di servizio. È necessario impostarle prima che l'SDK inizializzi i suoi client HTTP e non possono essere modificate in seguito.