Configurazione per la AWS SDK for PHP versione 3 - AWS SDK for PHP

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 per la AWS SDK for PHP versione 3

Le opzioni del costruttore client possono essere fornite in un costruttore client o fornite alla Aws\Sdkclasse. La vasta gamma di opzioni fornite a uno specifico tipo di client può variare in base a quale client si sta creando. Queste opzioni di configurazione client personalizzate sono descritte nella APIdocumentazione di ciascun client.

Nota che alcune opzioni di configurazione controlleranno e utilizzeranno i valori predefiniti in base alle variabili di ambiente o a un file di AWS configurazione. Per impostazione predefinita, il file di configurazione da controllare sarà .aws/config nella home directory, comunemente ~/.aws/config. Tuttavia, è possibile utilizzare la variabile d'ambiente AWS_CONFIG_FILE per impostare la posizione del file di configurazione predefinito. Ad esempio, questo può essere utile se si limita l'accesso ai file a determinate directory con. open_basedir

Per ulteriori informazioni sulla posizione e sulla formattazione dei credentials file condivisi e condivisi, consulta Configuration nella AWS config AWS SDKsand Tools Reference Guide.

Per i dettagli su tutte le impostazioni di configurazione globali che è possibile impostare nei file di AWS configurazione o come variabili di ambiente, consulta il riferimento alle impostazioni di configurazione e autenticazione nella Guida di riferimento AWS SDKs e agli strumenti.

L'esempio seguente mostra come passare opzioni a un costruttore di client Amazon S3.

use Aws\S3\S3Client; $options = [ 'region' => 'us-west-2', 'version' => '2006-03-01', 'signature_version' => 'v4' ]; $s3Client = new S3Client($options);

Consulta la guida di utilizzo di base per ulteriori informazioni su come costruire client.

api_provider

Tipo

callable

Un PHP callable che accetta un argomento di tipo, servizio e versione e restituisce una matrice di dati di configurazione corrispondenti. Il valore del tipo può essere api, waiter o paginator.

Per impostazione predefinita, SDK utilizza un'istanza Aws\Api\FileSystemApiProvider che carica API i file dalla src/data cartella diSDK.

credenziali

Tipo

array|Aws\CacheInterface|Aws\Credentials\CredentialsInterface|bool|callable

Passa un oggetto Aws\Credentials\CredentialsInterface per utilizzare le credenziali di un'istanza specifica. Quanto segue specifica che deve essere utilizzato il provider di credenziali IAM Identity Center. Questo provider è noto anche come fornitore di SSO credenziali.

$credentials = Aws\Credentials\CredentialProvider::sso('profile default'); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $credentials ]);

Se utilizzi un profilo denominato, sostituisci il nome del tuo profilo con 'default' nell'esempio precedente. Per ulteriori informazioni sulla configurazione di profili denominati, consulta configShared and credentials files nella AWS SDKsand Tools Reference Guide.

Se non specificate un provider di credenziali da utilizzare e vi affidate alla catena di fornitori di credenziali, il messaggio di errore derivante dall'autenticazione non riuscita è in genere generico. Viene generato dall'ultimo provider nell'elenco delle fonti controllate per verificare la presenza di credenziali valide, che potrebbe non essere il provider che si sta tentando di utilizzare. Quando si specifica il provider di credenziali da utilizzare, qualsiasi messaggio di errore risultante è più utile e pertinente perché proviene solo da quel provider. Per ulteriori informazioni sulla catena di fonti in cui è stata verificata la presenza di credenziali, consulta Credential provider chain nella AWS SDKsand Tools Reference Guide.

Passa false per utilizzare credenziali null e non firmare richieste.

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => false ]);

Passa una funzione di provider di credenziali chiamabile per creare credenziali utilizzando una funzione.

use Aws\Credentials\CredentialProvider; // Only load credentials from environment variables $provider = CredentialProvider::env(); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $provider ]);

Trasferisce le credenziali nella cache a un'istanza di Aws\CacheInterface per memorizzare nella cache i valori restituiti dalla catena di provider predefinita su più processi.

