AWS SageMaker Connector Guide

The AWS SageMaker connector helps Tealfabric workflows manage SageMaker control-plane resources: training jobs, inference endpoints, and ML pipelines. Requests are SigV4-signed JSON POST calls to https://sagemaker.{region}.amazonaws.com/ with x-amz-target headers (SageMaker_20170724.{Action}).

Document information
FieldValue
Canonical URL/docs/04_connecting-systems/connectors/a/aws-sagemaker
Version (published date)2026-05-08
Tagsconnectors, reference, aws-sagemaker
Connector IDaws-sagemaker-1.0.0

AWS SageMaker connector flow showing SigV4-authenticated control-plane API calls for training jobs, endpoints, and pipelines.

Configuration and credentials

Before configuring this connector, create an IAM principal with only the SageMaker permissions required for your use case (for example sagemaker:CreateTrainingJob, sagemaker:CreateEndpoint, sagemaker:CreatePipeline, and sagemaker:ListTrainingJobs for connection tests). The connector signs requests with AWS Signature Version 4, so valid access keys and a region are required.

  • access_key_id (required): AWS access key ID.
  • secret_access_key (required): AWS secret access key.
  • region (required): AWS region, for example us-east-1.
  • timeout_seconds (optional): Request timeout in seconds (default 30).

Run test after configuration to verify credentials and region access via ListTrainingJobs.

Create a training job with create_training_job

Use create_training_job to start a SageMaker training job (CreateTrainingJob). Provide training_job_name, role_arn, and optional algorithm_specification, input_data_config, and output_data_config payloads matching the SageMaker API.

const baseUrl = "https://api.example.com/api/v1";
const tenantId = "<TENANT_ID>";
const apiKey = "<API_KEY>";

async function startTrainingJob(integrationId: string) {
  const response = await fetch(`${baseUrl}/integrations/${encodeURIComponent(integrationId)}/execute`, {
    method: "POST",
    headers: {
      "X-API-Key": apiKey,
      "X-Tenant-ID": tenantId,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      operation: "create_training_job",
      training_job_name: "fraud-model-v3",
      role_arn: "arn:aws:iam::123456789012:role/SageMakerExecutionRole",
      algorithm_specification: {
        TrainingImage: "763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:1.13.1-cpu-py39",
        TrainingInputMode: "File",
      },
      output_data_config: {
        S3OutputPath: "s3://ml-artifacts/training/fraud-model-v3/",
      },
    }),
  });
  if (!response.ok) throw new Error(`Request failed: ${response.status}`);
  return response.json();
}
curl -X POST "https://api.example.com/api/v1/integrations/<ENTITY_ID>/execute" \
  -H "X-API-Key: <API_KEY>" \
  -H "X-Tenant-ID: <TENANT_ID>" \
  -H "Content-Type: application/json" \
  -d '{
    "operation": "create_training_job",
    "training_job_name": "fraud-model-v3",
    "role_arn": "arn:aws:iam::123456789012:role/SageMakerExecutionRole",
    "algorithm_specification": {
      "TrainingImage": "763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:1.13.1-cpu-py39",
      "TrainingInputMode": "File"
    },
    "output_data_config": {
      "S3OutputPath": "s3://ml-artifacts/training/fraud-model-v3/"
    }
  }'
{
  "success": true,
  "data": {
    "success": true,
    "training_job_arn": "arn:aws:sagemaker:us-east-1:123456789012:training-job/fraud-model-v3",
    "data": {
      "TrainingJobArn": "arn:aws:sagemaker:us-east-1:123456789012:training-job/fraud-model-v3"
    }
  }
}

Deploy an endpoint with create_endpoint

Use create_endpoint to create an inference endpoint (CreateEndpoint) from an existing endpoint configuration.

async function deployEndpoint(integrationId: string) {
  const response = await fetch(`${baseUrl}/integrations/${encodeURIComponent(integrationId)}/execute`, {
    method: "POST",
    headers: {
      "X-API-Key": apiKey,
      "X-Tenant-ID": tenantId,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      operation: "create_endpoint",
      endpoint_name: "fraud-risk-prod",
      endpoint_config_name: "fraud-risk-prod-config",
    }),
  });
  if (!response.ok) throw new Error(`Request failed: ${response.status}`);
  return response.json();
}
{
  "success": true,
  "data": {
    "success": true,
    "endpoint_arn": "arn:aws:sagemaker:us-east-1:123456789012:endpoint/fraud-risk-prod",
    "data": {
      "EndpointArn": "arn:aws:sagemaker:us-east-1:123456789012:endpoint/fraud-risk-prod"
    }
  }
}

Create a pipeline with create_pipeline

Use create_pipeline to register a SageMaker pipeline definition (CreatePipeline). Pass the pipeline definition as a JSON string in pipeline_definition.

{
  "success": true,
  "data": {
    "success": true,
    "pipeline_arn": "arn:aws:sagemaker:us-east-1:123456789012:pipeline/fraud-retrain",
    "data": {
      "PipelineArn": "arn:aws:sagemaker:us-east-1:123456789012:pipeline/fraud-retrain"
    }
  }
}

Validate configuration with test

The test operation calls ListTrainingJobs with an empty request body to verify IAM credentials, region, and SageMaker API access.

{
  "success": true,
  "data": {
    "success": true,
    "message": "SageMaker connection test successful",
    "details": {
      "region": "us-east-1"
    }
  }
}

Reliability guidance

Most production issues come from IAM permission gaps, region mismatches, or missing prerequisite resources (for example endpoint configurations before create_endpoint). Validate credentials with test before rollout and implement retries with backoff for transient throttling and timeout responses.

Additional resources