这个错误是因为AWS Lambda环境没有安装tesseract而引起的。要解决这个问题,需要在AWS Lambda函数中设置一个自定义运行时,并安装tesseract和所需的其他软件包。
以下是一个使用Python作为编程语言的示例:
在lambda_function文件夹中,创建一个文件夹,并将tesseract二进制文件及其依赖项(在本例中为libjpeg62-turbo-dev和libtiff5-dev)复制到该文件夹中。您可以从此链接中下载tesseract二进制文件:https://github.com/tesseract-ocr/tessdoc/blob/main/Downloads.md。
在该文件夹中创建一个名为bootstrap的文件,并添加以下内容:
#!/bin/sh
export PATH=/var/task/:$PATH
export TESSDATA_PREFIX=/var/task//tessdata
/var/task//tesseract $1 $2
请将
Pillow
pytesseract
这些软件包将在安装tesseract后使用。
在您的AWS Lambda控制台中创建一个新的Lambda函数。当您被要求选择运行时时,选择'自定义运行时”。
在'函数代码”部分,将您lambda_function文件夹上传为.zip文件。
在'环境变量”部分,添加一个名称为'PATH”的环境变量,并将其值设置为'/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin:/var/task/
在'函数代码”部分的同一页面中,找到一个名为'执行程序”的下拉菜单。选择您刚刚创建的'bootstrap”文件并保存更改。
转到'基本设置”部分,并'超时”选项设置为600秒以确保OCR作业有足够的时间完成。
最后,将上述'requirements.txt”文件上传到与Lambda函数关联的S3桶中,并在Lambda函数的'图层”部分中添加该图层。
运行修改后的Lambda函数,您的OCR作业现在应该可以正常运行,并