Skip to content

EndpointConfig ​

The EndpointConfig resource lets you manage AWS SageMaker EndpointConfigs for deploying machine learning models at scale.

Minimal Example ​

Create a basic EndpointConfig with required properties and one optional property.

ts
import AWS from "alchemy/aws/control";

const basicEndpointConfig = await AWS.SageMaker.EndpointConfig("basic-endpoint-config", {
  ProductionVariants: [{
    VariantName: "AllTraffic",
    ModelName: "my-model",
    InitialInstanceCount: 1,
    InstanceType: "ml.m5.large"
  }],
  DataCaptureConfig: {
    CaptureOptions: [{ CaptureMode: "Input" }],
    DestinationS3Uri: "s3://my-data-capture-bucket/",
    CaptureContentTypeHeader: {
      CsvContentTypes: ["text/csv"],
      JsonContentTypes: ["application/json"]
    }
  }
});

Advanced Configuration ​

Configure an EndpointConfig with shadow production variants and network isolation.

ts
const advancedEndpointConfig = await AWS.SageMaker.EndpointConfig("advanced-endpoint-config", {
  ProductionVariants: [{
    VariantName: "MainTraffic",
    ModelName: "my-main-model",
    InitialInstanceCount: 2,
    InstanceType: "ml.m5.large"
  }],
  ShadowProductionVariants: [{
    VariantName: "ShadowTraffic",
    ModelName: "my-shadow-model",
    InitialInstanceCount: 1,
    InstanceType: "ml.m5.large"
  }],
  EnableNetworkIsolation: true,
  KmsKeyId: "arn:aws:kms:us-east-1:123456789012:key/example-key-id"
});

Custom VPC Configuration ​

Create an EndpointConfig that specifies a VPC configuration for enhanced security.

ts
const vpcEndpointConfig = await AWS.SageMaker.EndpointConfig("vpc-endpoint-config", {
  ProductionVariants: [{
    VariantName: "VPCConfiguredTraffic",
    ModelName: "my-vpc-model",
    InitialInstanceCount: 1,
    InstanceType: "ml.m5.large"
  }],
  VpcConfig: {
    SecurityGroupIds: ["sg-0123456789abcdef0"],
    Subnets: ["subnet-0123456789abcdef0", "subnet-0fedcba9876543210"]
  }
});

Async Inference Configuration ​

Set up an EndpointConfig with asynchronous inference capabilities.

ts
const asyncInferenceEndpointConfig = await AWS.SageMaker.EndpointConfig("async-inference-endpoint-config", {
  ProductionVariants: [{
    VariantName: "AsyncInferenceTraffic",
    ModelName: "my-async-model",
    InitialInstanceCount: 1,
    InstanceType: "ml.m5.large"
  }],
  AsyncInferenceConfig: {
    OutputConfig: {
      S3OutputPath: "s3://my-async-output-bucket/",
      KmsKeyId: "arn:aws:kms:us-east-1:123456789012:key/example-key-id"
    },
    ClientId: "my-client-id"
  }
});