Invoke AWS lambda from another lambda with Node 8.10

mmontoya
1 min readMar 4, 2019

TypeScript resolver version for GraphQL:

async function getZipdata(cp: { [key: string]: string; }): Promise<any> {
const payload: [key: string] = {
“headers”: {
“Accept”: “application/json”
},
“httpMethod”: “POST”,
“body”: `{\”query\”:\”query { getZipdata(cp: \\\”${cp.cp}\\\”) {idmunicipio,municipio, asentamiento} } \” }`
};
const lambda = new AWS.Lambda({ region: ‘us-east-1’, apiVersion: ‘2015–03–31’ });
const pullParams: any = {
FunctionName: ‘zipcodes-service-dev-graphql’,
Payload: JSON.stringify(payload),
InvocationType: ‘RequestResponse’, // Synchronous call
LogType: ‘None’
};
try {
const result: any = await lambda.invoke(pullParams).promise();
const parsed: any = JSON.parse(result.Payload);
const body: any = JSON.parse(parsed.body);
return body.data.getZipdata;
} catch (error) {
console.error(error);
return false;
}
}

--

--