可能是模型文件放置位置不正确或缺少必要的IAM角色。可以检查以下内容:
在AWS Lambda函数中设置环境变量以指向模型文件的正确路径。
确保您的IAM角色具有允许访问S3桶和SageMaker终端节点的权限。
以下是一个示例代码,该代码设置环境变量并使用IAM角色进行推理。
import os
import boto3
ENDPOINT_NAME = 'your_endpoint_name'
runtime = boto3.Session().client(service_name='sagemaker-runtime')
S3_BUCKET = 'your_s3_bucket'
MODEL_PATH = 'your_s3_path'
def lambda_handler(event, context):
text = event['text']
payload = {"data": text}
# Ensure the IAM role has access to S3 and SageMaker
response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME, ContentType='application/json', Body=json.dumps(payload))
result = json.loads(response['Body'].read().decode())
return result
其中,ENDPOINT_NAME是你的终端节点名称,S3_BUCKET和MODEL_PATH是你存储模型文件的S3桶和路径。在代码中使用的IAM角色应具有访问S3和SageMaker终端节点的权限。