

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

# AWS-阿皮盖特路-萨玛凯伦点
<a name="aws-apigateway-sagemakerendpoint"></a>

![](http://docs.aws.amazon.com/zh_cn/solutions/latest/constructs/images/experimental.png)


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

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


|  **语言**  |  **程序包**  | 
| --- | --- | 
|  ![](http://docs.aws.amazon.com/zh_cn/solutions/latest/constructs/images/python.png) Python  |  aws\_solutions\_constructs.aws\_apigateway\_sagemakerendpoint  | 
|  ![](http://docs.aws.amazon.com/zh_cn/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-apigateway-sagemakerendpoint  | 
|  ![](http://docs.aws.amazon.com/zh_cn/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.apigatewaysagemakerendpoint  | 

## Overview
<a name="overview-33"></a>

 此 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
<a name="initializer-33"></a>

```
new ApiGatewayToSageMakerEndpoint(scope: Construct, id: string, props: ApiGatewayToSageMakerEndpointProps);
```

 *参数* 
+  scope[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html) 
+  id`string` 
+  props[`ApiGatewayToSageMakerEndpointProps`](#pattern-construct-props-33) 

## 模式构建道具
<a name="pattern-construct-props-33"></a>


|  **名称**  |  **类型**  |  **描述**  | 
| --- | --- | --- | 
|  养蜂网关道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html)  |  用户提供的可选道具来覆盖 API Gateway REST API 的默认道具。 | 
|  网关执行角色？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  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 终端节点收到的响应的可选映射模板。 | 
|  日志组道具？  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  用户提供的可选道具，用于覆盖 CloudWatch Logs 日志组的默认道具。 | 

## 模式属性
<a name="pattern-properties-33"></a>


|  **名称**  |  **类型**  |  **描述**  | 
| --- | --- | --- | 
|  APIGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html)  |  返回由模式创建的 API Gateway REST API 的实例。 | 
|  养蜂网关角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  返回由 API Gateway REST API 模式创建的 IAM 角色的实例。 | 
|  网关云监视角色  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  返回由模式创建的 IAM 角色的实例，该模式允许从 API Gateway REST API 访问日志记录到 CloudWatch。 | 
|  网关日志组  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  返回由 API Gateway REST API 访问日志发送到的模式创建的日志组的实例。 | 

## 示例 API 使用量
<a name="sample-api-usage"></a>

**注意：** 每个 SageMaker 终端节点都是唯一的，API 的响应将取决于部署的模型。下面给出的示例假定[这篇博客帖子](https://aws.amazon.com/blogs/machine-learning/creating-a-machine-learning-powered-rest-api-with-amazon-api-gateway-mapping-templates-and-amazon-sagemaker/)。有关如何实现的参考，请参阅[综合性网关-萨马克信息点-覆盖 .ts](https://github.com/awslabs/aws-solutions-constructs/blob/f02997ea4fa6515fc4429771d21821d2c26a8584/source/patterns/%40aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.apigateway-sagemakerendpoint-overwrite.ts)。


|  **方法**  |  **请求路径**  |  **查询字符串**  |  **SageMaker 行动**  |  **描述**  | 
| --- | --- | --- | --- | --- | 
|  GET  |  /321  |  items=101,131,162  |  sagemaker:InvokeEndpoint  |  检索特定用户和项目的预测。 | 

## 默认设置
<a name="default-settings-33"></a>

 没有任何覆盖的此模式的开箱即用实现将设置以下默认值：

### Amazon API Gateway
<a name="amazon-api-gateway-33"></a>
+  部署边缘优化的 API 终端节点 
+  为 API Gateway 启用 CloudWatch 日志 
+  为 API Gateway 配置最低权限访问 IAM 角色 
+  将所有 API 方法的默认授权类型设置为 IAM 
+  启用 X-Ray 跟踪 
+  在将数据传递给 SageMaker 之前验证请求参数 

## Architecture
<a name="architecture-33"></a>

![](http://docs.aws.amazon.com/zh_cn/solutions/latest/constructs/images/aws-apigateway-sagemakerendpoint.png)


## GitHub
<a name="github-33"></a>

[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/solutions/latest/constructs/aws-apigateway-sagemakerendpoint.html)