我在AWS中有一个相对简单的线性回归lambda。每个称为函数的实例的日志显示以下内容:
/opt/python/sklearn/externals/joblib/_multiprocessing_helpers.py:38: UserWarning: [Errno 38] Function not implemented. joblib will operate in serial mode
warnings.warn('%s. joblib will operate in serial mode' % (e,))
我怀疑这是由于sklearn在lambda上(即“无服务器”)运行,并试图根据this question和this GH issue确定其多处理能力。
我还从GH那里了解到这不是一个“可修复”的问题,当在这些硬件上具有这些依赖项进行部署时,总是会发生这种情况。我正在恢复预期的结果(即使我当前已将默认的最小lambda内存最大化为128mb)。
我的目标是控制警告,并且知道是否有办法进行以下操作:
答案 0 :(得分:1)
要捕获警告并防止将其传递到cloudwatch日志中,可以按以下方式过滤警告。
import json
import warnings
warnings.filterwarnings('error')
try:
import sklearn
except Warning:
pass
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
article here(特别是在结尾处)重新创建并过滤警告。