Configuración deAWS SDK for PHPversió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 deAWS SDK for PHPversión 3

En esta guía se describen las opciones del constructor de clientes. Estas opciones 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 documentación de la API de cada cliente.

Tenga en cuenta que algunas opciones de configuración comprobarán y utilizarán valores predeterminados basados en variables de entorno o unAWSarchivo 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. Esto puede ser especialmente útil si está restringiendo el acceso a archivos a ciertos directorios con open_basedir y similares.

El siguiente ejemplo 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

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

De forma predeterminada, el SDK usa una instancia de Aws\Api\FileSystemApiProvider que carga archivos API desde la carpeta src/data del SDK.

credenciales

Tipo

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

Transfiera un objeto Aws\Credentials\CredentialsInterface para utilizar una instancia de credenciales específicas.

$credentials = new Aws\Credentials\Credentials('key', 'secret'); $s3 = new Aws\S3\S3Client([ 'version' => 'latest', 'region' => 'us-west-2', 'credentials' => $credentials ]);

Si no proporciona una opción credentials, el SDK intentará cargar las credenciales desde su entorno en el orden que se indica a continuación:

  1. Cargar las credenciales de las variables de entorno.

  2. Cargar las credenciales desde un archivo.ini de credenciales.

  3. Cargar las credenciales desde un rol de IAM.

Transfiera false para utilizar credenciales nulas y no firmar solicitudes.

