【发布时间】:2019-07-23 12:30:20
【问题描述】:
我正在使用 node-soap 库测试对 SOAP 服务的调用。 这可以作为独立的 node.js 应用程序正常工作,并且 SOAP 服务会响应,但是当我将相同的代码打包为无服务器 AWS lambda 函数(使用无服务器框架,但也直接在 AWS lambda 中执行)时,它似乎没有创建soap客户端。
对为什么会发生这种情况有任何想法吗?
export async function main(event, context) {
var soap = require('soap');
var url = 'https://service.blah.co.uk/Service/Function.asmx?wsdl';
var soapOptions = {
forceSoap12Headers: true
};
var soapHeader = {
'SOAPAction': 'http://www.blah.co.uk/Services/GetToken'
};
var params = {
xmlMessage: message
};
console.log(JSON.stringify(params));
soap.createClient(url, soapOptions, function (err, client) {
//the serverless AWS lambda function never reaches this point (deployed and invoked locally)
console.log("In create client")
if (err) console.log(err);
client.addSoapHeader(soapHeader);
client.GetToken(params, function (err, data) {
console.log(data);
});
});
}
【问题讨论】:
-
你确定这行得通吗?我在本地测试过,soap.createClient() 里面的代码永远不会执行。
-
我添加了一个工作示例。
标签: node.js aws-lambda serverless-framework node-soap