Uncharted
05/27/2022, 8:17 AMArpad
05/27/2022, 8:30 AMLambda.invoke
by knowing the lambda nameArpad
05/27/2022, 8:32 AMKlaus
05/27/2022, 1:35 PMexport function FuncStack({ stack, app }: StackContext) {
const fn = new Function(stack, `myFunc`, {
handler: 'lambda.handler',
srcPath: 'backend'
});
return fn;
}
export function ApiStack({ stack, app }: StackContext) {
var fn = use(FuncStack);
var api = new Api(stack, 'api', {
routes: {
'GET /': fn
}
});
stack.addOutputs({ apiUrl: api.url });
fn.addEnvironment("API-url", api.url) ; // <-- set API URL in environment var
return api;
}
However, there are some limits to consider. API Gateway allows max 30s for HTTP and 29s for websocket requests. Calling another endpoint can increase the probability of a timeout.
In cases where you are likely to exceed that limit, FunctionURLs or lambda.invoke
can be used. Both have max 900s (but if you are calling from a Lambda that's triggered by API GW, the 29/30s limit applies anyway.Uncharted
05/27/2022, 1:40 PMDerek Kershner
05/27/2022, 1:48 PM