Is it the case that we can't use layers with ES in node18.x?
I am getting the following error upon trying to convert to ES in node18.x when my lambda tries to use layer code:
Runtime.UserCodeSyntaxError: SyntaxError: The requested module '/opt/nodejs/index.js' does not provide an export named 'MyLayerCode'"
I found this response to a question about 14.x and 16.x
ACCEPTED ANSWER
Unfortunately AWS support has confirmed we can't utilize layers with ES:
importing ESM modules from layers seems to not be supported when using a module type in Lambda. [...] this is a Node feature blocking us to import ES modules from a layer as "NODE_PATH" variable is not supported by the ESM loader in node
Disappointing that AWS is making headway on supporting ES, but it means we lose the functionality of layers. Support provided a wrapper workaround that we'll be trying. It corresponds with what we found here. Hopefully this saves someone else the headache we've gone through the last week.