SageMaker Core
SageMaker Core (`sagemaker-core`) is a foundational Python package providing core functionalities and utilities for interacting with AWS SageMaker services. It serves as a key dependency for the higher-level `sagemaker` Python SDK, abstracting away low-level AWS interactions and offering base classes for SageMaker components. It is currently at version 2.7.1 and typically updates alongside the main `sagemaker` SDK, though its versioning is distinct from the `sagemaker` SDK's major version. The project is actively maintained on GitHub within the larger `aws/sagemaker-python-sdk` monorepo.
Warnings
- gotcha Prefer the high-level `sagemaker` SDK for most use cases. `sagemaker-core` is a low-level dependency; direct imports are generally only needed for advanced customizations or when explicitly building on its base components.
- gotcha The `sagemaker-core` package has its own versioning (e.g., 2.x.x) which does not directly align with the major version of the main `sagemaker` Python SDK (which also has 2.x.x and 3.x.x lines). Manually pinning `sagemaker-core` can lead to unexpected compatibility issues.
- gotcha Older versions of `sagemaker-core` (and thus older `sagemaker` SDK versions) have strict `protobuf` version constraints (e.g., `<4.0.0` for `sagemaker-core==2.7.1`). This can cause dependency conflicts when used in environments with other libraries requiring newer `protobuf` versions.
Install
-
pip install sagemaker-core -
pip install sagemaker
Imports
- Session
from sagemaker_core.session import Session
- Processor
from sagemaker_core.processor import Processor
Quickstart
import sagemaker_core.session
import os
# Initialize a SageMaker Session directly from sagemaker_core.
# This session can then be used to interact with AWS SageMaker services.
# For full functionality, you would typically use `sagemaker.session.Session`
# which provides more high-level abstractions.
try:
sagemaker_session = sagemaker_core.session.Session()
region = sagemaker_session.boto_region_name
account_id = sagemaker_session.account_id()
print(f"Successfully initialized sagemaker_core.session.Session.")
print(f"AWS Region: {region}")
print(f"AWS Account ID: {account_id}")
# Example: Get default S3 bucket for SageMaker artifacts
default_bucket = sagemaker_session.default_bucket()
print(f"Default S3 bucket: {default_bucket}")
# Example: Attempt to get the IAM execution role.
# This often works automatically in SageMaker Studio/Notebooks.
try:
role = sagemaker_session.get_execution_role()
print(f"Execution Role: {role}")
except Exception as e:
print(f"Could not get execution role (expected if not in SM Studio/notebook or roles not configured): {e}")
except Exception as e:
print(f"Error initializing sagemaker_core.session.Session: {e}")
print("Ensure AWS credentials are configured (e.g., via environment variables, ~/.aws/credentials, or IAM roles).")