React aws-sdk invokeWithResponseStream

0

Hello, I'm trying to invoke a lambda with ResponseStream using this code, but I get the error following the code:

runStreamLambda(param) {
        try {
            const lambda = new AWS.Lambda();
            const params = {
                Payload: JSON.stringify({ param }),
                FunctionName: 'streamResponse'
            };
            return lambda.invokeWithResponseStream(params).promise();
        } catch (error) {
            throw error;
        }
    }

ERROR
Can't find variable: payload

The interesting part is that if I do this, I get the response just fine:

runStreamLambda(param) {
        try {
            const lambda = new AWS.Lambda();
            const params = {
                Payload: JSON.stringify({ param }),
                FunctionName: 'streamAnswerQuery'
            };
            return lambda.invoke(params).promise(); // invoke instead of invokeWithResponseStream
        } catch (error) {
            throw error;
        }
    }

And if I call the streaming lambda in other ways, it works fine as well (for example calling the Lambda Function URL directly.

Carlo
preguntada hace un año403 visualizaciones
1 Respuesta
1
Respuesta aceptada

This is a difference between API URI requests and language-specific AWS SDKs

you are using AWS SDK for Javascript but the invokeWithResponseStreammethod is for WS API URi request.

https://docs.aws.amazon.com/lambda/latest/dg/API_InvokeWithResponseStream.html

profile picture
EXPERTO
respondido hace un año

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas