La Guía de referencia de la API de AWS SDK for JavaScript V3 describe en detalle todas las operaciones de la API para la versión 3 (V3) de AWS SDK for JavaScript.
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.
Notas sobre clientes de servicios específicos
AWS Lambda
El tipo de respuesta a las invocaciones de Lambda difiere en v2 y v3.
// v2 import { Lambda } from "@aws-sdk/client-lambda"; import AWS from "aws-sdk"; const lambda = new AWS.Lambda({REGION}); const invoke = await lambda.invoke({ FunctionName: "echo", Payload: JSON.stringify({ message: "hello" }), }).promise(); // in v2, Lambda::invoke::Payload is automatically converted to string via a // specific code customization. const payloadIsString = typeof invoke.Payload === "string"; console.log("Invoke response payload type is string:", payloadIsString); const payloadObject = JSON.parse(invoke.Payload); console.log("Invoke response object", payloadObject);
// v3 const lambda = new Lambda({REGION}); const invoke = await lambda.invoke({ FunctionName: "echo", Payload: JSON.stringify({ message: "hello" }), }); // in v3, Lambda::invoke::Payload is not automatically converted to a string. // This is to reduce the number of customizations that create inconsistent behaviors. const payloadIsByteArray = invoke.Payload instanceof Uint8Array; console.log("Invoke response payload type is Uint8Array:", payloadIsByteArray); // To maintain the old functionality, only one additional method call is needed: // v3 adds a method to the Uint8Array called transformToString. const payloadObject = JSON.parse(invoke.Payload.transformToString()); console.log("Invoke response object", payloadObject);
Amazon SQS
Sumas de comprobación MD5
Para omitir el cálculo de las sumas de comprobación MD5 de los cuerpos de los mensajes, establezca md5 en falso en el objeto de configuración. De lo contrario, el SDK calculará de forma predeterminada la suma de comprobación para enviar mensajes, además de validar la suma de comprobación de los mensajes recuperados.
// Example: Skip MD5 checksum in Amazon SQS import { SQS } from "@aws-sdk/client-sqs"; new SQS({ md5: false // note: only available in v3.547.0 and higher });
Cuando se utiliza un QueueUrl personalizado en operaciones de Amazon SQS que lo tienen como parámetro de entrada, en v2 era posible proporcionar un QueueUrl personalizado que anulaba el punto de conexión predeterminado del cliente de Amazon SQS.
Mensajes de varias regiones
Debe usar un cliente por región en v3. La región de AWS debe inicializarse en el cliente y no cambiarse entre solicitudes.
import { SQS } from "@aws-sdk/client-sqs"; const sqsClients = { "us-east-1": new SQS({ region: "us-east-1" }), "us-west-2": new SQS({ region: "us-west-2" }), }; const queues = [ { region: "us-east-1", url: "https://sqs.us-east-1.amazonaws.com/{AWS_ACCOUNT}/MyQueue" }, { region: "us-west-2", url: "https://sqs.us-west-2.amazonaws.com/{AWS_ACCOUNT}/MyOtherQueue" }, ]; for (const { region, url } of queues) { const params = { MessageBody: "Hello", QueueUrl: url, }; await sqsClients[region].sendMessage(params); }
Punto de enlace personalizado
En v3, cuando utilice un punto de conexión personalizado, es decir, uno que difiere de los puntos de conexión públicos predeterminados de Amazon SQS, siempre se debe configurar el punto de conexión en el cliente de Amazon SQS, así como en el campo
QueueUrl.
import { SQS } from "@aws-sdk/client-sqs"; const sqs = new SQS({ // client endpoint should be specified in v3 when not the default public SQS endpoint for your region. // This is required for versions <= v3.506.0 // This is optional but recommended for versions >= v3.507.0 (a warning will be emitted) endpoint: "https://my-custom-endpoint:8000/", }); await sqs.sendMessage({ QueueUrl: "https://my-custom-endpoint:8000/1234567/MyQueue", Message: "hello", });
Si no se utiliza un punto de conexión personalizado, no es necesario configurar endpoint en el cliente.
import { SQS } from "@aws-sdk/client-sqs"; const sqs = new SQS({ region: "us-west-2", }); await sqs.sendMessage({ QueueUrl: "https://sqs.us-west-2.amazonaws.com/1234567/MyQueue", Message: "hello", });