Creación y llamada a objetos de servicio - AWS SDK for JavaScript

LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.

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.

Creación y llamada a objetos de servicio

La JavaScript API admite la mayoría de los disponiblesAWSServicios de . Cada clase de servicio del JavaScript La API proporciona acceso a todas las llamadas a la API de su servicio. Para obtener más información sobre clases de servicio, las operaciones y los parámetros en el JavaScript API, consulte laReferencia de la API de.

Cuando utiliza el SDK en Node.js, añade el paquete del SDK a su aplicación mediante require, que ofrece soporte para todos los servicios actuales.

var AWS = require('aws-sdk');

Cuando utiliza el SDK con JavaScript de navegador, carga el paquete del SDK en los scripts de navegador mediante el paquete de SDK alojado en AWS. Para cargar el paquete del SDK, añada el siguiente elemento <script>.

<script src="https://sdk.amazonaws.com/js/aws-sdk-SDK_VERSION_NUMBER.min.js"></script>

Para saber el SDK_VERSION_NUMBER actual, consulte la referencia de la API del SDK para JavaScript aAWS SDK for JavaScriptGuía de referencia de la API.

El paquete de SDK alojado predeterminado ofrece soporte para un subconjunto de los disponiblesAWSServicios de . Para obtener una lista de los servicios predeterminados en el paquete del SDK hospedado para el navegador, consulte los servicios compatibles en la referencia de la API. Puede utilizar el SDK con otros servicios si la comprobación de seguridad CORS está deshabilitada. En este caso, puede crear una versión personalizada del SDK para incluir los servicios adicionales que necesita. Para obtener más información acerca de la creación de una versión personalizada del SDK, consulte Creación del SDK para navegadores.

Necesidad de uso de servicios individuales

Requerir el SDK para JavaScript Como se muestra anteriormente, incluye todo el SDK en el código. O bien, puede elegir exigir solo los servicios individuales que su código utiliza. Considere el siguiente código que se utiliza para crear un objeto de servicio de Amazon S3.

// Import the AWS SDK var AWS = require('aws-sdk'); // Set credentials and Region // This can also be done directly on the service client AWS.config.update({region: 'us-west-1', credentials: {YOUR_CREDENTIALS}}); var s3 = new AWS.S3({apiVersion: '2006-03-01'});

En el ejemplo anterior, la función require especifica todo el SDK. La cantidad de código que debe transportarse a través de la red, así como la sobrecarga de memoria del código serían considerablemente inferiores si solo se incluyese una parte del SDK que necesita para el servicio de Amazon S3. Para solicitar un servicio individual, llame a la función require tal y como se muestra, incluido el constructor de servicio todo en minúsculas.

require('aws-sdk/clients/SERVICE');

A continuación se muestra cómo se ve el código para crear el objeto de servicio de Amazon S3 anterior cuando incluye solo la parte de Amazon S3 del SDK.

// Import the Amazon S3 service client var S3 = require('aws-sdk/clients/s3'); // Set credentials and Region var s3 = new S3({ apiVersion: '2006-03-01', region: 'us-west-1', credentials: {YOUR_CREDENTIALS} });

Aún puede acceder a la información globalAWSespacio de nombres sin todos los servicios asociados a él.

require('aws-sdk/global');

Se trata de una técnica útil cuando se aplica la misma configuración en varios servicios individuales para, por ejemplo, proporcionar las mismas credenciales a todos los servicios. La necesidad de servicios individuales debería reducir el tiempo de carga y el consumo de memoria en Node.js. Cuando se realiza con una herramienta de agrupación como Browserify o Webpack, el uso de servicios individuales hace que el SDK se reduzca a una fracción del tamaño completo. Esto es útil en los entornos de memoria o espacio de disco restringidos, como un dispositivo IoT o una función Lambda.

Creación de objetos de servicio