use Aws\Credentials\CredentialProvider; use Aws\PsrCacheAdapter; use Symfony\Component\Cache\Adapter\FilesystemAdapter; $cache = new PsrCacheAdapter(new FilesystemAdapter); $provider = CredentialProvider::defaultProvider(); $cachedProvider = CredentialProvider::cache($provider, $cache); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $cachedProvider ]);

Puoi trovare ulteriori informazioni sulla fornitura di credenziali a un client nella guida Credentials for the AWS SDK for PHP Version 3.

Nota

Quando vengono utilizzate, le credenziali vengono caricate e convalidate lentamente.

debug

Tipo

bool|array

Emette le informazioni di debug su ogni trasferimento. Le informazioni di debug contengono informazioni su ogni modifica dello stato di una transazione e vengono preparate e inviate tramite la rete. Nell'output di debug sono incluse anche informazioni sul HTTP gestore specifico utilizzato da un client (ad esempio, debug c output). URL

Imposta su true per visualizzare le informazioni di debug durante l'invio delle richieste.

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'debug' => true ]); // Perform an operation to see the debug output $s3->listBuckets();

In alternativa, puoi fornire un array associativo con le seguenti chiavi.

logfn (callable)

Funzione richiamata con messaggi di log. Per impostazione predefinita, viene utilizzata PHP la echo funzione di.

stream_size (int)

Quando le dimensioni di un flusso sono maggiori rispetto a questo numero, il flusso di dati non viene registrato. Imposta su 0 per non registrare alcun dato di flusso.

scrub_auth (bool)

Imposta false per disabilitare la cancellazione dei dati di autenticazione dai messaggi registrati (il che significa che l'ID della chiave di AWS accesso e la firma verranno passati a). logfn

http (bool)

Impostato per false disabilitare la funzionalità di «debug» dei HTTP gestori di livello inferiore (ad esempio, verbose c output). URL

auth_headers (array)

Imposta su una mappatura chiave-valore di intestazioni che desideri sostituire mappate al valore con cui desideri sostituirle. Questi valori non vengono utilizzati a meno che scrub_auth non sia impostato su true.

auth_strings (array)

Imposta su una mappatura chiave-valore di espressioni regolari da mappare alle loro sostituzioni. Questi valori sono utilizzati dallo scrubber dei dati di autenticazione se scrub_auth è impostato su true.

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'debug' => [ 'logfn' => function ($msg) { echo $msg . "\n"; }, 'stream_size' => 0, 'scrub_auth' => true, 'http' => true, 'auth_headers' => [ 'X-My-Secret-Header' => '[REDACTED]', ], 'auth_strings' => [ '/SuperSecret=[A-Za-z0-9]{20}/i' => 'SuperSecret=[REDACTED]', ], ] ]); // Perform an operation to see the debug output $s3->listBuckets();
Nota

Questa opzione restituisce anche le informazioni sul HTTP gestore sottostante prodotte dall'opzione debug. http L'output di debug è molto utile durante la diagnostica dei problemi nell' AWS SDK for PHP. Fornisci l'output di debug per un caso di errore isolato quando si aprono problemi su. SDK

statistiche

Tipo

bool|array

Associa le statistiche di trasferimento agli errori e ai risultati restituiti dalle SDK operazioni.

Imposta su true per raccogliere le statistiche di trasferimento sulle richieste inviate.

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'stats' => true ]); // Perform an operation $result = $s3->listBuckets(); // Inspect the stats $stats = $result['@metadata']['transferStats'];

In alternativa, puoi fornire un array associativo con le seguenti chiavi.

retries (bool)

Imposta su true per abilitare la creazione di report sui nuovi tentativi. Le statistiche sui nuovi tentativi sono raccolte per impostazione predefinita e restituite.

http (bool)

Impostato true per consentire la raccolta di statistiche da HTTP adattatori di livello inferiore (ad esempio, valori restituiti). GuzzleHttpTransferStats HTTPi gestori devono supportare un'opzione __on_transfer_stats affinché ciò abbia effetto. HTTPle statistiche vengono restituite come matrice indicizzata di array associativi; ogni array associativo contiene le statistiche di trasferimento restituite per una richiesta dal gestore del client. HTTP Disabilitato per impostazione predefinita.

