Uso del objeto de configuración global - AWS SDK for JavaScript

La versión 3 (v3) del AWS SDK for JavaScript es una reescritura de la v2 con nuevas características excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de AWS SDK for JavaScript v3.

Uso del objeto de configuración global

Hay dos formas de configurar el SDK:

  • Establecer la configuración global con AWS.Config.

  • Transferir información de configuración adicional a un objeto de servicio.

Normalmente es más fácil comenzar con la configuración global de valores mediante AWS.Config, pero la configuración de nivel de servicio puede aportar más control sobre los servicios individuales. La configuración global que AWS.Config especifica proporciona la configuración predeterminada para objetos de servicio que crea posteriormente, lo que simplifica su configuración. Sin embargo, tiene la posibilidad de actualizar la configuración de objetos de servicio individuales cuando sus necesidades varían de la configuración global.

Ajuste de la configuración global

Después de cargar el paquete aws-sdk en el código, puede utilizar la variable global AWS para acceder a las clases del SDK e interactuar con servicios individuales. El SDK incluye un objeto de configuración global, AWS.Config, que se utiliza para especificar los ajustes de configuración del SDK que la aplicación necesita.

Configure el SDK definiendo las propiedades AWS.Config de acuerdo con las necesidades de la aplicación. En la tabla siguiente se resumen las propiedades AWS.Config que se suelen usar para establecer la configuración del SDK.

Opciones de configuración Descripción
credentials Obligatorio. Especifica las credenciales que se usan para determinar el acceso a los servicios y los recursos.
region Obligatorio. Especifica la región en la que se realizan las solicitudes de servicios.
maxRetries Opcional. Especifica el número máximo de veces que una solicitud determinada se reintenta.
logger Opcional. Especifica un objeto registrador en el que se escribe información de depuración.
update Opcional. Actualiza la configuración actual con nuevos valores.

Para obtener más información acerca del objeto de configuración, consulte Class: AWS.Config en la referencia de la API.

Ejemplos de configuración global

Tiene que establecer la región y las credenciales en AWS.Config. Puede configurar estas propiedades como parte del constructor AWS.Config, tal y como se muestra en el siguiente ejemplo de script de navegador:

var myCredentials = new AWS.CognitoIdentityCredentials({IdentityPoolId:'IDENTITY_POOL_ID'}); var myConfig = new AWS.Config({ credentials: myCredentials, region: 'us-west-2' });

También puede definir estas propiedades después de crear AWS.Config utilizando el método update, tal y como se muestra en el siguiente ejemplo que actualiza la región:

myConfig = new AWS.Config(); myConfig.update({region: 'us-east-1'});

Puede obtener sus credenciales predeterminadas llamando al método getCredentials estático de AWS.config:

var AWS = require("aws-sdk"); AWS.config.getCredentials(function(err) { if (err) console.log(err.stack); // credentials not loaded else { console.log("Access key:", AWS.config.credentials.accessKeyId); } });

Del mismo modo, si ha definido su región correctamente en el archivo config, obtendrá ese valor definiendo la variable de entorno AWS_SDK_LOAD_CONFIG en un valor verdadero y llamando a la propiedad region estática de AWS.config:

var AWS = require("aws-sdk"); console.log("Region: ", AWS.config.region);

Configuración según el servicio

El acceso a cada servicio que se utiliza en el SDK de JavaScript se realiza a través de un objeto de servicio que forma parte de la API de dicho servicio. Por ejemplo, para acceder al servicio de Amazon S3, tiene que crear el objeto de servicio de Amazon S3. Puede especificar los valores de configuración que son específicos de un servicio como parte del constructor para dicho objeto de servicio. Cuando establece valores de configuración en un objeto de servicio, el constructor toma todos los valores de configuración que AWS.Config utiliza, incluidas las credenciales.

Por ejemplo, si necesita obtener acceso a objetos de Amazon EC2 en varias regiones, cree un objeto de servicio de Amazon EC2 para cada región y, a continuación, defina la configuración de región de cada objeto de servicio en consecuencia.

var ec2_regionA = new AWS.EC2({region: 'ap-southeast-2', maxRetries: 15, apiVersion: '2014-10-01'}); var ec2_regionB = new AWS.EC2({region: 'us-east-1', maxRetries: 15, apiVersion: '2014-10-01'});

También puede establecer valores de configuración específicos de un servicio al configurar el SDK con AWS.Config. El objeto de configuración global admite muchas opciones de configuración específicas de servicios. Para obtener más información acerca de la configuración específica de servicios, consulte Class: AWS.Config en la referencia de la API de AWS SDK for JavaScript.

Datos de configuración inmutables

Los cambios de la configuración global se aplican a las solicitudes de todos los objetos de servicio que se acaban de crear. Los objetos de servicio recién creados se configuran primero con los datos de la configuración global actual y después con las opciones de configuración local. Las actualizaciones que se introducen en el objeto AWS.config global no se aplican a los objetos de servicio que se ha creado anteriormente.

Los objetos de servicio ya existentes deben actualizarse manualmente con datos de la nueva configuración o bien debe crear y utilizar un objeto de servicio nuevo que tenga los nuevos datos de configuración. En el siguiente ejemplo, se crea un objeto de servicio de Amazon S3 con datos de configuración nuevos:

s3 = new AWS.S3(s3.config);