Lambda 调用 SageMaker Endpoint,例子如下代码:

lambda_function.py

from sagemaker.predictor import RealTimePredictor
import numpy as np
from sagemaker.predictor import csv_serializer, json_deserializer
from sagemaker.content_types import CONTENT_TYPE_CSV

def lambda_handler(event, context):
    pd = RealTimePredictor(endpoint='mme-xgboost-myself2')

    pd.serializer = csv_serializer
    pd.deserializer = json_deserializer
    pd.content_type = CONTENT_TYPE_CSV
    pd.accept = CONTENT_TYPE_CSV

    data = np.array([0.08517875, 0.76152937])

    res = pd.predict(data=data, target_model='SHA.tar.gz')
    return res

之后,将代码加进压缩包

zip -g function.zip lambda_function.py

之后,安装sagemaker和numpy库

pip install --target ./package sagemaker numpy
cd package
zip -r9 ../function.zip .

由于代码体积过大,无法直接在本地更新lambda,所以先上传到s3,之后再用s3更新

aws s3 cp function.zip s3://<s3-bucket-name>/<路径名>/

最后,更新Lambda函数

aws lambda update-function-code --function-name <lambda-function-name> --region <region-name> --s3-bucket <s3-bucket-name> --s3-key <路径名>/function.zip
最后修改:2021 年 06 月 01 日 02 : 24 PM
如果觉得我的文章对你有用,请随意赞赏