O Guia de referência da API do AWS SDK para JavaScript V3 descreve em detalhes todas as operações da API para o AWS SDK para JavaScript versão 3 (V3).
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Observações sobre clientes de serviços específicos
AWS Lambda
O tipo de resposta das invocações do Lambda difere entre as versões 2 e 3.
// 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
Soma de verificação MD5
Para ignorar o cálculo das somas de verificação MD5 dos corpos das mensagens, defina md5 como false no objeto de configuração. Caso contrário, o SDK, por padrão, calculará a soma de verificação para o envio de mensagens e validará a soma de verificação para mensagens recuperadas.
// 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 });
Na v2, ao usar um QueueUrl personalizado em operações do Amazon SQS que tem ele como parâmetro de entrada, era possível fornecer um QueueUrl personalizado que substituía o endpoint padrão do cliente do Amazon SQS.
Mensagens multirregionais
Na v3, é preciso usar um cliente por região. A região da AWS deve ser inicializada no nível do cliente e não deve ser alterada entre as solicitações.
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); }
Endpoint personalizado
Na v3, ao usar um endpoint personalizado, ou seja, um diferente dos endpoints públicos padrão do Amazon SQS, é necessário sempre definir o endpoint no cliente do Amazon SQS, bem como o 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", });
Se você não estiver usando um endpoint personalizado, não precisará definir o endpoint no 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", });