如何通过REST API调用自建AWS Comprehend自定义分类器模型?
自建AWS Comprehend自定义分类器实时分析的最简API调用方式
一、直接调用Comprehend的InvokeEndpoint REST API(无需Lambda)
这是最直接的方式,跳过中间层Lambda,减少出错概率,适合编程基础薄弱的场景。
步骤1:准备核心信息
- AWS账号的Access Key ID和Secret Access Key(在IAM控制台的用户安全凭证页面获取)
- 自定义分类器部署的区域(例如
us-east-1) - 自定义分类器的实时端点ARN(在Comprehend控制台的「端点」页面查看)
步骤2:用Postman发起请求(直观易操作)
- 打开Postman,新建POST请求,URL填写:
https://comprehend.{{你的区域}}.amazonaws.com/ - 在请求头(Headers)中添加以下键值对:
Content-Type:application/x-amz-json-1.1X-Amz-Target:Comprehend_20171127.InvokeEndpoint
- 切换到「Authorization」标签,认证类型选择AWS Signature,填入:
- Access Key、Secret Key
- AWS Region:你的部署区域
- Service Name:
comprehend
- 切换到「Body」标签,选择raw格式(JSON类型),输入请求体:
{ "EndpointArn": "你的端点ARN", "Text": "需要分析的目标文本" } - 点击「Send」,即可获取分类结果。
步骤3:用curl发起请求(命令行方式)
先确保本地安装AWS CLI并完成基础配置(运行aws configure,依次输入Access Key、Secret Key、区域),然后执行命令:
aws comprehend invoke-endpoint \ --endpoint-arn "你的端点ARN" \ --text "需要分析的目标文本" \ --region "你的区域" \ output.json
执行后结果会保存到output.json文件,直接打开查看即可。
二、解决你遇到的Lambda 502错误
如果一定要用Lambda作为中间层,排查并修复以下常见问题:
- 权限不足:给Lambda执行角色添加
comprehend:InvokeEndpoint权限。进入IAM控制台,找到Lambda对应的角色,点击「添加权限」→「附加策略」,搜索并选择AmazonComprehendFullAccess(或自定义仅包含InvokeEndpoint权限的策略)。 - 代码逻辑错误:Lambda代码需正确处理请求与返回,以下是Python示例:
注意必须返回合法的import boto3 comprehend = boto3.client('comprehend', region_name='你的区域') def lambda_handler(event, context): try: response = comprehend.invoke_endpoint( EndpointArn='你的端点ARN', Text=event['text'] ) return { 'statusCode': 200, 'body': response['ResultList'][0] } except Exception as e: return { 'statusCode': 500, 'body': str(e) }statusCode,否则API Gateway会返回502错误。 - 端点状态异常:检查Comprehend控制台的端点状态,确保显示为「InService」,若为「Creating」或「Failed」,先修复端点部署问题。
内容的提问来源于stack exchange,提问作者Keith
相关产品推荐
相关产品推荐

