NameError: name '_mysql' is not defined when trying to use mysql functions in aws lambda in python language

0

My aws lambda function based on python 3.9 language failed with this error message.
NameError: name '_mysql' is not defined

I have uploaded the function code using s3. pip freeze gives me this list.

aiofiles==0.8.0
aiomysql==0.0.22
aiosqlite==0.17.0
anyio==3.5.0
asgiref==3.5.0
asyncpg==0.25.0
attrs==21.4.0
bcrypt==3.2.0
certifi==2021.10.8
cffi==1.15.0
cfgv==3.3.1
charset-normalizer==2.0.12
click==8.0.4
configparser==5.2.0
databases==0.5.5
distlib==0.3.4
dnspython==2.2.1
ecdsa==0.17.0
email-validator==1.1.3
emoji==1.7.0
fastapi==0.75.0
filelock==3.6.0
greenlet==1.1.2
h11==0.13.0
identify==2.4.12
idna==3.3
iniconfig==1.1.1
Jinja2==3.0.3
mangum==0.14.1
MarkupSafe==2.1.1
mysql-connector-python==8.0.28
mysqlclient==2.1.0
natsort==8.1.0
nodeenv==1.6.0
packaging==21.3
passlib==1.7.4
platformdirs==2.5.1
pluggy==1.0.0
pre-commit==2.17.0
protobuf==3.19.4
psycopg2-binary==2.9.3
py==1.11.0
pyasn1==0.4.8
pycparser==2.21
pydantic==1.9.0
PyMySQL==0.9.3
pymysql-utils==2.1.5
pyparsing==3.0.7
pytest==7.1.1
python-dotenv==0.19.2
python-jose==3.3.0
python-multipart==0.0.5
PyYAML==6.0
requests==2.27.1
rsa==4.8
seedir==0.3.0
six==1.16.0
sniffio==1.2.0
SQLAlchemy==1.4.32
starlette==0.17.1
toml==0.10.2
tomli==2.0.1
typing_extensions==4.1.1
urllib3==1.26.9
uvicorn==0.17.6
virtualenv==20.13.4

Am I missing any package? I am using sqlalchemy. Please help me.

질문됨 2년 전1246회 조회
1개 답변
1

There's not a lot to go on here - for example, it's impossible to tell whether there is a library missing or it's some other dependency so I can only give generic advice.

If you are using Python packages in your Lambda the best thing you can do is package them (those packages/dependencies) in the function. There are a couple of ways of doing this: Using a ZIP file or using a container image - use whichever is most comfortable for you - if you haven't had experience with containers then the ZIP file is probably the way to go.

Note that you should create the ZIP on an Amazon Linux 2 instance in order to get package for the appropriate architecture that is compatible with Lambda. And with some careful coding (or by creating a separate Python utility) you will be able to test that your packaging is working correctly prior to putting it into a ZIP and uploading to Lambda.

In my experience, ensuring that all the packages are included with your function handler is the best way to avoid the issue you're having.

profile pictureAWS
전문가
답변함 2년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