$s3 = new Aws\S3\S3Client([ 'version' => 'latest', '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([ 'version' => 'latest', '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\DoctrineCacheAdapter; use Doctrine\Common\Cache\ApcuCache; $cache = new DoctrineCacheAdapter(new ApcuCache); $provider = CredentialProvider::defaultProvider(); $cachedProvider = CredentialProvider::cache($provider, $cache); $s3 = new Aws\S3\S3Client([ 'version' => 'latest', 'region' => 'us-west-2', 'credentials' => $cachedProvider ]);

Puede encontrar más información acerca de cómo proporcionar credenciales a un cliente en elCredenciales para elAWS SDK for PHPversión 3guía.

nota

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

debug

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 controlador HTTP específico que utiliza un cliente (por ejemplo, depurar el resultado de cURL).

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

$s3 = new Aws\S3\S3Client([ 'version' => 'latest', '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 utiliza la función echo de PHP.

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)

Establezca enfalsepara deshabilitar la limpieza de los datos de autenticación de los mensajes registrados (es decir, suAWSel ID y la firma de la clave de acceso se pasarán a lalogfn).

http (bool)

Establezca este parámetro en false para deshabilitar la función de "depuración" de los controladores HTTP de nivel inferior (por ejemplo, el resultado de cURL detallado).

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([ 'version' => 'latest', '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 genera la información del controlador HTTP subyacente producida por elhttpopción de depuración. La salida de depuración es extremadamente útil para diagnosticar problemas en AWS SDK for PHP. Proporcione la salida de depuración para un caso de error aislado al abrir problemas en el SDK.

stats

Tipo

bool|array

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

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

$s3 = new Aws\S3\S3Client([ 'version' => 'latest', '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)

Establezca este parámetro en true para habilitar la recopilación de estadísticas desde adaptadores de HTTP de nivel inferior (por ejemplo, valores devueltos en GuzzleHttpTransferStats). Los controladores HTTP deben admitir la opción __on_transfer_stats para que surta efecto. Las estadísticas HTTP se devuelven como una matriz indexada de matrices asociativas; cada matriz asociativa contiene las estadísticas de transferencia devueltas para una solicitud por el controlador HTTP del cliente. 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([ 'version' => 'latest', '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

Es el URI completo del servicio web. Es necesario para los servicios como MediaConvert que utilizan puntos de enlace específicos de la cuenta. Para estos servicios, solicite este punto de enlace utilizando eldescribeEndpointsmétodo de.

Esto solo es necesario cuando se conecta a un punto de enlace personalizado (por ejemplo, una versión local de Amazon S3 oAmazon 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' ]);

Consultee elAWSRegiones y puntos de enlace depara ver la lista de disponiblesAWSRegiones y puntos de enlace.

endpoint_provider

Tipo

callable

Es una función invocable de PHP opcional que acepta un hash de opciones, incluidas una clave "service" y "region". 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 de enlace identifica y se conecta al punto de enlace correcto para una API de servicio que admita la detección de puntos de enlace. 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

Es un proveedor de configuración opcional que permite la conexión automática al punto de enlace adecuado de una API de servicio para las operaciones que especifique el servicio.

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([ 'version' => 'latest', '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([ 'version' => 'latest', '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([ 'version' => 'latest', '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. El usuario debe poner los resultados o las excepciones a la cola, y el MockHandler los saca de la cola siguiendo el 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-west-2', 'version' => 'latest', '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

Establezca este parámetro en una matriz de opciones HTTP que se aplica a las solicitudes y transferencias HTTP creadas por el SDK.

El SDK es compatible con las siguientes opciones de configuración:

cert

Tipo

string|array

Especifique el certificado de cliente con formato PEM.

  • 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', 'version' => 'latest', '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', 'version' => 'latest', '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', 'version' => 'latest', 'http' => [ 'connect_timeout' => 5 ] ]);

debug

Tipo

bool|resource

Indica al controlador HTTP subyacente que emita información de depuración. La información de depuración que proporcionan los diferentes controladores HTTP variará.

  • Transfiera true para escribir la salida de depuración en STDOUT.

  • Transfiera un resource tal como lo devuelve fopen para escribir la salida de depuración en un recurso de flujo de PHP específico.

decode_content

Tipo

bool

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

nota

La descodificación de contenido está habilitada de forma predeterminada en el controlador HTTP predeterminado del SDK. 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', 'version' => 'latest', '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

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 pasa directamente al controlador HTTP subyacente. De forma predeterminada, espera: El encabezado 100-Continue se establece cuando el cuerpo de la solicitud es mayor que 1 MB.trueofalsehabilita o deshabilita 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.

progress

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', 'version' => 'latest' ]); // 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

Tipo

string|array

Puede conectarse a unAWSservicio a través de un proxy utilizando elproxyopción.

  • Proporcione un valor de cadena para conectarse a un proxy para todos los tipos de URI. 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 de configuración de proxy asociativa donde la clave sea el esquema del URI y el valor sea el proxy del URI en cuestión (es decir, que puede introducir diferentes proxies para los puntos de enlace "http" y "https").

use Aws\DynamoDb\DynamoDbClient; // Send requests through a single proxy $client = new DynamoDbClient([ 'region' => 'us-west-2', 'version' => 'latest', 'http' => [ 'proxy' => 'http://192.168.16.1:10' ] ]); // Send requests through a different proxy per scheme $client = new DynamoDbClient([ 'region' => 'us-west-2', 'version' => 'latest', '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.

  • Proporcione un resource tal como lo devuelve fopen para descargar el cuerpo de la respuesta en un flujo de 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 una Psr\Http\Message\StreamInterface para descargar el cuerpo de la respuesta en un objeto de flujo de PSR determinado.

nota

El SDK descarga el cuerpo de la respuesta en un flujo de 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 opción synchronous informa al controlador HTTP subyacente que el usuario está intentando bloquear el resultado.

stream

Tipo

bool

Establezca este parámetro en true para indicar al controlador HTTP subyacente que desea transmitir el cuerpo de la respuesta del servicio web, en lugar de descargarlo directamente. 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', 'version' => 'latest', 'http' => [ 'timeout' => 5 ] ]);

verify

Tipo

bool|string

Puede personalizar el comportamiento de verificación del certificado SSL/TLS homólogo del SDK utilizando la opción verify http.

  • Establezca este parámetro en true para habilitar la verificación del certificado homólogo SSL/TLS y utilizar el paquete de CA predeterminado proporcionado por 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 se encuentra el paquete de CA para su sistema y recibe un error, deberá proporcionar la ruta a un paquete de CA al SDK. Si no necesita un paquete de CA específico, Mozilla proporciona un paquete de CA de uso común que puede descargar aquí (lo gestionar el gestor de cURL). En cuanto tenga un paquete de CA disponible en el disco, puede establecer el valor del .ini de PHP openssl.cafile de modo que apunte hacia la ruta al archivo, lo que le permitirá omitir la opción de solicitud verify. Encontrará más detalles sobre certificados SSL en el sitio web de cURL.

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

http_handler

Tipo

callable

La opción http_handler se utiliza para integrar el SDK con otros clientes HTTP. 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 permite al SDK que vuelva a intentar la operación de forma automática, si es necesario.

El SDK convierte automáticamente el http_handler dado en una opción handler normal encapsulando el http_handler proporcionado con un objeto Aws\WrappedHttpHandler.

De forma predeterminada, el SDK utiliza Guzzle como su controlador HTTP. Puede proporcionar un controlador HTTP diferente aquí, o proporcionar un cliente Guzzle con sus propias opciones definidas personalizadas.

Configuración de la versión de TLS

Un caso de uso es establecer la versión de TLS utilizada por Guzzle con Curl, suponiendo que Curl esté instalado en su entorno. Tenga en cuenta las las restricciones de la versión de Curl para qué versión de TLS es compatible. Por defecto, se utiliza la última versión. Si la versión TLS está establecida explícitamente y el servidor remoto no admite esta versión, se producirá un error en lugar de usar una versión de TLS anterior.

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

Ejemplo de configuración de 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', 'version' => 'latest', 'http_handler' => $handler ]);
nota

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

profile

Tipo

string

Permite especificar qué perfil utilizar cuando se crean credenciales desde elAWSarchivo de credenciales en el directorio HOME. Este valor sustituye a la variable de entorno AWS_PROFILE.

nota

Si se especifica "profile" se omitirá la clave "credentials".

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

ConsulteCredenciales para elAWS SDK for PHPversión 3para obtener más información acerca de la configuración de credenciales y el formato de archivo .ini.

region

Tipo

string

Obligatorio

true

AWSRegión a la que hay que conectarse. Consultee elAWSRegiones y puntos de enlace depara ver una lista de las regiones disponibles.

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

Valor 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 reintento heredado predeterminada, * standard, agrega un sistema de cuotas de reintento para evitar reintentos que es improbable

que tengan é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. AWSArchivo de configuración compartida

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([ 'version' => 'latest', '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([ 'version' => 'latest', '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([ 'version' => 'latest', 'region' => 'us-west-2', 'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache), ]);

scheme

Tipo

string

Valor predeterminado

string(5) "https"

Esquema de URI que se debe utilizar para establecer la conexión. El SDK utiliza puntos de enlace "https" (es decir, que utiliza conexiones SSL/TLS) 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' ]);

Consultee elAWSRegiones y puntos de enlace depara ver una lista de los puntos de enlace y saber si un servicio es compatible con elhttpesquema de.

service

Tipo

string

Obligatorio

true

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

signature_provider

Tipo

callable

Llamable que acepta un nombre de versión de firma (p. ej.,v4), un nombre de servicio yAWSRegión y devuelve unAws\Signature\SignatureInterfaceobjeto oNULLsi el proveedor puede crear un firmante para los parámetros dados. Este proveedor se utiliza para crear los signatarios que utiliza el cliente.

El SDK proporciona distintas funciones en la clase Aws\Signature\SignatureProvider que se pueden utilizar para crear proveedores de firma personalizada.

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 PUEDE sustituir a esta versión de firma solicitada, si es necesario.

Los siguientes ejemplos muestran cómo configurar un cliente de Amazon S3 para utilizar.Signature Version 4:

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

El signature_provider que utiliza su cliente DEBE poder crear la opción signature_version que proporcione. El signature_provider predeterminado que utiliza el SDK puede crear objetos de firma para las versiones de firma "v4" y "anonymous".

ua_append

Tipo

string|string[]

Valor predeterminado

[]

Es una cadena o matriz de cadenas que se añade a la cadena de agente-usuario que se transfiere al controlador HTTP.

use_aws_shared_config_files

Tipo

bool|array

Valor predeterminado

bool(true)

Establezca este parámetro en false para deshabilitar la búsqueda de archivos de configuración compartida en '~/.aws/config' y '~/.aws/credentials'. Esto sustituirá a la variable de entorno AWS_CONFIG_FILE.

validar

Tipo

bool|array

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

version

Tipo

string

Obligatorio

true

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

Se precisa un valor de configuración "version". Especificar una restricción de versión garantiza que el código no se vea afectado por un cambio importante en el servicio. Por ejemplo, si utiliza Amazon S3, puede bloquear su versión de la API en2006-03-01.

$s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-east-1' ]);

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

Puede proporcionar la cadena latest con el valor de configuración "version" para que utilice la versión de la API más reciente disponible que encuentre el proveedor de API de su cliente (el api_provider predeterminado escanea el directorio src/data del SDK para buscar modelos de API).

// Use the latest version available $s3 = new Aws\S3\S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]);
aviso

No le recomendamos utilizar latest en una aplicación de producción, ya que integrar una nueva versión secundaria del SDK que incluya una actualización de la API podría romper su aplicación de producción.