Configuración de clientes de servicio en código para la AWS SDK para PHP versión 3 - AWS SDK para 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 de clientes de servicio en código para la AWS SDK para PHP versión 3

Como alternativa a la configuración externa de los clientes de servicio, o además de ella, puede configurarlos mediante programación en código.

Al configurar los clientes de servicio en código, obtiene un control pormenorizado de las numerosas opciones que tiene a su disposición. La mayoría de las configuraciones que puede configurar externamente también están disponibles en código.

Configuración básica en código

Puede crear y configurar un cliente de servicio en código pasando una matriz asociativa de opciones al constructor del cliente. En el siguiente ejemplo, la matriz asociativa contiene solo la opción de «región» que usa el cliente:

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException; //Create an S3Client $s3 = new S3Client([ 'region' => 'eu-south-2' ]);

Encontrará información sobre el parámetro opcional "versión" en el temaOpciones de configuración.

Tenga en cuenta que no hemos proporcionado credenciales de forma explícita al cliente. Esto se debe a que el SDK usa la cadena de proveedores de credenciales predeterminada para buscar la información de credenciales.

Todas las opciones de configuración generales del cliente se describen detalladamente en Opciones de constructor de clientes para la AWS SDK para PHP versión 3. La matriz de opciones proporcionada a un cliente 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.

Utilización de la clase Sdk

La clase Aws\Sdk actúa como una fábrica de clientes y se utiliza para administrar las opciones de configuración compartidas entre varios clientes. Muchas de las opciones que se pueden proporcionar a un constructor de cliente específico también se pueden proporcionar a la clase Aws\Sdk. Estas opciones se aplican después a cada constructor de clientes.

Importaciones

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

Código de muestra

// The same options that can be provided to a specific client constructor can also be supplied to the Aws\Sdk class. // Use the us-west-2 region and latest version of each client. $sharedConfig = [ 'region' => 'us-west-2' ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Create an Amazon S3 client using the shared configuration data. $client = $sdk->createS3();

Las opciones que se comparten entre todos los clientes se colocan en pares clave-valor en el nivel de raíz. Los datos de configuración específicos del servicio se pueden proporcionar en una matriz asociativa con una clave que sea igual al espacio de nombres de un servicio (por ejemplo, «S3», «», etc.). DynamoDb

$sdk = new Aws\Sdk([ 'region' => 'us-west-2', 'DynamoDb' => [ 'region' => 'eu-central-1' ] ]); // Creating an Amazon DynamoDb client will use the "eu-central-1" AWS Region. $client = $sdk->createDynamoDb();

Los valores de configuración específicos del servicio son una combinación de los valores específicos del servicio y los valores del nivel de raíz (es decir, los valores específicos del servicio se combinan suavemente con los valores del nivel de raíz).

nota

Le recomendamos encarecidamente que utilice la clase Sdk para crear clientes si utiliza varias instancias de cliente en su aplicación. La clase Sdk utiliza automáticamente el mismo cliente HTTP para cada cliente del SDK, lo que permite que los clientes del SDK de diferentes servicios puedan realizar solicitudes HTTP sin que haya bloqueo. Si los clientes del SDK no utilizan el mismo cliente HTTP, es posible que las solicitudes HTTP enviadas por el cliente del SDK bloqueen la orquestación de promesas entre los servicios.