Configuration pour la AWS SDK for PHP version 3 - AWS SDK for PHP

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.

Configuration pour la AWS SDK for PHP version 3

Les options du constructeur client peuvent être fournies dans un constructeur client ou fournies à la Aws\Sdkclasse. Les options fournies peuvent varier selon le type de client que vous créez. Ces options de configuration client personnalisées sont décrites dans la documentation sur l’API de chaque client.

Notez que certaines options de configuration vérifient et utilisent les valeurs par défaut en fonction de variables d'environnement ou d'un fichier AWS de configuration. Par défaut, le fichier de configuration en cours de vérification est .aws/config dans votre répertoire personnel, généralement ~/.aws/config. Toutefois, vous pouvez utiliser la variable d'environnement AWS_CONFIG_FILE pour définir l'emplacement de votre fichier de configuration par défaut. Par exemple, cela peut être utile si vous limitez l'accès aux fichiers à certains répertoires avecopen_basedir.

Pour plus d'informations sur l'emplacement et le formatage des credentials fichiers partagés AWSconfig, consultez la section Configuration du Guide de référence AWS des SDK et des outils.

Pour plus de détails sur tous les paramètres de configuration globaux que vous pouvez définir dans les fichiers de AWS configuration ou en tant que variables d'environnement, consultez la section Référence des paramètres de configuration et d'authentification dans le Guide de référence AWS des SDK et des outils.

L'exemple suivant montre comment transmettre des options au constructeur d'un client Amazon S3.

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

Consultez le guide d’utilisation de base pour en savoir plus sur la construction des clients.

api_provider

Type

callable

Fonction PHP de type callable qui accepte un type, un service et un argument de version, et renvoie un tableau de données de configuration correspondantes. Son type peut prendre l'une des valeurs suivantes : api, waiter ou paginator.

Par défaut, le kit SDK utilise une instance de Aws\Api\FileSystemApiProvider qui charge des fichiers API depuis le dossier src/data du kit SDK.

informations d'identification

Type

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

Spécifiez un objet Aws\Credentials\CredentialsInterface pour utiliser une instance d'informations d'identification spécifique. Ce qui suit indique que le fournisseur d'informations d'identification IAM Identity Center doit être utilisé. Ce fournisseur est également connu sous le nom de fournisseur d'informations d'identification SSO.

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

Si vous utilisez un profil nommé, remplacez le nom de votre profil par « default » dans l'exemple précédent. Pour en savoir plus sur la configuration de profils nommés, consultez la section Partage config et credentials fichiers dans le Guide de référence AWS des SDK et des outils.

Si vous ne spécifiez pas de fournisseur d'informations d'identification à utiliser et que vous vous fiez à la chaîne de fournisseurs d'informations d'identification, le message d'erreur résultant de l'échec de l'authentification est généralement générique. Il est généré à partir du dernier fournisseur de la liste des sources dont les informations d'identification sont valides, il se peut qu'il ne s'agisse pas du fournisseur que vous essayez d'utiliser. Lorsque vous spécifiez le fournisseur d'informations d'identification à utiliser, le message d'erreur qui en résulte est plus utile et pertinent car il ne provient que de ce fournisseur. Pour en savoir plus sur la chaîne de sources dont les informations d'identification sont vérifiées, consultez la section Chaîne des fournisseurs d'informations d'identification dans le Guide de référence AWS des SDK et des outils.

Spécifiez false pour utiliser des informations d'identification null et si vous ne souhaitez pas signer les requêtes.

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

Spécifiez une fonction de type callable fournisseur d’informations d’identification pour créer des informations d’identification à l’aide d’une fonction.

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

Spécifiez une instance de Aws\CacheInterface pour mettre en cache les valeurs renvoyées par la chaîne du fournisseur par défaut dans plusieurs processus.

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 ]);

Vous trouverez plus d'informations sur la fourniture d'informations d'identification à un client dans le guide Credentials for the AWS SDK for PHP Version 3.

Note

Les informations d'identification sont chargées et validées lentement lorsqu'elles sont utilisées.

debug

Type

bool|array

Génère des informations de débogage sur chaque transfert. Les informations de débogage contiennent des informations sur chaque changement d'état d'une transaction lors de sa préparation et de son envoi sur le réseau. La sortie de débogage comprend également des informations sur le gestionnaire HTTP spécifique utilisé par un client (par exemple, sortie de débogage cURL).

Définissez cette option sur true pour afficher des informations de débogage lors de l'envoi de requêtes.

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

