Вы сможете сделать это следующим образом. Если вы используете «AWS AppSync Использование Amazon Aurora в качестве источника данных через AWS Lambda», найденный здесь https://github.com/aws-samples/aws-appsync-rds-aurora-sample.
В преобразователе добавьтеполе «sql0» и «sql1» (вы можете называть их как угодно):
{
"version" : "2017-02-28",
"operation": "Invoke",
#set($id = $util.autoId())
"payload": {
"sql":"INSERT INTO cuts (id, rollId, length, reason, notes, orderId)",
"sql0":"SELECT '$id', rollId, length, reason, notes, orderId FROM holds WHERE id=:ID",
"sql1":"DELETE FROM holds WHERE id=:ID",
"variableMapping": {
":ID": "$context.arguments.id"
},
"responseSQL": "SELECT * FROM cuts WHERE id = '$id'"
}
}
Добавьте в ваш лямбду следующий фрагмент кода:
if (event.sql0) {
const inputSQL0 = populateAndSanitizeSQL(event.sql0, event.variableMapping, connection);
await executeSQL(connection, inputSQL0);
}
if (event.sql1) {
const inputSQL1 = populateAndSanitizeSQL(event.sql1, event.variableMapping, connection);
await executeSQL(connection, inputSQL1);
}
СПри таком подходе вы можете отправлять в вашу лямбду столько операторов SQL, сколько пожелаете, и тогда ваша лямбда выполнит их.