Se una richiesta è stata tentata nuovamente, ne vengono restituite tutte le statistiche di trasferimento, con $result['@metadata']['transferStats']['http'][0] contenenti le statistiche per la prima richiesta, $result['@metadata']['transferStats']['http'][1] che contengono le statistiche per la seconda richiesta e così via.

timer (bool)

Imposta su true per abilitare un timer di comando che indica il tempo totale utilizzato, in secondi, per eseguire un'operazione. Disabilitato per impostazione predefinita.

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'stats' => [ 'retries' => true, 'timer' => false, 'http' => true, ] ]); // Perform an operation $result = $s3->listBuckets(); // Inspect the HTTP transfer stats $stats = $result['@metadata']['transferStats']['http']; // Inspect the number of retries attempted $stats = $result['@metadata']['transferStats']['retries_attempted']; // Inspect the total backoff delay inserted between retries $stats = $result['@metadata']['transferStats']['total_retry_delay'];

endpoint

Tipo

string

Il servizio web completo. URI È necessario per i servizi, ad esempio quelli AWS Elemental MediaConvertche utilizzano endpoint specifici dell'account. Per questi servizi, richiedi questo endpoint utilizzando il metodo. describeEndpoints

Questo è necessario solo quando ci si connette a un endpoint personalizzato (ad esempio, una versione locale di Amazon S3 o Amazon DynamoDB Local).

Ecco un esempio di connessione ad Amazon DynamoDB Local:

$client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-east-1', 'endpoint' => 'http://localhost:8000' ]);

Consulta le AWS regioni e gli endpoint per un elenco delle AWS regioni e degli endpoint disponibili.

endpoint_provider

Tipo

Aws\EndpointV2\EndpointProviderV2|callable

Un'istanza opzionale di EndpointProvider V2 o PHP callable che accetta un hash di opzioni, tra cui una chiave «service» e «region». Restituisce NULL o un hash di dati di endpoint, di cui la chiave "endpoint" è obbligatoria.

Ecco un esempio di come creare un provider di endpoint minimi.

$provider = function (array $params) { if ($params['service'] == 'foo') { return ['endpoint' => $params['region'] . '.example.com']; } // Return null when the provider cannot handle the parameters return null; });

endpoint_discovery

Tipo

array|Aws\CacheInterface|Aws\EndpointDiscovery\ConfigurationInterface|callable

Endpoint Discovery identifica e si connette all'endpoint corretto per un servizio che supporta il rilevamento degli endpoint. API Per servizi che supportano ma non richiedono il rilevamento di endpoint, abilita endpoint_discovery durante la creazione client. Se un servizio non supporta il rilevamento di endpoint questa configurazione viene ignorata.

Aws\EndpointDiscovery\ConfigurationInterface

Un provider di configurazione opzionale che consente la connessione automatica all'endpoint appropriato di un servizio API per le operazioni specificate dal servizio.

L'oggetto Aws\EndpointDiscovery\Configuration accetta due opzioni, incluso un valore booleano, "abilitato", che indica se il rilevamento di endpoint è abilitato e un "cache_limit" intero che indica il numero massimo di chiavi nella cache di endpoint.

Per ogni client creato, passa un oggetto Aws\EndpointDiscovery\Configuration per utilizzare una configurazione specifica per il rilevamento di endpoint.

use Aws\EndpointDiscovery\Configuration; use Aws\S3\S3Client; $enabled = true; $cache_limit = 1000; $config = new Aws\EndpointDiscovery\Configuration ( $enabled, $cache_limit ); $s3 = new Aws\S3\S3Client([ 'region' => 'us-east-2', 'endpoint_discovery' => $config, ]);

Passa un'istanza di Aws\CacheInterface per memorizzare nella cache i valori restituiti dal rilevamento di endpoint su più processi.

use Aws\DoctrineCacheAdapter; use Aws\S3\S3Client; use Doctrine\Common\Cache\ApcuCache; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache), ]);

Passa un array al rilevamento di endpoint.

use Aws\S3\S3Client; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => [ 'enabled' => true, 'cache_limit' => 1000 ], ]);

handler

Tipo

callable

Un gestore che accetta un oggetto di comando e un oggetto di richiesta e che restituisce una promessa (GuzzleHttp\Promise\PromiseInterface) che viene soddisfatta con un oggetto Aws\ResultInterface o rifiutata con un Aws\Exception\AwsException. Un gestore non accetta un gestore successivo poiché è terminale e tenuto a soddisfare un comando. Se non viene fornito alcun gestore, viene utilizzato un gestore Guzzle predefinito.

Puoi usare Aws\MockHandler per restituire risultati fittizi o generare eccezioni fittizie. Metti in coda i risultati o le eccezioni e li MockHandler rimuoverà in ordine. FIFO

use Aws\Result; use Aws\MockHandler; use Aws\DynamoDb\DynamoDbClient; use Aws\CommandInterface; use Psr\Http\Message\RequestInterface; use Aws\Exception\AwsException; $mock = new MockHandler(); // Return a mocked result $mock->append(new Result(['foo' => 'bar'])); // You can provide a function to invoke; here we throw a mock exception $mock->append(function (CommandInterface $cmd, RequestInterface $req) { return new AwsException('Mock exception', $cmd); }); // Create a client with the mock handler $client = new DynamoDbClient([ 'region' => 'us-east-1', 'handler' => $mock ]); // Result object response will contain ['foo' => 'bar'] $result = $client->listTables(); // This will throw the exception that was enqueued $client->listTables();

http

Tipo

array

Imposta su una serie di HTTP opzioni che vengono applicate HTTP alle richieste e ai trasferimenti creati da. SDK

SDKSupporta le seguenti opzioni di configurazione:

cert

Tipo

string|array

Specificare il certificato PEM formattato lato client.

  • Imposta come stringa per il percorso del solo file di certificato.

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['cert' => '/path/to/cert.pem'] ]);
  • Imposta come array contenente il percorso e la password.

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => [ 'cert' => ['/path/to/cert.pem', 'password'] ] ]);

connect_timeout

Un float che descrive il numero di secondi da attendere durante il tentativo di connettersi a un server. Utilizza 0 per attendere un periodo di tempo indefinito (comportamento predefinito).

use Aws\DynamoDb\DynamoDbClient; // Timeout after attempting to connect for 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'connect_timeout' => 5 ] ]);

debug

Tipo

bool|resource

Indica al HTTP gestore sottostante di generare informazioni di debug. Le informazioni di debug fornite dai diversi HTTP gestori possono variare.

  • Passa true su cui scrivere l'output di debug. STDOUT

  • Passa a resource come restituito da fopen per scrivere l'output di debug su una specifica risorsa di PHP flusso.

decode_content

Tipo

bool

Indica al HTTP gestore sottostante di aumentare il corpo delle risposte compresse. Quando non è abilitato, i corpi compressi delle risposte potrebbero essere decompressi con un GuzzleHttp\Psr7\InflateStream.

Nota

La decodifica del contenuto è abilitata per impostazione predefinita nel gestore predefinito. SDK HTTP Per garantire la compatibilità con le versioni precedenti, questa impostazione predefinita non può essere modificata. Se archivi file compressi in Amazon S3, ti consigliamo di disabilitare la decodifica dei contenuti a livello di client S3.

use Aws\S3\S3Client; use GuzzleHttp\Psr7\InflateStream; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['decode_content' => false], ]); $result = $client->getObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'massize_gzipped_file.tgz' ]); $compressedBody = $result['Body']; // This content is still gzipped $inflatedBody = new InflateStream($result['Body']); // This is now readable

delay

Tipo

int

Il numero di ritardo in millisecondi prima dell'invio della richiesta. Questo è spesso usato per inserire un ritardo prima di inviare di nuovo la richiesta.

expect

Tipo

bool|string

Questa opzione viene passata al gestore sottostante. HTTP Per impostazione predefinita, l'intestazione Expect: 100-Continue è impostata quando il corpo della richiesta supera 1 MB. true o false abilita o disabilita l'intestazione su tutte le richieste. Se viene utilizzato un intero, solo le richieste con corpi che superano questa impostazione utilizzeranno l'intestazione. Quando utilizzato come un intero, se le dimensioni del corpo non sono note, verrà inviata l'intestazione Expect.

avvertimento

La disabilitazione dell'intestazione Expect può impedire al servizio da restituire l'autenticazione o altri errori. Questa opzione deve essere configurata con cautela.

progress

Tipo

callable

Definisce una funzione da invocare quando vi è un avanzamento del trasferimento. La funzione accetta i seguenti argomenti:

  1. Il numero totale di byte previsti che saranno scaricati.

  2. Il numero di byte scaricati fino a ora.

  3. Il numero totale di byte previsti che saranno caricati.

  4. Il numero di byte caricati fino a ora.

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2' ]); // Apply the http option to a specific command using the "@http" // command parameter $result = $client->getObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'large.mov', '@http' => [ 'progress' => function ($expectedDl, $dl, $expectedUl, $ul) { printf( "%s of %s downloaded, %s of %s uploaded.\n", $expectedDl, $dl, $expectedUl, $ul ); } ] ]);

proxy

Tipo

string|array

È possibile connettersi a un AWS servizio tramite un proxy utilizzando l'proxyopzione.

  • Fornisci un valore di stringa per connetterti a un proxy per tutti i tipi diURIs. Il valore di stringa proxy può contenere uno schema, nome utente e password. Ad esempio "http://username:password@192.168.16.1:10".

  • Fornisci un array associativo di impostazioni proxy in cui la chiave è lo schema di e il valore è il proxy del dato URI (ad esempio, puoi fornire proxy diversi per gli endpoint «http» e «https»). URI

use Aws\DynamoDb\DynamoDbClient; // Send requests through a single proxy $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'proxy' => 'http://192.168.16.1:10' ] ]); // Send requests through a different proxy per scheme $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'proxy' => [ 'http' => 'tcp://192.168.16.1:10', 'https' => 'tcp://192.168.16.1:11', ] ] ]);

Puoi utilizzare la variabile ambiente HTTP_PROXY per configurare un proxy specifico del protocollo "http" e la variabile ambiente HTTPS_PROXY per configurare un proxy specifico "https".

sink

Tipo

resource|string|Psr\Http\Message\StreamInterface

L'opzione sink controlla dove vengono scaricati i dati di risposta di un'operazione.

  • Fornisci un resource come restituito da fopen per scaricare il corpo della risposta in uno stream. PHP

  • Fornisci il percorso di un file su disco come un valore string per scaricare il corpo della risposta su un determinato file su disco.

  • Fornisci un file Psr\Http\Message\StreamInterface per scaricare il corpo della risposta su uno specifico oggetto di PSR flusso.

Nota

Per impostazione predefinita, SDK scarica il corpo della risposta in un flusso PHP temporaneo. Ciò significa che i dati rimangono in memoria fino a quando le dimensioni del corpo non raggiungono 2 MB; dopodiché i dati vengono scritti in un file temporaneo su disco.

synchronous

Tipo

bool

L'synchronousopzione informa il HTTP gestore sottostante che intendi bloccare il risultato.

stream

Tipo

bool

Imposta su true per dire al HTTP gestore sottostante che desideri trasmettere in streaming il corpo della risposta di una risposta dal servizio Web, anziché scaricarla tutta in anticipo. Ad esempio, questa opzione viene utilizzata nella classe stream wrapper di Amazon S3 per garantire lo streaming dei dati.

timeout

Tipo

float

Un float che descrive il timeout della richiesta in secondi. Utilizza 0 per attendere un periodo di tempo indefinito (comportamento predefinito).

use Aws\DynamoDb\DynamoDbClient; // Timeout after 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'timeout' => 5 ] ]);

Verifica

Tipo

bool|string

È possibile personalizzare il comportamento di verifica peer SSL o TLS certificato utilizzando l'opzione. SDK verify http

  • trueImpostare per abilitare la verifica del certificatoSSL/TLSpeer e utilizzare il pacchetto CA predefinito fornito dal sistema operativo.

  • Imposta su false per disabilitare la verifica del certificato peer. (Questa operazione non è sicura!)

  • Imposta su una stringa per fornire il percorso a un bundle di certificazione CA per abilitare la verifica utilizzando un bundle CA personalizzato.

Se non riesci a trovare il pacchetto CA per il tuo sistema e ricevi un errore, fornisci il percorso del pacchetto CA a. SDK Se non hai bisogno di un pacchetto CA specifico, Mozilla fornisce un pacchetto CA di uso comune che puoi scaricare qui (gestito dal manutentore di c). URL Una volta che un pacchetto CA è disponibile su disco, è possibile impostare l'openssl.cafilePHPimpostazione.ini in modo che punti al percorso del file, in modo da omettere l'opzione di richiesta. verify Puoi trovare molti più dettagli sui SSL certificati sul sito web c. URL

use Aws\DynamoDb\DynamoDbClient; // Use a custom CA bundle $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'verify' => '/path/to/my/cert.pem' ] ]); // Disable SSL/TLS verification $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'verify' => false ] ]);

http_handler

Tipo

callable

L'http_handleropzione viene utilizzata per integrarli SDK con altri HTTP client. Un'opzione http_handler è una funzione che accetta un oggetto Psr\Http\Message\RequestInterface e una vasta gamma di opzioni http applicate al comando e restituisce un oggetto GuzzleHttp\Promise\PromiseInterface che viene soddisfatto con un oggetto Psr\Http\Message\ResponseInterface o rifiutato con una vasta gamma dei seguenti dati di eccezione:

  • exception - (\Exception) l'eccezione che è stata riscontrata.

  • response - (Psr\Http\Message\ResponseInterface) la risposta che è stata ricevuta (se presente).

  • connection_error - (bool) imposta su true per segnalare l'errore come un errore di connessione. L'impostazione di questo valore su consente true inoltre SDK di riprovare automaticamente l'operazione, se necessario.

Converte SDK automaticamente l'opzione data http_handler in un'handleropzione normale avvolgendo l'opzione fornita http_handler con un oggetto. Aws\WrappedHttpHandler

Per impostazione predefinita, SDK utilizza Guzzle come gestore. HTTP Puoi fornire un HTTP gestore diverso qui o fornire a un client Guzzle le tue opzioni personalizzate.

Impostazione della versione TLS

Un caso d'uso consiste nell'impostare la TLS versione usata da Guzzle con Curl, supponendo che Curl sia installato nel tuo ambiente. Nota i vincoli di versione di Curl per quale versione di è supportata. TLS Per impostazione predefinita viene utilizzata la versione più recente. Se la TLS versione è impostata in modo esplicito e il server remoto non la supporta, genererà un errore invece di utilizzare una versione precedente. TLS

È possibile determinare la TLS versione utilizzata per una determinata operazione del client impostando l'opzione debug client su true ed esaminando l'output della SSL connessione. Quella linea potrebbe essere simile a SSL connection using TLSv1.2

Esempio di impostazione TLS 1.2 con Guzzle 6:

use Aws\DynamoDb\DynamoDbClient; use Aws\Handler\GuzzleV6\GuzzleHandler; use GuzzleHttp\Client; $handler = new GuzzleHandler( new Client([ 'curl' => [ CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2 ] ]) ); $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http_handler' => $handler ]);
Nota

Questa opzione http_handler sostituisce qualsiasi opzione handler fornita.

profilo

Tipo

string

L'opzione «profile» specifica quale profilo utilizzare quando le credenziali vengono create dal file delle AWS credenziali nella HOME directory (in genere). ~/.aws/credentials Questa impostazione sostituisce la variabile ambiente AWS_PROFILE.

Nota

Quando si specifica l'opzione «profilo», l'"credentials"opzione viene ignorata e le impostazioni relative alle credenziali nel file di AWS configurazione (in genere) vengono ignorate. ~/.aws/config