Para acceder a las funciones de servicio a través del JavaScript API, primero debe crear unobjeto de servicioa través del cual obtener acceso a un conjunto de características que proporciona el cliente subyacente. Por lo general cada servicio proporciona una clase de cliente; sin embargo, algunos servicios dividen el acceso a sus características entre varias clases de cliente.

Para utilizar una característica, debe crear una instancia de la clase que proporciona acceso a dicha característica. En el siguiente ejemplo se muestra cómo crear un objeto de servicio para DynamoDB a partir de laAWS.DynamoDBclase cliente.

var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});

De forma predeterminada un objeto de servicio se configura con la configuración global que también se utiliza para configurar el SDK. Sin embargo, puede configurar un objeto de servicio con datos de configuración de tiempo de ejecución específicos de dicho objeto de servicio. Los datos de configuración específicos del servicio se aplican después de aplicar los valores de la configuración global.

En el ejemplo siguiente, se crea un objeto de servicio de Amazon EC2 con la configuración para una región específica, pero aparte de esto se utiliza la configuración global.

var ec2 = new AWS.EC2({region: 'us-west-2', apiVersion: '2014-10-01'});

Además de admitir la configuración específica del servicio aplicada a un objeto de servicio individual, también puede aplicar la configuración específica del servicio a todos los objetos de servicio recién creados de una determinada clase. Por ejemplo, para configurar todos los objetos de servicio creados a partir de la clase Amazon EC2 para utilizar EE. UU. Oeste (Oregón) (us-west-2), añada lo siguiente a laAWS.configobjeto de configuración global.

AWS.config.ec2 = {region: 'us-west-2', apiVersion: '2016-04-01'};

Bloqueo de la versión de API de un objeto de servicio

Puede bloquear un objeto de servicio en una versión de API específica de un servicio especificando la opción apiVersion al crear el objeto. En el siguiente ejemplo, se crea un objeto de servicio de DynamoDB que está bloqueado en una versión de API específica.

var dynamodb = new AWS.DynamoDB({apiVersion: '2011-12-05'});

Para obtener más información acerca del bloqueo de la versión de la API de un objeto de servicio, consulte Bloqueo de versiones de la API.

Especificación de parámetros de objetos de servicio

Al llamar a un método de un objeto de servicio, transfiera los parámetros en JSON según los requiera la API. Por ejemplo, en Amazon S3, para obtener un objeto para un bucket y una clave especificados, transfiera los siguientes parámetros a elgetObjectMétodo de. Para obtener más información acerca de cómo transferir parámetros JSON, consulte Uso de JSON.

s3.getObject({Bucket: 'bucketName', Key: 'keyName'});

Para obtener más información acerca de los parámetros de Amazon S3, consulteClass: AWS.S3en la referencia de la API de.

Además, puede vincular valores a parámetros individuales al crear un objeto de servicio mediante el parámetro params. El valor del parámetro params de objetos de servicio es un mapa que especifica uno o varios valores de parámetros definidos por el objeto de servicio. En el siguiente ejemplo se muestra elBucketparámetro de un objeto de servicio de Amazon S3 vinculado a un bucket denominadomyBucket.

var s3bucket = new AWS.S3({params: {Bucket: 'myBucket'}, apiVersion: '2006-03-01' });

Al vincular el objeto de servicio a un bucket, el objeto de servicio s3bucket trata el valor del parámetro myBucket como un valor predeterminado que ya no necesita especificarse para operaciones posteriores. Todos los valores de parámetros vinculados se omiten cuando se utiliza el objeto para operaciones donde el valor del parámetro no se puede aplicar. Puede anular este parámetro vinculado cuando hace llamadas en el objeto de servicio, especificando un nuevo valor.

var s3bucket = new AWS.S3({ params: {Bucket: 'myBucket'}, apiVersion: '2006-03-01' }); s3bucket.getObject({Key: 'keyName'}); // ... s3bucket.getObject({Bucket: 'myOtherBucket', Key: 'keyOtherName'});

Los detalles sobre los parámetros disponibles para cada método se encuentran en la referencia de la API.