Vous pouvez également fournir un tableau associatif contenant les clés suivantes.

logfn (callable)

Fonction appelée avec des messages de journaux. La fonction PHP echo est utilisée par défaut.

stream_size (int)

Lorsque la taille d'un flux est supérieure à ce nombre, les données du flux ne sont pas consignées. Définissez cette option sur 0 si vous ne souhaitez pas consigner les données du flux.

scrub_auth (bool)

Réglez sur false pour désactiver le nettoyage des données d'authentification contenues dans les messages enregistrés (cela signifie que l'identifiant et la signature de votre clé d'AWSaccès seront transmis aulogfn).

http (bool)

Définissez cette option sur false pour désactiver la fonction de « débogage (debug) » des gestionnaires HTTP de niveau inférieur (par exemple, sortie cURL verbose).

auth_headers (array)

Définissez un mappage clé-valeur des en-têtes que vous souhaitez remplacer avec la valeur par laquelle vous souhaitez les remplacer. Ces valeurs ne sont pas utilisées, sauf si scrub_auth est défini sur true.

auth_strings (array)

Définissez un mappage clé-valeur des expressions régulières à mapper avec leurs remplacements. Ces valeurs sont utilisées par le nettoyeur de données d'authentification si scrub_auth est défini sur 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();
Note

Cette option produit également les informations du gestionnaire HTTP sous-jacent produites par l'option de http débogage. La sortie de débogage s'avère très utile pour diagnostiquer les problèmes dans le kit AWS SDK for PHP. Veuillez fournir la sortie de débogage d'un échec isolé lorsque vous ouvrez une question concernant le kit SDK.

stats

Type

bool|array

Associe les statistiques de transfert aux erreurs et aux résultats renvoyés par les opérations du kit SDK.

Définissez cette option sur true pour collecter des statistiques de transfert sur les requêtes envoyées.

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

Vous pouvez également fournir un tableau associatif contenant les clés suivantes.

retries (bool)

Définissez cette option sur true pour activer la création de rapports sur les nouvelles tentatives effectuées. Les statistiques sur les nouvelles tentatives sont collectées et renvoyées par défaut.

http (bool)

Définissez sur pour true permettre la collecte de statistiques à partir d'adaptateurs HTTP de niveau inférieur (par exemple, les valeurs renvoyées GuzzleHttpTransferStats). Les gestionnaires HTTP doivent prendre en charge une option __on_transfer_stats pour que cette option fonctionne. Les statistiques HTTP sont renvoyées sous la forme d'un ensemble indexé de tableaux associatifs. Chaque tableau contient les statistiques de transfert renvoyées pour une requête par le gestionnaire HTTP du client. Ce paramètre est désactivé par défaut.

Si une nouvelle tentative a été effectuée pour une demande, toutes les statistiques de transfert sont renvoyées. $result['@metadata']['transferStats']['http'][0] contient alors les statistiques de la première demande, $result['@metadata']['transferStats']['http'][1] contient celles de la deuxième demande, etc.

timer (bool)

Définissez cette option sur true pour activer un minuteur de commande qui indique le temps total passé sur une opération (en secondes). Ce paramètre est désactivé par défaut.

$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'];

point de terminaison

Type

string

URI complet du service web. Cela est nécessaire pour les services, tels que ceux qui utilisent des AWS Elemental MediaConvertpoints de terminaison spécifiques au compte. Pour ces services, demandez ce point de terminaison à l'aide de la describeEndpoints méthode.

Cela n'est nécessaire que lors de la connexion à un point de terminaison personnalisé (par exemple, une version locale d'Amazon S3 ou Amazon DynamoDB Local).

Voici un exemple de connexion à Amazon DynamoDB Local :

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

Consultez les AWSrégions et points de terminaison pour obtenir la liste des AWS régions et points de terminaison disponibles.

endpoint_provider

Type

Aws\EndpointV2\EndpointProviderV2|callable

Une instance optionnelle de EndpointProvider V2 ou PHP appelable qui accepte un hachage d'options, y compris une clé « service » et une clé « région ». Cet élément renvoie NULL ou un hachage de données de point de terminaison, pour lequel la clé « endpoint » est obligatoire.

Voici un exemple de création d'un fournisseur de point de terminaison minimal.

$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

Type

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

La découverte de points de terminaison identifie et se connecte au point de terminaison correct pour une API de service qui prend en charge la découverte de points de terminaison. Pour les services qui prennent en charge mais ne nécessitent pas la découverte de points de terminaison, activez endpoint_discovery lors de la création du client. Si un service ne prend pas en charge la découverte de points de terminaison, cette configuration est ignorée.

