Tengo una función AWS Lambda basada en nodejs muy simple que tiene una variable de evento que estoy tratando de pasar a través de slack/AWS Cli mientras invoco la función en Mac OS. A continuación se muestra el código
exports.handler = async (event) => { const a = event["domain"]; return a; };Al probar la función en la consola de AWS Lambda, si la proporciono, la configuro de la siguiente manera, funciona bien.
Funciona bien y muestra el resultado como se esperaba. Pero cuando intento ejecutarlo con AWS Cli o Slack (ChatOps), no pasa los datos del evento. A continuación se muestra el comando de invocación lambda que estoy usando,
@aws lambda invoke --invocation-type RequestResponse --function-name manrill-test --region us-east-1 --payload "{ \"domain\": \"xyz.com\" }"Esto muestra el siguiente mensaje y parece que los datos de evento/carga útil no se transmiten correctamente.
ExecutedVersion: $LATEST StatusCode: 200 Payload: null¿Alguna idea de lo que estoy haciendo mal? Idealmente, debería mostrar el valor de los datos de eventos que estoy pasando (xyz.com).
Si está utilizando AWS CLI V2 , debe agregar el indicador "--cli-binary-format raw-in-base64-out" para pasar json sin procesar
aws lambda invoke --invocation-type RequestResponse --function-name manrill-test --region us-east-1 --payload "{ \"domain\": \"xyz.com\" }" --cli-binary-format raw-in-base64-out response.jsonel problema no está en slack o lambda, su configuración de teclado mac os. debe desmarcar la configuración del teclado "usar comillas inteligentes y guiones" en la pestaña Texto. mira la respuesta en el siguiente enlace.