Desarrollo un flujo de trabajo muy simple en AWS Step Functions como la imagen de abajo.
La función CreateNewItem crea un nuevo registro en Dynamo DB, luego, si falla, llama a la función Create NewItemFail .
La función CreateNewItemFail envía un correo electrónico que incluye información sobre los datos que la primera función intentó insertar en Dynamo DB.
Sin embargo, no tengo idea de cómo lanzar una variable en la función fallida.
Este es el código de función del controlador de la función CreateNewItem .
const AWS = require('aws-sdk') AWS.config.update({ region: "ap-northeast-1", }) const dynamoDb = new AWS.DynamoDB(); const table = "ItemTable"; exports.handler = async(event, context, callback) => { const item = { id: 'xxxxxxxxxx', name: 'hello', } try { // // Insert data(item) into Dynamo DB here. // } catch(e) { const createItemError = new Error('Insert data error'); createItemError.name = "CreateItemError"; // here, I would like to know how to pass the `item` variable. throw createItemError; } const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; }; La entrada de la función CreateNewItemFail es esta.
{ "Error": "CreateItemError", "Cause": "{\"errorType\":\"CreateItemError\",\"errorMessage\":\"Insert data error\",\"trace\":[\"CreateItemError: Insert data error\",\" at Runtime.exports.handler (/var/task/index.js:147:28)\",\" at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)\"]}" }