-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failed to load psycopg in an uploaded function #152
Comments
I'm having the same issue here, did you find a fix for it? |
Looks like an issue with compiled shared libraries trying to run on a different target system. This doesn't appear to be an issue with the lambda-uploader as much as an issue with not building the virtualenv in an Amazon Linux based system. There are a few workarounds, the easiest is to build the project in a local Amazon Linux container. If I have some time I'll try and write up a little example of how to go about this. |
@Julio-Assis I've dropped my ideas to use lambda-uploader because of this problem and because it didn't seem to fit our workflow. We are using our own script that builds the Lambda package as a layer in a docker image extending lambci/lambda:build-python3.6 We may publish details in a blog post at one point :-) |
@jarosser06 Oh, I didn't know that you need to use it from Amazon Linux. Guess it'd be good to put it in the readme. |
One possible workaround that I have in mind is to change my database to mysql and then I would use pymysql rather than psycopg2. Do you think this will work? |
@Julio-Assis I think that building on Amazon Linux, or in |
A issue has been that even if you specify python3.6 as runtime in lambda.json, it will use python2 for the virtualenv and thus install possibly incompatible libraries (psycopg2-binary for example) This changes the behavour to use the defined "runtime" in lambda.json as basis for the virtualenv. Closes: rackerlabs#142 Relates: rackerlabs#152
The function I've built and uploaded with lambda-uploader crashed with this error:
Unable to import module 'kinesis_worker': /var/task/psycopg2/_psycopg.so: undefined symbol: PyUnicodeUCS4_DecodeUTF8
My requirements.txt:
My lambda.json:
The function works with AWS when I'm building with my own scripts (created them because of #151):
My OS is Kubuntu 17.10
The text was updated successfully, but these errors were encountered: