Configuración para la AWS SDK for PHP versión 3 - AWS SDK for PHP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración para la AWS SDK for PHP versión 3

Las opciones del constructor de clientes se pueden proporcionar en un constructor de clientes o suministrar a la clase Aws\Sdk. La matriz de opciones proporcionada a un tipo de cliente específico puede variar en función del cliente que esté creando. Estas opciones de configuración de cliente personalizadas se describen en la APIdocumentación de cada cliente.

Tenga en cuenta que algunas opciones de configuración comprobarán y utilizarán los valores predeterminados en función de las variables de entorno o de un archivo AWS de configuración. De forma predeterminada, el archivo de configuración que se está comprobando estará .aws/config en su directorio principal, normalmente ~/.aws/config. Sin embargo, puede usar la variable de entorno AWS_CONFIG_FILE para establecer cuál es la ubicación predeterminada del archivo de configuración. Por ejemplo, esto puede ser útil si está restringiendo el acceso a archivos a ciertos directorios con open_basedir.

Para obtener más información sobre la ubicación y el formato de los credentials archivos AWS config y archivos compartidos, consulte la configuración en la Guía de referencia de herramientas AWS SDKs y herramientas.

Para obtener más información sobre todos los ajustes de configuración globales que puede establecer en los archivos de AWS configuración o como variables de entorno, consulte la referencia sobre los ajustes de configuración y autenticación en la Guía de referencia de herramientas AWS SDKs y herramientas.

En el siguiente ejemplo se muestra cómo transferir opciones a un constructor de clientes de Amazon S3.

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

Consulte la guía de uso básico para obtener más información sobre cómo crear clientes.

api_provider

Tipo

callable

Un PHP invocable que acepta un argumento de tipo, servicio y versión, y devuelve una matriz con los datos de configuración correspondientes. El valor del tipo puede ser: api, waiter o paginator.

De forma predeterminada, SDK utiliza una instancia Aws\Api\FileSystemApiProvider que carga API archivos de la src/data carpeta delSDK.

credenciales

Tipo

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

Transfiera un objeto Aws\Credentials\CredentialsInterface para utilizar una instancia de credenciales específicas. A continuación se especifica que se debe utilizar el proveedor de credenciales de IAM Identity Center. Este proveedor también se conoce como proveedor de SSO credenciales.

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

Si utiliza un perfil con nombre, sustituya el nombre de su perfil por “default” en el ejemplo anterior. Para obtener más información sobre cómo configurar perfiles con nombre asignado, consulte credentialsArchivos config y compartidos en la AWS SDKsGuía de referencia de Land Tools.

Si no especifica el proveedor de credenciales que va a utilizar y se basa en la cadena de proveedores de credenciales, el mensaje de error que se produce por una autenticación fallida suele ser genérico. Se genera a partir del último proveedor de la lista de fuentes que se están comprobando para comprobar si las credenciales son válidas, y es posible que no sea el proveedor que está intentando utilizar. Al especificar qué proveedor de credenciales usar, cualquier mensaje de error resultante es más útil y relevante, ya que proviene únicamente de ese proveedor. Para obtener más información sobre la cadena de fuentes a las que se comprueban las credenciales, consulte la cadena de proveedores de credenciales en la Guía de referencia de herramientas AWS SDKs y herramientas.

Transfiera false para utilizar credenciales nulas y no firmar solicitudes.

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

Transfiera una función invocable de proveedor de credenciales para crear las credenciales utilizando una función.

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

Transfiera las credenciales almacenadas en caché a una instancia de Aws\CacheInterface para almacenar en caché los valores devueltos por la cadena de proveedor predeterminada en varios procesos.

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

Encontrará más información sobre cómo proporcionar credenciales a un cliente en la guía Credenciales para la AWS SDK for PHP versión 3.

nota

Las credenciales se cargan y validan lentamente cuando están en uso.

depuración

Tipo

bool|array

Emite información de depuración acerca de cada transferencia. La información de depuración contiene información sobre cada cambio de estado de una transacción, ya que se prepara y se envía a través de la red. En el resultado de la depuración también se incluye información sobre el HTTP controlador específico que utiliza un cliente (por ejemplo, el resultado de la depuración cURL).

