Hey there, I’m trying to create a MySQL2 dependency layer for my Ruby 2.7 lambda functions.
I’ve got a Lambda Layer
Ruby2LambdaDepLayer:
Type: AWS::Serverless::LayerVersion
Properties:
LayerName: ruby-2.7-lambda-dependencies
Description: Dependencies for ruby lambda functions
ContentUri: ../pt-lambda/rubyLayer2
CompatibleRuntimes:
- ruby2.7
RetentionPolicy: Retain
that I’m using to package up my dependencies, most notably mysql2.
However when I invoke a lambda that uses this layer, I received the dreaded: “libmysqlclient.so.18: cannot open shared object file: No such file or directory - /opt/ruby/gems/2.7.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.so” error.
I’ve confirmed that all necessary .so files live in /opt/lib
and the program is able to call the /opt/ruby/gems/2.7.0/gems/mysql2-0.5.3/lib/mysql2.rb
file, but it throws that error right after when the file is required.
Not sure what’s going on but could use some guidance, any help is appreciated. thanks!