Я создал очень минимальный рабочий пример, используя async / await .Вместо того, чтобы использовать метод обратного вызова старого стиля, просто вызовите soap.createClientAsync (url).
Вот код:
'use strict';
const soap = require('soap');
module.exports.hello = async (event, context) => {
const url = 'http://www.thomas-bayer.com/axis2/services/BLZService?wsdl';
const client = await soap.createClientAsync(url)
console.log(client)
return {
statusCode: 200,
message: 'It works!'
}
}
А вот журналы (частично):

EDIT : выход функции (через лямбда-консоль AWS)

РЕДАКТИРОВАТЬ 2 - РЕАЛЬНАЯ проблема
Проверьте ссылку выше вокруг async / await.Ключевое слово async будет выполняться асинхронно и вернет Promise.Поскольку это асинхронная функция, ваша лямбда завершается до того, как она действительно сможет выполнить ваш обратный вызов.
Использование async / await упростит ваш код и позволит вам перестать бить себя мозгами за такую маленькую вещь, как эта.