Establezca este parámetro en true para mostrar información de depuración al enviar solicitudes.

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

De forma alternativa, puede proporcionar una matriz asociativa con las siguientes claves.

logfn (invocable)

Es una función que se invoca con los mensajes de registro. De forma predeterminada, se usa PHP la echo función s.

stream_size (entero)

Cuando el tamaño de un flujo es superior a este número, los datos del flujo no se registran. Establezca el valor en 0 para no registrar datos de flujo.

scrub_auth (bool)

falseConfigúrelo en para deshabilitar la eliminación de los datos de autenticación de los mensajes registrados (lo que significa que su ID de clave de AWS acceso y su firma se transferirán a). logfn

http (bool)

falseConfigúrelo para deshabilitar la función de «depuración» de los HTTP controladores de nivel inferior (por ejemplo, la salida c detallada). URL

auth_headers (array)

Establezca este parámetro en un mapeo de clave-valor de encabezados que desea sustituir mapeados al valor por el que los desea sustituir. Estos valores no se utilizan a menos que scrub_auth se haya establecido en true.

auth_strings (array)

Establezca este parámetro en un mapeo de clave-valor de expresiones regulares para mapearlos a sus reemplazos. El cepillo de datos de autenticación utiliza estos valores si scrub_auth se establece en 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

Esta opción también muestra la información del HTTP controlador subyacente producida por la opción de depuración. http La salida de depuración es extremadamente útil para diagnosticar problemas en AWS SDK for PHP. Proporcione el resultado de la depuración para un caso de error aislado al abrir problemas en el. SDK

stats

Tipo

bool|array

Vincula las estadísticas de transferencia a los errores y resultados devueltos por SDK las operaciones.

Establezca este parámetro en true para recopilar las estadísticas de transferencia de las solicitudes enviadas.

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

De forma alternativa, puede proporcionar una matriz asociativa con las siguientes claves.

retries (bool)

Establezca este parámetro en true para habilitar los informes sobre los reintentos. Las estadísticas de reintento se recopilan de forma predeterminada y se devuelven.

http (bool)

trueConfigúrelo para permitir la recopilación de estadísticas de los HTTP adaptadores de nivel inferior (por ejemplo, los valores devueltos GuzzleHttpTransferStats). HTTPlos controladores deben admitir la opción __on_transfer_stats para que esto surta efecto. HTTPlas estadísticas se devuelven como una matriz indexada de matrices asociativas; cada matriz asociativa contiene las estadísticas de transferencia devueltas por una solicitud del controlador del cliente. HTTP Está deshabilitado de forma predeterminada.

Si se ha reintentado una solicitud, se devolverán las estadísticas de transferencia de cada solicitud. $result['@metadata']['transferStats']['http'][0] incluirá las estadísticas de la primera solicitud, $result['@metadata']['transferStats']['http'][1], las estadísticas de la segunda solicitud y así sucesivamente.

timer (bool)

Establezca este parámetro en true para habilitar un temporizador de comandos que informa sobre el tiempo de reloj total que ha necesitado una operación para ejecutarse en segundos. Está deshabilitado de forma predeterminada.

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

punto de conexión

Tipo

string

El servicio web completoURI. Es necesario para los servicios como AWS Elemental MediaConvert, que utilizan puntos de conexión específicos de la cuenta. Para estos servicios, solicite este punto de conexión mediante el método describeEndpoints.

Esto solo es necesario cuando se conecta a un punto de conexión personalizado (por ejemplo, una versión local de Amazon S3 o Amazon DynamoDB Local).

A continuación se muestra un ejemplo de la conexión a Amazon DynamoDB Local:

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

Consulte las AWS regiones y los puntos de enlace para obtener una lista de AWS las regiones y puntos de enlace disponibles.

endpoint_provider

Tipo

Aws\EndpointV2\EndpointProviderV2|callable

Una instancia opcional de EndpointProvider V2 o PHP invocable que acepta un conjunto de opciones, incluidas las claves de «servicio» y «región». Devuelve NULL o un hash de datos de punto de enlace, de los cuales se requiere la clave "endpoint".

A continuación se muestra un ejemplo de cómo crear un proveedor de punto de enlace mínimo.

$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