// Use the "production" profile from your credentials file $ec2 = new Aws\Ec2\Ec2Client([ 'version' => '2014-10-01', 'region' => 'us-west-2', 'profile' => 'production' ]);

Vedi Credenziali per la AWS SDK for PHP versione 3 per ulteriori informazioni sulla configurazione delle credenziali e sul formato di file.ini.

Regione

Tipo

string

Richiesto

true

AWS Regione a cui connettersi. Consulta le AWS regioni e gli endpoint per un elenco delle regioni disponibili.

// Set the Region to the EU (Frankfurt) Region $s3 = new Aws\S3\S3Client([ 'region' => 'eu-central-1', 'version' => '2006-03-01' ]);

retries

Tipo

int|array|Aws\CacheInterface|Aws\Retry\ConfigurationInterface|callable

Predefinita

int(3)

Configura la modalità nuovi tentativi e il numero massimo di tentativi consentiti per un client. Passa 0 per disabilitare i nuovi tentativi.

Le tre modalità di riprova sono:

  • legacy- l'implementazione predefinita dei tentativi precedenti

  • standard- aggiunge un sistema di quote di tentativi per evitare tentativi che difficilmente avranno successo

  • adaptive: si basa sulla modalità standard, aggiungendo un limitatore di velocità lato client. Questa modalità è considerata sperimentale.

La configurazione dei nuovi tentativi consiste nella modalità e nel massimo tentativo da utilizzare per ogni richiesta. La configurazione può essere impostata in un paio di posizioni diverse, nel seguente ordine di precedenza.

Ordine di precedenza

L'ordine di precedenza per la configurazione dei tentativi è il seguente (1 sostituisce 2-3, ecc.):

  1. Opzione di configurazione client

  2. Variabili di ambiente

  3. AWS File di configurazione condiviso

Variabili di ambiente

  • AWS_RETRY_MODE impostato su legacy, standard o adaptive

  • AWS_MAX_ATTEMPTS - impostato su un valore intero per il massimo di tentativi per richiesta

Chiavi file di configurazione condiviso

  • retry_mode impostato su legacy, standard o adaptive

  • max_attempts - impostato su un valore intero per il massimo di tentativi per richiesta

Configurazione del client

L'esempio seguente disabilita i nuovi tentativi per il client Amazon DynamoDB.

// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 0 ]);

L'esempio seguente passa in un numero intero, che per impostazione predefinita sarà la modalità legacy con il numero passato di nuovi tentativi

// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 6 ]);
L'oggetto Aws\Retry\Configuration accetta due parametri, la modalità di nuovi tentativi

e un numero intero per il numero massimo di tentativi per richiesta. Questo esempio passa in un

oggetto Aws\Retry\Configuration per ripetere la configurazione.

use Aws\EndpointDiscovery\Configuration; use Aws\S3\S3Client; $enabled = true; $cache_limit = 1000; $config = new Aws\Retry\Configuration('adaptive', 10); $s3 = new Aws\S3\S3Client([ 'region' => 'us-east-2', 'retries' => $config, ]);

Questo esempio passa in un array per la configurazione dei nuovi tentativi.

use Aws\S3\S3Client; $s3 = new S3Client([ 'region' => 'us-west-2', 'retries' => [ 'mode' => 'standard', 'max_attempts' => 7 ], ]);

In questo esempio viene passata un'istanza di Aws\CacheInterface per memorizzare nella cache i valori restituiti dal provider di configurazione dei nuovi tentativi predefinito.

use Aws\DoctrineCacheAdapter; use Aws\S3\S3Client; use Doctrine\Common\Cache\ApcuCache; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache), ]);

scheme

Tipo

string

Predefinita

string(5) "https"

URIschema da utilizzare per la connessione. SDKUtilizza gli endpoint «https» (cioè usaSSL/TLSconnections) per impostazione predefinita. Puoi tentare di connetterti a un servizio su un endpoint "http" non crittografato impostando scheme su "http".

$s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'scheme' => 'http' ]);