Aws\EndpointDiscovery\ConfigurationInterface

Un fournisseur de configuration facultatif qui permet la connexion automatique au point de terminaison approprié d'une API de service pour les opérations que le service spécifie.

L'objet Aws\EndpointDiscovery\Configuration accepte deux options, dont une valeur booléenne, « enabled », qui indique si la découverte de points de terminaison est activée, et un nombre entier « cache_limit », qui indique le nombre maximal de clés dans le cache des points de terminaison.

Pour chaque client créé, transmettez un objet Aws\EndpointDiscovery\Configuration pour utiliser une configuration spécifique pour la découverte de points de terminaison.

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, ]);

Spécifiez une instance de Aws\CacheInterface pour mettre en cache les valeurs renvoyées par la découverte de points de terminaison dans plusieurs processus.

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), ]);

Transmettez un tableau à la découverte de points de terminaison.

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

handler

Type

callable

Gestionnaire qui accepte un objet de commande et un objet de requête, et qui renvoie une promesse (GuzzleHttp\Promise\PromiseInterface) exécutée avec un objet Aws\ResultInterface ou rejetée avec Aws\Exception\AwsException. Un gestionnaire n'accepte pas un gestionnaire suivant, car il s'agit d'un élément terminal qui doit traiter une commande. Si aucun gestionnaire n'est fourni, un gestionnaire Guzzle par défaut est utilisé.

Aws\MockHandler vous permet de renvoyer des résultats fictifs ou de lancer des exceptions de simulation. Vous mettez en file d'attente les résultats ou les exceptions, puis MockHandler vous les retirerez dans l'ordre 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

Type

array

Défini sur un tableau d'options HTTP appliquées aux requêtes et transferts HTTP créés par le kit SDK.

Le kit SDK prend en charge les options de configuration suivantes :

cert

Type

string|array

Spécifier le certificat au format PEM côté client.

  • Définir en tant que chaîne pour le chemin d'accès au fichier de certificat uniquement.

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['cert' => '/path/to/cert.pem'] ]);
  • Définir en tant que tableau contenant le chemin d'accès et mot de passe.

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

connect_timeout

Valeur de type float indiquant le temps d'attente en secondes lors d'une tentative de connexion à un serveur. Spécifiez la valeur 0 pour indiquer une durée indéfinie (comportement par défaut).

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

debug

Type

bool|resource

Indique au gestionnaire HTTP sous-jacent de générer des informations de débogage. Les informations de débogage fournies varient selon les gestionnaires HTTP.

  • Spécifiez true pour écrire la sortie de débogage dans STDOUT.

  • Spécifiez resource, comme renvoyé par fopen, pour écrire la sortie de débogage dans une ressource de flux PHP spécifique.

decode_content

Type

bool

Indique au gestionnaire HTTP sous-jacent de gonfler le corps des réponses compressées. Lorsque cette option est désactivée, les corps des réponses compressées peuvent être gonflés à l'aide de GuzzleHttp\Psr7\InflateStream.

Note

Le décodage du contenu est activé par défaut dans le gestionnaire HTTP par défaut du kit SDK. Pour des raisons de rétrocompatibilité, ce paramétrage ne peut pas être modifié. Si vous stockez des fichiers compressés dans Amazon S3, nous vous recommandons de désactiver le décodage du contenu au niveau du 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' => 'my-bucket', 'Key' => 'massize_gzipped_file.tgz' ]); $compressedBody = $result['Body']; // This content is still gzipped $inflatedBody = new InflateStream($result['Body']); // This is now readable

delay

Type

int

Durée d'attente avant l'envoi de la requête (en millisecondes). Cette option est souvent utilisée pour retarder une nouvelle tentative de requête.

expect

Type

bool|string

Cette option est transmise au gestionnaire HTTP sous-jacent. Par défaut, l'en-tête Expect: 100-Continue est défini lorsque le corps de la demande dépasse 1 Mo. true ou false active ou désactive l'en-tête sur toutes les demandes. Si un nombre entier est utilisé, seules les demandes avec des corps qui dépassent ce paramètre utiliseront l'en-tête. Lorsqu'elle est utilisée en tant que nombre entier, si la taille du corps est inconnue, l'en-tête Expect sera envoyé.

Avertissement

La désactivation de l'en-tête Expect peut empêcher le service de renvoyer l'authentification ou d'autres erreurs. Cette option doit être configurée avec précautions.

progress

Type

callable

Définit une fonction à appeler en cas d'avancement du transfert. La fonction accepte les arguments suivants :

  1. Nombre total d'octets à télécharger estimé.

  2. Nombre d'octets téléchargés jusqu'à présent.

  3. Nombre d'octets à charger estimé.

  4. Nombre d'octets chargés jusqu'à présent.

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' => 'my-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

Type

string|array

Vous pouvez vous connecter à un AWS service via un proxy en utilisant l'proxyoption.

  • Spécifiez une valeur de type chaîne pour vous connecter à un proxy pour tous les types d'URI. La valeur de type chaîne proxy peut contenir un schéma, un nom d'utilisateur et un mot de passe. Par exemple, "http://username:password@192.168.16.1:10".

  • Spécifiez un tableau associatif de paramètres proxy dans lequel la clé correspond au schéma de l'URI et la valeur correspond au proxy de l'URI donné (vous pouvez ainsi accorder différents proxys pour les points de terminaison « http » et « https »).

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', ] ] ]);

Vous pouvez utiliser la variable d'environnement HTTP_PROXY pour configurer un proxy spécifique au protocole « http » et la variable d'environnement HTTPS_PROXY pour configurer un proxy spécifique au protocole « https ».

sink

Type

resource|string|Psr\Http\Message\StreamInterface

L'option sink permet de contrôler l'emplacement dans lequel les données de réponse d'une opération sont téléchargées.

  • Spécifiez resource, comme renvoyé par fopen, pour télécharger le corps de la réponse dans un flux PHP.

  • Spécifiez le chemin d'accès d'un fichier sur disque sous la forme d'une valeur string pour télécharger le corps de la réponse dans ce fichier.

  • Spécifiez Psr\Http\Message\StreamInterface pour télécharger le corps de la réponse dans un objet de flux PSR spécifique.

Note

Le kit SDK télécharge le corps de la réponse dans un flux temporaire PHP par défaut. Ainsi, les données restent en mémoire jusqu'à ce que la taille du corps atteigne 2 Mo, puis elles sont écrites dans un fichier temporaire sur disque.

synchronous

Type

bool

L'option synchronous informe le gestionnaire HTTP sous-jacent que vous souhaitez bloquer le résultat.

stream

Type

bool

Définissez cette option sur true pour indiquer au gestionnaire HTTP sous-jacent que vous souhaitez diffuser le corps d'une réponse depuis le service web, plutôt que de tout télécharger immédiatement. Par exemple, cette option est utilisée dans la classe Streamwrapper Amazon S3 pour garantir la diffusion des données.

timeout

Type

float

Valeur de type float indiquant le délai d'expiration de la requête (en secondes). Spécifiez la valeur 0 pour indiquer une durée indéfinie (comportement par défaut).

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

vérifier

Type

bool|string

