aws-apigateway-sagemakerendpoint

All classes are under active development and subject to
non-backward compatible changes or removal in any future version.
These are not subject to the
Semantic Versioning
Language | Package |
---|---|
![]() |
aws_solutions_constructs.aws_apigateway_sagemakerendpoint
|
![]() |
@aws-solutions-constructs/aws-apigateway-sagemakerendpoint
|
![]() |
software.amazon.awsconstructs.services.apigatewaysagemakerendpoint
|
Overview
This AWS Solutions Construct implements an Amazon API Gateway REST API connected to an Amazon SageMaker endpoint.
Here is a minimal deployable pattern definition in 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);
Parameters
-
scope
Construct
-
id
string
Pattern Construct Props
Name | Type | Description |
---|---|---|
apiGatewayProps? |
api.RestApiProps
|
Optional user-provided props to override the default props for the API Gateway REST API. |
apiGatewayExecutionRole? |
iam.Role
|
IAM Role used by API Gateway to invoke the SageMaker endpoint. If not specified, a
default role is created with access to endpointName .
|
endpointName |
string
|
Name of the deployed SageMaker inference endpoint. |
resourceName? |
string
|
Optional resource name where the GET method will be available. |
resourcePath |
string
|
Resource path for the GET method. The variable defined here can be referenced in requestMappingTemplate .
|
requestMappingTemplate |
string
|
Mapping template to convert GET requests received on the REST API to POST requests expected by the SageMaker endpoint. |
responseMappingTemplate? |
string
|
Optional mapping template to convert responses received from the SageMaker endpoint. |
logGroupProps? |
logs.LogGroupProps
|
Optional user-provided props to override the default props for the CloudWatch Logs log group. |
Pattern Properties
Name | Type | Description |
---|---|---|
apiGateway |
api.LambdaRestApi
|
Returns an instance of the API Gateway REST API created by the pattern. |
apiGatewayRole |
iam.Role
|
Returns an instance of the IAM role created by the pattern for the API Gateway REST API. |
apiGatewayCloudWatchRole |
iam.Role
|
Returns an instance of the IAM role created by the pattern that enables access logging from the API Gateway REST API to CloudWatch. |
apiGatewayLogGroup |
logs.LogGroup
|
Returns an instance of the log group created by the pattern that API Gateway REST API access logs are sent to. |
Sample API Usage
Note: Each SageMaker endpoint is unique, and the response from the API will depend on the
deployed model. The example given below assumes the
sample from this blog post
Method | Request Path | Query String | SageMaker Action | Description |
---|---|---|---|---|
GET |
/321
|
items=101,131,162
|
sagemaker:InvokeEndpoint
|
Retrieves the predictions for a specific user and items. |
Default settings
Out-of-the-box implementation of this pattern without any overrides will set the following defaults:
Amazon API Gateway
-
Deploy an edge-optimized API endpoint
-
Enable CloudWatch logging for API Gateway
-
Configure least privilege access IAM role for API Gateway
-
Set the default authorizationType for all API methods to IAM
-
Enable X-Ray tracing
-
Validate request parameters before passing data to SageMaker
Architecture

GitHub
To view the code for this pattern, create/view issues and pull requests, and more: | |
---|---|
![]() |
@aws-solutions-constructs/aws-apigateway-sagemakerendpoint |