AWS-阿皮盖特路-萨玛凯伦点 - AWS 解决方案构造

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS-阿皮盖特路-萨玛凯伦点

Two labels: "STABILITY" in gray and "EXPERIMENTAL" in orange.

所有类都处于积极开发之中,并且在任何未来版本中都会受到非向后兼容的更改或删除。这些不受语义版本控制模型。这意味着,虽然您可以使用它们,但在升级到此软件包的较新版本时,您可能需要更新源代码。

注意: 为确保正确的功能,您项目中的 AWS 解决方案构造软件包和 AWS CDK 包必须是相同的版本。

语言 程序包
Python
aws_solutions_constructs.aws_apigateway_sagemakerendpoint
TypeScript
@aws-solutions-constructs/aws-apigateway-sagemakerendpoint
Java
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);

参数

模式构建道具

名称 类型 描述
养蜂网关道具? 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 的响应将取决于部署的模型。下面给出的示例假定这篇博客帖子。有关如何实现的参考,请参阅综合性网关-萨马克信息点-覆盖 .ts

方法 请求路径 查询字符串 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.

GitHub

要查看此模式的代码、创建/查看问题和拉取请求等,请执行以下操作:
Circular icon with a graduation cap symbol representing education or learning.
@aws-解决方案结构/AWS-阿比网关-传奇点