L'option verify http vous permet de personnaliser le comportement de la vérification des certificats SSL/TLS pairs du kit SDK.

  • Définissez cette option sur true pour activer la vérification des certificats SSL/TLS pairs et utiliser le bundle d'autorité de certification (CA) par défaut fourni par le système d'exploitation.

  • Définissez cette option sur false pour désactiver la vérification des certificats pairs. (Cette méthode n'est pas sécurisée !)

  • Définissez cette option sur une chaîne pour indiquer le chemin d'accès à un bundle d'autorité de certification (CA) afin d'activer la vérification à l'aide de ce bundle personnalisé.

Si le bundle d'autorité de certification (CA) est introuvable pour votre système et si vous recevez une erreur, indiquez le chemin d'accès à un bundle d'autorité de certification pour le kit SDK. Si vous n’avez pas besoin d’un bundle d’autorité de certification spécifique (CA), Mozilla en propose un couramment utilisé, que vous pouvez télécharger ici (géré par le mainteneur de cURL). Une fois que vous disposez d'un bundle d'autorité de certification (CA) sur un disque, vous pouvez définir le paramètre .ini PHP openssl.cafile de sorte qu'il pointe vers le chemin d'accès du fichier, ce qui vous permet d'ignorer l'option verify pour la requête. Vous trouverez plus de détails sur les certificats SSL sur le site web de cURL.

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

Type

callable

L'option http_handler permet d'intégrer le kit SDK à d'autres clients HTTP. Une option http_handler est une fonction qui accepte un objet Psr\Http\Message\RequestInterface et un ensemble d'options http appliquées à la commande. Elle renvoie un objet GuzzleHttp\Promise\PromiseInterface qui est exécuté avec un objet Psr\Http\Message\ResponseInterface ou rejeté avec un ensemble des données d'exception suivantes :

  • exception - (\Exception) : exception rencontrée.

  • response - (Psr\Http\Message\ResponseInterface) : réponse reçue (le cas échéant).

  • connection_error - (bool) défini sur true pour marquer l'erreur comme une erreur de connexion. Si vous définissez cette valeur sur true, le kit SDK retente automatiquement l'opération, si nécessaire.

Le kit SDK convertit automatiquement l'option http_handler donnée en option handler normale en encapsulant l'option http_handler fournie avec un objet Aws\WrappedHttpHandler.

Par défaut, le kit SDK utilise Guzzle comme gestionnaire HTTP. Vous pouvez fournir un gestionnaire HTTP différent ici, ou fournir à un client Guzzle vos propres options personnalisées.

Définition de la version de TLS

Un cas d'utilisation consiste à définir la version de TLS utilisée par Guzzle avec Curl, en supposant que Curl est installé dans votre environnement. Notez les contraintes de version Curl concernant les versions de TLS prise en charge. Par défaut, c'est la dernière version qui est utilisée. Si la version de TLS est explicitement définie et que le serveur distant ne prend pas en charge cette version, il génère une erreur au lieu d'utiliser une version de TLS antérieure.

Vous pouvez déterminer la version de TLS utilisée pour une opération client donnée en définissant l'option client debug sur true et en examinant la sortie de connexion SSL. Cette ligne peut ressembler à ce qui suit : SSL connection using TLSv1.2

Exemple de définition de TLS 1.2 avec 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 ]);
Note

L'option http_handler prévaut sur toutes les autres options handler fournies.

profile

Type

string

L'option « profile » indique le profil à utiliser lorsque les informations d'identification sont créées à partir du fichier AWS d'informations d'identification de votre répertoire HOME (généralement~/.aws/credentials). Ce paramètre remplace la variable d'environnement AWS_PROFILE.

Note

Lorsque vous spécifiez l'option « profile », celle-ci est ignorée et les "credentials" paramètres relatifs aux informations d'identification dans le fichier de AWS configuration sont (généralement~/.aws/config) ignorés.

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

Voir Informations d'identification pour la AWS SDK for PHP version 3 pour plus d'informations sur la configuration des informations d'identification et le format de fichier .ini.

region

Type

string

Obligatoire

true

AWSRégion à laquelle se connecter. Consultez les AWSrégions et points de terminaison pour obtenir la liste des régions disponibles.

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

nouvelles tentatives

Type

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

Par défaut

int(3)

Configure le mode de nouvelles tentatives et le nombre maximal de tentatives autorisées pour un client. Spécifiez 0 pour désactiver les nouvelles tentatives.

Les trois modes de nouvelle tentative sont les suivants :

  • legacy- l'ancienne implémentation par défaut des nouvelles tentatives

  • standard- ajoute un système de quota de nouvelles tentatives pour empêcher les nouvelles tentatives qui ont peu de chances de réussir

  • adaptive - s'appuie sur le mode standard, en ajoutant un limiteur de débit côté client. Notez que ce mode est considéré comme expérimental.

La configuration des tentatives est composée du mode et du nombre maximal de tentatives à utiliser pour chaque demande. La configuration peut être définie dans plusieurs emplacements différents, dans l'ordre de priorité suivant.

Ordre de priorité

L'ordre de priorité pour la nouvelle configuration est le suivant (1 remplace 2-3, etc.) :

  1. Option de configuration du client

  2. Variables d’environnement

  3. AWSFichier de configuration partagé

Variables d'environnement

  • AWS_RETRY_MODE - défini sur legacy, standard ou adaptive

  • AWS_MAX_ATTEMPTS - défini sur une valeur entière pour le maximum de tentatives par demande

Clés du fichier de configuration partagé

  • retry_mode - défini sur legacy, standard ou adaptive

  • max_attempts - défini sur une valeur entière pour le maximum de tentatives par demande

Configuration du client

L'exemple suivant désactive les nouvelles tentatives pour le 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'exemple suivant passe dans un entier, qui sera par défaut sur le mode legacy avec le nombre de tentatives passé

// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 6 ]);
L'objet Aws\Retry\Configuration accepte deux paramètres, le mode de nouvelles tentatives

et un entier pour le maximum de tentatives par demande. Cet exemple passe dans un

