本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS-阿皮盖特路-萨玛凯伦点
![Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.](images/experimental.png)
所有类都处于积极开发之中,并且在任何未来版本中都会受到非向后兼容的更改或删除。这些不受语义版本控制
注意: 为确保正确的功能,您项目中的 AWS 解决方案构造软件包和 AWS CDK 包必须是相同的版本。
语言 | 程序包 |
---|---|
![]() |
aws_solutions_constructs.aws_apigateway_sagemakerendpoint
|
![]() |
@aws-solutions-constructs/aws-apigateway-sagemakerendpoint
|
![]() |
software.amazon.awsconstructs.services.apigatewaysagemakerendpoint
|
Overview
此 AWS 解决方案构造实现了与 Amazon SageMaker 终端节点连接的 Amazon API Gateway REST API。
以下是 TypeScript 中的最小可部署模式定义:
import { ApiGatewayToSageMakerEndpoint, ApiGatewayToSageMakerEndpointProps } from '@aws-solutions-constructs/aws-apigateway-sagemakerendpoint'; // Below is an example VTL (Velocity Template Language) mapping template for mapping the Api GET request to the Sagemaker POST request const requestTemplate = `{ "instances": [ #set( $user_id = $input.params("user_id") ) #set( $items = $input.params("items") ) #foreach( $item in $items.split(",") ) {"in0": [$user_id], "in1": [$item]}#if( $foreach.hasNext ),#end $esc.newline #end ] }`; // Replace 'my-endpoint' with your Sagemaker Inference Endpoint new ApiGatewayToSageMakerEndpoint(this, 'test-apigw-sagemakerendpoint', { endpointName: 'my-endpoint', resourcePath: '{user_id}', requestMappingTemplate: requestTemplate });
Initializer
new ApiGatewayToSageMakerEndpoint(scope: Construct, id: string, props: ApiGatewayToSageMakerEndpointProps);
参数
-
scope
Construct
-
id
string
模式构建道具
名称 | 类型 | 描述 |
---|---|---|
养蜂网关道具? |
api.RestApiProps
|
用户提供的可选道具来覆盖 API Gateway REST API 的默认道具。 |
网关执行角色? |
iam.Role
|
API Gateway 用于调用 SageMaker 终端节点的 IAM 角色。如果未指定,则会创建一个默认角色,可访问endpointName 。 |
EndpointName |
string
|
已部署的 SageMaker 推理端点的名称。 |
ResourcenName? |
string
|
GET 方法可用的可选资源名称。 |
resourcePath |
string
|
GET 方法的资源路径。这里定义的变量可以在requestMappingTemplate 。 |
RequestMappingTemplate |
string
|
将 REST API 上收到的 GET 请求转换为 SageMaker 终端节点预期的 POST 请求的映射模板。 |
RequestMappingTemplate? |
string
|
用于转换从 SageMaker 终端节点收到的响应的可选映射模板。 |
日志组道具? |
logs.LogGroupProps
|
用户提供的可选道具,用于覆盖 CloudWatch Logs 日志组的默认道具。 |
模式属性
名称 | 类型 | 描述 |
---|---|---|
APIGateway |
api.LambdaRestApi
|
返回由模式创建的 API Gateway REST API 的实例。 |
养蜂网关角色 |
iam.Role
|
返回由 API Gateway REST API 模式创建的 IAM 角色的实例。 |
网关云监视角色 |
iam.Role
|
返回由模式创建的 IAM 角色的实例,该模式允许从 API Gateway REST API 访问日志记录到 CloudWatch。 |
网关日志组 |
logs.LogGroup
|
返回由 API Gateway REST API 访问日志发送到的模式创建的日志组的实例。 |
示例 API 使用量
注意: 每个 SageMaker 终端节点都是唯一的,API 的响应将取决于部署的模型。下面给出的示例假定这篇博客帖子
方法 | 请求路径 | 查询字符串 | SageMaker 行动 | 描述 |
---|---|---|---|---|
GET |
/321
|
items=101,131,162
|
sagemaker:InvokeEndpoint
|
检索特定用户和项目的预测。 |
默认设置
没有任何覆盖的此模式的开箱即用实现将设置以下默认值:
Amazon API Gateway
-
部署边缘优化的 API 终端节点
-
为 API Gateway 启用 CloudWatch 日志
-
为 API Gateway 配置最低权限访问 IAM 角色
-
将所有 API 方法的默认授权类型设置为 IAM
-
启用 X-Ray 跟踪
-
在将数据传递给 SageMaker 之前验证请求参数
Architecture
![Diagram showing Amazon CloudWatch, API Gateway, SageMaker endpoint, and IAM roles connections.](images/aws-apigateway-sagemakerendpoint.png)
GitHub
要查看此模式的代码、创建/查看问题和拉取请求等,请执行以下操作: | |
---|---|
![]() |
@aws-解决方案结构/AWS-阿比网关-传奇点 |