I am trying to execute a couple of asynchronous requests from a function lambda
. The first call resolveEndpoints()
succeeds, and the second with an error
2017/11/03 17:13:27 Function oauth.callbackHandler timed out after 3 seconds
2017/11/03 17:13:27 Error invoking nodejs6.10 runtime: io: read/write on closed pipe
Handler:
exports.callbackHandler = async (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
let endpoints: any = await resolveEnpoints();
config.accessTokenUri = endpoints.token_endpoint;
let tokenRequestPath =
`http://localhost:7001${event.path}?code=${event.queryStringParameters.code}&realmId=${event.queryStringParameters.realmId}&`;
let accessToken: any = await getAuthToken(tokenRequestPath);
callback(undefined, {statusCode: 200, body: JSON.stringify(accessToken.data)});
};
If I delete the call resolveEndpoint()
, it getAuthToken()
will be successful.
resolveEndpoint()
returns a promise that is resolved upon completion of the request.
const resolveEnpoints = async () => {
return new Promise((resolve, reject) => {
request({
url: config.sandboxEndpoint,
headers: {
'Accept': 'application/json'
}
}, (err, response) => {
if (err) {
reject(err);
}
let payload = JSON.parse(response.body);
resolve(payload);
});
});
};
source
share