我正在尝试使用AWS集成从api网关调用sagemaker推理端点。我不想在API网关和sagemaker运行时之间使用lamdba。我按照这个doc来设置api网关方法,但它失败了。
如何从API网关调用sagemaker推理端点?
Web浏览器-> API网关-> Sagemaker端点
发布于 2019-02-26 03:19:54
API Gateway支持直接与AWS服务集成(无需Lambda)。您可以按照https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-aws-proxy.html上的说明进行操作。
当您转到上面说明中的步骤4时,对于亚马逊网络服务选项,您可以选择'SageMaker运行时‘来定位调用端点。
发布于 2020-05-08 11:27:37
调用Invocation将需要适当的SageMaker权限,这就是为什么在体系结构中推荐使用Lambda。如果没有Lambda,您将需要处理通过SageMaker网关传递的AWS InvokeEndpoint调用(和AWS签名),这不是一个最佳实践,原因有几个。
下面是一个处理InvokeEndpoint调用的简单Lambda python函数的示例。这将通过API网关将输入/输出传递给SageMaker,然后将预测返回给客户端。
import os
import io
import boto3
import json
import csv
ENDPOINT_NAME = os.environ['ENDPOINT_NAME']
runtime = boto3.client('runtime.sagemaker')
def handler(event, context):
print("data: " + json.dumps(event))
response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,
ContentType='text/csv',
Body=event)
result = json.loads(response['Body'].read().decode())
print(result)
return result有关更多信息,请参阅API参考:https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html
希望这能有所帮助!
发布于 2021-02-19 18:25:13
这是一个古老的问题,所以可能性很小,但可能会有人在这里结束。
阅读有关在sagemaker中调用推理端点的文档的第一部分,您将发现只能使用POST调用它,并在主体中传递输入数据。
https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html
因此,您可能在API Gateway中创建了一个GET方法,并且需要将请求参数映射到正文有效负载,或者简单地设置POST方法。
https://stackoverflow.com/questions/54691487
复制相似问题