La detección de puntos finales identifica y se conecta al punto final correcto para un servicio API que admite la detección de puntos finales. En el caso de los servicios que admiten, pero no requieren la detección de puntos de enlace, habilite endpoint_discovery durante la creación del cliente. Si un servicio no admite la detección de puntos de enlace, esta configuración no se tiene en cuenta.

Aws\EndpointDiscovery\ConfigurationInterface

Un proveedor de configuración opcional que permite la conexión automática al punto final apropiado de un servicio API para las operaciones que el servicio especifique.

El objeto Aws\EndpointDiscovery\Configuration acepta dos opciones: un valor booleano, "enabled", que indica si la detección de puntos de enlace está habilitada y un número entero, "cache_limit", que indica el número máximo de claves en la caché de puntos de enlace.

Para cada cliente creado, pase un objeto Aws\EndpointDiscovery\Configuration para utilizar una configuración específica para la detección de puntos de enlace.

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

Pase una instancia de Aws\CacheInterface para almacenar en caché los valores devueltos por la detección de puntos de enlace en varios procesos.

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

Pase una matriz a la detección de puntos de enlace.

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

handler

Tipo

callable

Es un controlador que acepta un objeto de comando y objeto de solicitud, y que devuelve una promesa (GuzzleHttp\Promise\PromiseInterface) que se cumple con un objeto Aws\ResultInterface o se rechaza con una Aws\Exception\AwsException. Un controlador no acepta un siguiente controlador pues es terminal y se espera que lleve a cabo un comando. Si no se proporciona ningún controlador, se utiliza un controlador Guzzle predeterminado.

Puede utilizar el parámetro Aws\MockHandler para devolver los resultados simulados o lanzar excepciones simuladas. Si pones en cola los resultados o las excepciones, ellos los MockHandler eliminarán de la cola en orden. 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

Establece una serie de HTTP opciones que se aplican a las HTTP solicitudes y transferencias creadas por. SDK

SDKAdmite las siguientes opciones de configuración:

cert

Tipo

string|array

Especifique el certificado PEM formateado del lado del cliente.

  • Establecer como una cadena de texto para la ruta de acceso solo al archivo del certificado.

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['cert' => '/path/to/cert.pem'] ]);
  • Estableer como una matriz que contiene la ruta y la contraseña.

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

connect_timeout

Es un valor flotante que describe el número de segundos que se debe esperar al intentar conectarse a un servidor. Use 0 para esperar de forma indefinida (es el comportamiento por defecto).

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

depuración

Tipo

bool|resource

Indica al HTTP controlador subyacente que genere información de depuración. La información de depuración proporcionada por los diferentes HTTP controladores puede variar.

  • Pase true para escribir el resultado de la depuración. STDOUT

  • Pase un resource tal como lo devolvió fopen para escribir el resultado de la depuración en un recurso de PHP flujo específico.

decode_content

Tipo

bool

Indica al HTTP controlador subyacente que infle el conjunto de respuestas comprimidas. Si no está habilitado, los cuerpos de respuestas comprimidos pueden inflarse con un GuzzleHttp\Psr7\InflateStream.

nota

La decodificación de contenido está habilitada de forma predeterminada en el controlador SDK predeterminado. HTTP Por motivos de compatibilidad con versiones anteriores, este valor predeterminado no se puede cambiar. Si almacena archivos comprimidos en Amazon S3, le recomendamos que deshabilite contenido descodificando en el nivel de cliente de 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

Es el número de milisegundos de retraso antes de enviar la solicitud. Se utiliza a menudo para retrasar antes de volver a realizar una solicitud.

expect

Tipo

bool|string

Esta opción se transfiere al HTTP controlador subyacente. De forma predeterminada, se establece el encabezado "Expect: 100-Continue" cuando el cuerpo de la solicitud es mayor que 1 MB. true o false activa o desactiva el encabezado en todas las solicitudes. Si se utiliza un número entero, utilizarán el encabezado únicamente las solicitudes cuyo cuerpo supere este valor. Cuando se utiliza un número entero, si el tamaño del cuerpo es desconocido, se enviará el encabezado Expect.

aviso

Si se deshabilita el encabezado Expect, es posible que el servicio no sea capaz de devolver errores de autenticación o de otro tipo. Esta opción debe configurarse con precaución.

avance

Tipo

callable

Define la función a invocar cuando se realiza el progreso de la transferencia. La función acepta los argumentos siguientes:

  1. El número total de bytes previsto que se va a descargar.

  2. El número de bytes descargado hasta el momento.

  3. El número de bytes previsto que se va a cargar.

  4. El número de bytes cargado hasta el momento.

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

Puede conectarse a un AWS servicio a través de un proxy mediante la proxy opción.

  • Proporcione un valor de cadena para conectarse a un proxy para todos los tipos deURIs. El valor de cadena de proxy puede contener un sistema, nombre de usuario y contraseña. Por ejemplo, "http://username:password@192.168.16.1:10".

  • Proporcione una matriz asociativa de configuraciones de proxy en la que la clave sea el esquema de y el valor sea el proxy de la configuración dada URI (es decir, puede proporcionar diferentes proxies para los puntos finales «http» y «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', ] ] ]);

Puede utilizar la variable de entorno HTTP_PROXY para configurar un proxy específico del protocolo "http" y la variable de entorno HTTPS_PROXY para configurar un proxy específico de "https".

sink

Tipo

resource|string|Psr\Http\Message\StreamInterface

La opción sink controla el lugar donde se descargan los datos de respuesta de una operación.

  • Introduce un resource tal como lo devuelve fopen para descargar el cuerpo de la respuesta a una transmisión. PHP

  • Proporcione la ruta a un archivo en el disco como valor string para descargar el cuerpo de la respuesta en un archivo específico en el disco.

  • Proporcione un Psr\Http\Message\StreamInterface para descargar el cuerpo de la respuesta a un objeto de PSR flujo específico.

nota

SDKDescarga el cuerpo de la respuesta en un flujo PHP temporal de forma predeterminada. Esto significa que los datos se guardan en la memoria hasta que el tamaño del cuerpo alcanza 2 MB, momento en el que los datos se escriben en un archivo temporal en el disco.

synchronous

Tipo

bool

La synchronous opción informa al HTTP controlador subyacente de que tiene la intención de bloquear el resultado.

secuencia

Tipo

bool

Configúrela true para indicar al HTTP controlador subyacente que desea transmitir el cuerpo de la respuesta de una respuesta del servicio web, en lugar de descargarla toda por adelantado. Por ejemplo, esta opción se utiliza en la clase del encapsulador de flujo de Amazon S3 para garantizar que se transmiten los datos.

timeout

Tipo

float

Es un valor flotante que describe el tiempo de espera de la solicitud en segundos. Use 0 para esperar de forma indefinida (es el comportamiento por defecto).

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

verificar

Tipo

bool|string

Puede personalizar el comportamiento de SSL verificación entre pares o TLS certificados SDK mediante la verify http opción.

  • trueConfigúrelo SSL para habilitar la verificación de certificados por TLS pares y utilice el paquete de CA predeterminado que proporciona el sistema operativo.

  • Establezca este parámetro en false para deshabilitar la verificación del certificado homólogo. (¡No es seguro!)

  • Establezca este parámetro en una cadena para proporcionar la ruta a un paquete de certificados de CA para habilitar la verificación utilizando un paquete de CA personalizado.

Si no encuentra el paquete de CA para su sistema y recibe un error, indique la ruta del paquete de CA alSDK. Si no necesitas un paquete de CA específico, Mozilla proporciona un paquete de CA de uso común que puedes descargar aquí (el encargado del mantenimiento de cURL). Una vez que tenga un paquete de CA disponible en el disco, puede configurar la openssl.cafile PHP configuración.ini para que apunte a la ruta del archivo, lo que le permitirá omitir la opción de solicitud. verify Puede encontrar mucha más información sobre SSL los certificados en el sitio web de 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

La http_handler opción se utiliza para integrarla SDK con otros HTTP clientes. Una opción http_handler es una función que acepta un objeto Psr\Http\Message\RequestInterface y una matriz de opciones http que se aplica al comando, y que devuelve un objeto GuzzleHttp\Promise\PromiseInterface que se ha completado con un objeto Psr\Http\Message\ResponseInterface o rechazado con una matriz con los siguientes datos de excepción:

  • exception: (\Exception) es la excepción que se ha encontrado.

  • response: (Psr\Http\Message\ResponseInterface) es la respuesta que se ha recibido (si es que se ha recibido alguna).

  • connection_error: (bool) se establece en true para marcar el error como error de conexión. Si se establece este valor en, true también se puede volver SDK a intentar la operación automáticamente, si es necesario.

Convierte SDK automáticamente lo dado http_handler en una handler opción normal al envolver lo proporcionado http_handler con un Aws\WrappedHttpHandler objeto.

De forma predeterminada, SDK usa Guzzle como su HTTP controlador. Puedes proporcionar un HTTP controlador diferente aquí o proporcionar a un cliente de Guzzle tus propias opciones definidas personalizadas.

Configuración de la versión TLS

Un caso de uso es configurar la TLS versión utilizada por Guzzle con Curl, suponiendo que Curl esté instalado en tu entorno. Ten en cuenta las restricciones de versión de Curl para determinar qué versión de es compatible. TLS Por defecto, se utiliza la última versión. Si la TLS versión está configurada de forma explícita y el servidor remoto no es compatible con esta versión, se producirá un error en lugar de utilizar una TLS versión anterior.

Puede determinar la TLS versión que se utiliza para una operación de cliente determinada configurando la opción de debug cliente en true y examinando el resultado de la SSL conexión. Esa línea podría ser similar a esto: SSL connection using TLSv1.2

Ejemplo de configuración 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

La opción handler sustituye a cualquier opción http_handler proporcionada.

profile

Tipo

string

La opción «perfil» especifica qué perfil usar cuando las credenciales se crean a partir del archivo de AWS credenciales de su HOME directorio (normalmente~/.aws/credentials). Este valor sustituye a la variable de entorno AWS_PROFILE.

nota

Al especificar la opción «perfil», esta "credentials" opción se ignora y, por lo general~/.aws/config, se ignoran los ajustes relacionados con las credenciales del archivo de AWS configuración.

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

Consulte Credenciales de la AWS SDK for PHP versión 3 para obtener más información sobre la configuración de las credenciales y el formato de archivo.ini.

región

Tipo

string

Obligatoria

true

AWS Región a la que conectarse. Para obtener una lista de las regiones disponibles, consulte Regiones y puntos de conexión de AWS.

// 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

Predeterminado

int(3)

Configura el modo de reintento y el número máximo de reintentos permitidos para un cliente. Transfiera 0 para deshabilitar los reintentos.

Los tres modos de reintento son:

  • legacy: la implementación de reintentos heredada predeterminada

  • standard: añade un sistema de cuotas de reintentos para evitar que los reintentos tengan pocas probabilidades de éxito

  • adaptive: se basa en el modo estándar, añadiendo un limitador de velocidad del lado del cliente. Tenga en cuenta que este modo se considera experimental.

La configuración para reintentos consiste en el modo y los intentos máximos que se van a utilizar para cada solicitud. La configuración se puede establecer en un par de ubicaciones diferentes, en el siguiente orden de prioridad.

Orden de prioridad

El orden de prioridad para la configuración de reintento es el siguiente (1 anula 2-3, etc.):

  1. Opción de configuración de cliente

  2. Variables de entorno

  3. AWS Archivo de configuración compartido

Variables de entorno

  • AWS_RETRY_MODE: establecido en legacy, standard o adaptive.

  • AWS_MAX_ATTEMPTS: establecido en un valor entero para el máximo de intentos por solicitud

Claves de archivos de configuración compartida

  • retry_mode: establecido en legacy, standard o adaptive.

  • max_attempts: establecido en un valor entero para el máximo de intentos por solicitud

Configuración de cliente

El siguiente ejemplo deshabilita los reintentos para el cliente de Amazon DynamoDB.

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

El siguiente ejemplo transfiere un número entero, que pasará de forma predeterminada al modo legacy con el número de reintentos transferidos

// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 6 ]);
El objeto Aws\Retry\Configuration acepta dos parámetros, el modo de reintento

y un número entero para el máximo de intentos por solicitud. En este ejemplo se transfiere un

objeto Aws\Retry\Configuration para la configuración de reintento.

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

En este ejemplo se transfiere una matriz para la configuración de reintento.

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

En este ejemplo se transfiere una instancia de Aws\CacheInterface para almacenar en caché los valores devueltos por el proveedor de configuración de reintento predeterminado.

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

Predeterminado

string(5) "https"

URIesquema que se debe usar al conectarse. SDKUtiliza puntos finales «https» (es decir, usa TLS conexionesSSL/) de forma predeterminada. Puede intentar conectarse a un servicio a través de un punto de enlace "http" sin cifrar configurando scheme en "http".

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

Consulte Regiones y puntos de conexión de AWS para obtener una lista de los puntos de conexión y saber si un servicio es compatible con el esquema http.

servicio

Tipo

string

Obligatoria

true

Es el nombre del servicio que se debe utilizar. Este valor se proporciona de forma predeterminada cuando se utiliza un cliente proporcionado por SDK (es decir,Aws\S3\S3Client). Esta opción resulta útil cuando se prueba un servicio que aún no se ha publicado en el discoSDK, pero que está disponible en el disco.

signature_provider

Tipo

callable

Un invocable que acepta un nombre de versión de firma (por ejemplo,v4), un nombre de servicio y una AWS región, y devuelve un Aws\Signature\SignatureInterface objeto o NULL si el proveedor puede crear un firmante para los parámetros dados. Este proveedor se utiliza para crear los signatarios que utiliza el cliente.

La SDK Aws\Signature\SignatureProvider clase proporciona varias funciones que se pueden utilizar para crear proveedores de firmas personalizados.

signature_version

Tipo

string

Es una cadena que representa una versión de firma personalizada para utilizarla con un servicio (por ejemplo, v4, etc.). La versión de firma por operación MAY anula esta versión de firma solicitada, si es necesario.

Los siguientes ejemplos muestran cómo configurar un cliente de Amazon S3 para utilizar la versión 4 de la firma 4:

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

La signature_provider utilizada por su cliente MUST podrá crear la signature_version opción que usted proporcione. De forma predeterminada, signature_provider se SDK pueden crear objetos de firma para las versiones de firma «v4» y «anónima».

ua_append

Tipo

string|string[]

Predeterminado

[]

Cadena o matriz de cadenas que se añaden a la cadena del agente de usuario que se pasa al HTTP controlador.

use_aws_shared_config_files

Tipo

bool|array

Predeterminado

bool(true)

Establézcalo en false para deshabilitar la comprobación del archivo de configuración compartido en "~/.aws/config" y "~/.aws/credentials". Esto anulará la variable de entorno AWS_CONFIG _FILE.

validar

Tipo

bool|array

Predeterminado

bool(true)

Establezca este parámetro como false para deshabilitar la validación de parámetros del lado del cliente. Es posible que si desactiva la validación mejore ligeramente el rendimiento del cliente, pero la diferencia es insignificante.

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

Establezca este parámetro como matriz asociativa de opciones de validación para habilitar restricciones de validación específicas:

  • required: compruebe que los parámetros obligatorios están presentes (activos de forma predeterminada).

  • min: valide la longitud mínima de un valor (activada de forma predeterminada).

  • max: valide la longitud máxima de un valor.

  • pattern: valide que el valor coincide con una expresión regular.

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

versión

Tipo

string

Obligatoria

false

Esta opción especifica la versión del servicio web a utilizar (por ejemplo, 2006-03-01).

A partir de la versión 3.277.10 deSDK, la opción «versión» no es necesaria. Si no especificas la opción «versión», se SDK utilizará la última versión del cliente del servicio.

El parámetro "version" es necesario al crear un cliente de servicio en dos casos.

  • Utiliza una versión PHP SDK anterior a la 3.277.10.

  • Utiliza la versión 3.277.10 o una versión posterior y quiere utilizar otra versión del cliente de servicio que no es la más reciente.

Por ejemplo, en el siguiente fragmento se utiliza la versión 3.279.7 deSDK, pero no la versión más reciente de. Ec2Client

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

Especificar una restricción de versión garantiza que el código no se vea afectado por un cambio importante en el servicio.

Puede encontrar una lista de API las versiones disponibles en la página de documentación de cada cliente. API Si no puede cargar una API versión específica, es posible que deba actualizar su copia deSDK.