objet Aws\Retry\Configuration pour la configuration des nouvelles tentatives.

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, ]);

Cet exemple passe dans un tableau pour la configuration des nouvelles tentatives.

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

Cet exemple passe une instance de Aws\CacheInterface pour mettre en cache les valeurs renvoyées par le fournisseur de configuration des nouvelles tentatives par défaut.

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

Type

string

Par défaut

string(5) "https"

Schéma d'URI à utiliser lors de la connexion. Le kit SDK utilise des points de terminaison « https » (connexions SSL/TLS) par défaut. Vous pouvez essayer de vous connecter à un service via un point de terminaison « http » non chiffré en définissant scheme sur « http ».

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

Consultez les AWSrégions et les points de terminaison pour obtenir la liste des points de terminaison et savoir si un service prend en charge le http schéma.

web

Type

string

Obligatoire

true

Nom du service à utiliser. Cette valeur est renseignée par défaut lorsque vous utilisez un client fourni par le kit SDK (Aws\S3\S3Client). Cette option s'avère utile lorsque vous testez un service qui n'a pas encore été publié dans le kit SDK, mais dont vous disposez sur un disque.

signature_provider

Type

callable

Un appelable qui accepte un nom de version de signature (par exemple,v4), un nom de service et une AWS région et qui renvoie un Aws\Signature\SignatureInterface objet ou NULL si le fournisseur est en mesure de créer un signataire pour les paramètres donnés. Ce fournisseur permet de créer des utilisateurs utilisés par le client.

Le kit SDK propose plusieurs fonctions dans la classe Aws\Signature\SignatureProvider qui permettent de créer des fournisseurs de signatures personnalisés.

signature_version

Type

string

Chaîne représentant une version de signature personnalisée à utiliser avec un service (par exemple, v4, etc.). Une version de signature par opération PEUT remplacer cette version de signature demandée, si nécessaire.

Les exemples suivants montrent comment configurer un client Amazon S3 pour utiliser la version 4 de signature :

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

L'option signature_provider utilisée par votre client DOIT pouvoir créer l'option signature_version que vous spécifiez. L'option signature_provider utilisée par défaut par le kit SDK peut créer des objets de signature pour les versions de signature « anonymous » et « v4 ».

ua_append

Type

string|string[]

Par défaut

[]

Chaîne ou tableau de chaînes ajoutées à la chaîne de l'agent utilisateur transmise au gestionnaire HTTP.

utilisez_aws_shared_config_files

Type

bool|array

Par défaut

bool(true)

Définissez cette valeur sur false pour désactiver la vérification du fichier de configuration partagé dans '~/.aws/config' et '~/.aws/credentials'. Cela remplacera la variable d'environnement AWS_CONFIG_FILE.

valider

Type

bool|array

Par défaut

bool(true)

Définissez cette option sur false pour désactiver la validation des paramètres côté client. Vous pouvez constater une légère amélioration au niveau des performances du client lorsque la validation est désactivée, mais la différence est négligeable.

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

Définissez cette option sur un tableau associatif d'options de validation pour activer des contraintes de validation spécifiques :

  • required - Vérifie que les paramètres obligatoires sont présents (activé par défaut).

  • min - Vérifie la longueur minimale d'une valeur (activé par défaut).

  • max - Vérifie la longueur maximale d'une valeur.

  • pattern - Vérifie que la valeur correspond à une expression régulière.

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

version

Type

string

Obligatoire

false

Cette option indique la version du service Web à utiliser (par exemple,2006-03-01).

À partir de la version 3.277.10 du SDK, l'option « version » n'est pas requise. Si vous ne spécifiez pas l'option « version », le SDK utilise la dernière version du client de service.

Deux situations nécessitent un paramètre « version » lorsque vous créez un client de service.

  • Vous utilisez une version du SDK PHP antérieure à la version 3.277.10.

  • Vous utilisez la version 3.277.10 ou ultérieure et souhaitez utiliser une version autre que la « dernière » pour un client de service.

Par exemple, l'extrait de code suivant utilise la version 3.279.7 du SDK, mais pas la dernière version du. Ec2Client

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

La spécification d'une contrainte de version vous permet de vous assurer que les modifications avec rupture apportées au service n'affecteront pas votre code.

Vous pouvez consulter la liste des versions d'API disponibles sur la page de documentation de l'API de chaque client. Si vous ne parvenez pas à charger une version d'API spécifique, il se peut que vous deviez mettre à jour votre copie du kit SDK.