当调用 AWS Lambda 调用 SageMaker 端点时出现参数验证错误时,可以按照以下步骤进行解决:
确保 Lambda 函数的执行角色具有访问 SageMaker 资源的权限。可以通过将 AmazonSageMakerFullAccess
策略附加到 Lambda 函数的执行角色来实现。
检查 Lambda 函数中调用 SageMaker 端点的代码,确保提供的参数正确。可能的参数包括 EndpointName
、ContentType
、Accept
、Body
等。根据具体的错误信息进行调整。
下面是一个示例代码,演示如何在 Lambda 函数中调用 SageMaker 端点:
import boto3
import json
def lambda_handler(event, context):
# 创建 SageMaker 客户端
sagemaker_client = boto3.client('sagemaker')
# 定义调用 SageMaker 端点的请求参数
endpoint_name = 'your-endpoint-name'
content_type = 'application/json'
accept = 'application/json'
payload = {
'input': 'your-input-data'
}
# 调用 SageMaker 端点
response = sagemaker_client.invoke_endpoint(
EndpointName=endpoint_name,
ContentType=content_type,
Accept=accept,
Body=json.dumps(payload)
)
# 解析 SageMaker 端点的响应
result = json.loads(response['Body'].read().decode())
# 处理结果
# ...
return {
'statusCode': 200,
'body': json.dumps(result)
}
请根据实际情况修改代码中的 your-endpoint-name
和 your-input-data
,确保与您的 SageMaker 端点和输入数据匹配。