I'm trying to add mecab library to aws lambda layer but it didn't work.
What I want is to tokenize Japanese and Korean languages. Tokenizing is enough.
Here's what I have done. (I referred to this site: https://towardsdatascience.com/how-to-install-python-packages-for-aws-lambda-layer-74e193c76a91 for installing python packages for aws lambda layers)
AWS EC2 docker installation.
Build docker file
sudo vi Dockerfile
-----------------vi editor------------------
FROM amazonlinux:2.0.20191016.0
RUN yum install -y python37 && \
yum install -y python3-pip && \
yum install -y zip && \
yum clean all
RUN python3.7 -m pip install --upgrade pip && \
python3.7 -m pip install virtualenv
-----------------vi editor------------------
docker build -t lambdalayer .
- Run
docker run -it --name lambdalayer lambdalayer:latest bash
- Install python packages
python3.7 -m venv mypackages
source mypackages/bin/activate
pip install mecab-python3 -t ./python
pip install unidic-lite -t ./python
pip install --no-binary :all: mecab-python3 -t ./python
pip install -v python-mecab-ko -t ./python
deactivate
- zip file
zip -r python.zip ./python/
docker cp lambdalayer:python.zip /home/ubuntu/
- AWS s3 upload
cd /home/ubuntu
aws s3 cp python.zip s3://bukketyounghee
- Make a lmabda layer
aws lambda publish-layer-version --layer-name layer-search --compatible-runtimes "python3.7" --content S3Bucket=bukketyounghee,S3Key=python.zip
I don't know what I should do next. It doesn't have to be mecab library but I want to use aws lambda because I want a serverless application. Please help me.
Thanks in advance!