Consulta le AWS Regioni e gli Endpoint per un elenco degli endpoint e per sapere se un servizio supporta lo schema. http

service

Tipo

string

Richiesto

true

Nome del servizio da utilizzare. Questo valore viene fornito di default quando si utilizza un client fornito da SDK (ad esempio,Aws\S3\S3Client). Questa opzione è utile quando si testa un servizio che non è ancora stato pubblicato in SDK ma che è disponibile su disco.

signature_provider

Tipo

callable

Un callable che accetta un nome di versione della firma (ad esempiov4), un nome di servizio e una AWS regione e restituisce un Aws\Signature\SignatureInterface oggetto o NULL se il provider è in grado di creare un firmatario per i parametri specificati. Questo provider viene utilizzato per creare firmatari utilizzati dal client.

Esistono varie funzioni fornite da SDK in the Aws\Signature\SignatureProvider class che possono essere utilizzate per creare provider di firme personalizzati.

signature_version

Tipo

string

Una stringa che rappresenta una versione di firma personalizzata per l'uso con un servizio (ad esempio v4, ecc.). La versione della firma per operazione MAY sostituisce la versione della firma richiesta, se necessario.

Gli esempi seguenti mostrano come configurare un client Amazon S3 per utilizzare la versione 4 della firma:

// Set a preferred signature version $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'signature_version' => 'v4' ]);
Nota

Il signature_provider tuo cliente MUST sarà in grado di creare l'signature_versionopzione che offri. L'impostazione predefinita signature_provider utilizzata da SDK può creare oggetti di firma per le versioni di firma «v4" e «anonime».

ua_append

Tipo

string|string[]

Predefinita

[]

Una stringa o un array di stringhe che vengono aggiunte alla stringa user-agent passata al gestore. HTTP

use_aws_shared_config_files

Tipo

bool|array

Predefinita

bool(true)

Imposta su false per disabilitare il controllo del file di configurazione condiviso in '~/. aws/config’ and ‘~/.aws/credentials'. Ciò sovrascriverà la variabile di FILE ambiente AWS_CONFIG _.

validate

Tipo

bool|array

Predefinita

bool(true)

Imposta su false per disabilitare la convalida del parametro lato client. Puoi notare che la disattivazione della convalida può migliorare leggermente le prestazioni del client, ma la differenza è trascurabile.

// Disable client-side validation $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'eu-west-1', 'validate' => false ]);

Imposta su un array associativo di opzioni di convalida per abilitare vincoli di convalida specifici:

  • required - Convalida che i parametri necessari sono presenti (attiva per impostazione predefinita).

  • min - Convalida la lunghezza minima di un valore (attiva per impostazione predefinita).

  • max - Convalida la lunghezza massima di un valore.

  • pattern - Convalida che il valore corrisponde a un'espressione regolare.

// Validate only that required values are present $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'eu-west-1', 'validate' => ['required' => true] ]);

version

Tipo

string

Richiesto

false

Questa opzione specifica la versione del servizio Web da utilizzare (ad esempio,2006-03-01).

A partire dalla versione 3.277.10 diSDK, l'opzione «versione» non è richiesta. Se non si specifica l'opzione «versione», SDK utilizza la versione più recente del client di servizio.

Due situazioni richiedono un parametro «versione» quando si crea un client di servizio.

  • Si utilizza una versione PHP SDK precedente alla 3.277.10.

  • Si utilizza la versione 3.277.10 o successiva e si desidera utilizzare una versione diversa dalla «più recente» per un client di servizio.

Ad esempio, il frammento seguente utilizza la versione 3.279.7 diSDK, ma non la versione più recente di. Ec2Client

$ec2Client = new \Aws\Ec2\Ec2Client([ 'version' => '2015-10-01', 'region' => 'us-west-2' ]);

Specificando un vincolo di versione si garantisce che il codice non sarà interessato da un'interruzione delle modifiche apportate al servizio.

Un elenco delle API versioni disponibili è disponibile nella pagina della documentazione di ciascun cliente. API Se non riesci a caricare una API versione specifica, potresti dover aggiornare la tua copia diSDK.