Ask Your Question

Revision history [back]

Yes, it is possible to check whether transactions are supported by Aurora MySQL when accessed through a Node.js Lambda function.

One way to check is to execute a simple test query that uses a transaction and check for any errors. For example, you can use the following code to check if a transaction is supported:

const mysql = require('mysql2/promise');

exports.handler = async (event, context) => {
  // create connection
  const connection = await mysql.createConnection({
    host: 'your-aurora-mysql-hostname',
    user: 'your-username',
    password: 'your-password',
    database: 'your-database'
  });

  try {
    // execute a transaction
    await connection.beginTransaction();
    await connection.query('INSERT INTO my_table VALUES (?)', ['Hello World']);
    await connection.commit();

    console.log('Transaction supported!');
  } catch (err) {
    console.log('Transaction not supported!', err);
  } finally {
    // close connection
    await connection.end();
  }
};

If transactions are supported, the code should output "Transaction supported!" in the CloudWatch logs. If not, it will output "Transaction not supported!" with an error message indicating why the transaction failed.