{"library":"sagemaker-mlops","title":"SageMaker MLOps","description":"The `sagemaker-mlops` library provides modular, reusable components for building MLOps pipelines on Amazon SageMaker. It simplifies the orchestration of machine learning workflows, including model building, training, evaluation, and deployment. The current version is 1.7.1, and it receives regular updates in line with SageMaker SDK and AWS service evolution.","language":"python","status":"active","last_verified":"Thu May 21","install":{"commands":["pip install sagemaker-mlops"],"cli":null},"imports":["from sagemaker_mlops.model_build import ModelBuild","from sagemaker_mlops.pipelines import MLFlowPipeline","from sagemaker_mlops.utils import get_execution_role"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport sagemaker\nfrom sagemaker_mlops.model_build import ModelBuild\nfrom sagemaker_mlops.utils import get_execution_role\n\n# Configure AWS environment (replace with your actual values or env vars)\naws_region = os.environ.get(\"AWS_REGION\", \"us-east-1\")\naws_account_id = os.environ.get(\"AWS_ACCOUNT_ID\", \"123456789012\") # Placeholder\nsagemaker_execution_role_arn = os.environ.get(\n    \"SAGEMAKER_ROLE_ARN\", f\"arn:aws:iam::{aws_account_id}:role/service-role/AmazonSageMaker-ExecutionRole-20231201T123456\"\n) # Ensure this role has SageMaker, S3, ECR permissions\n\n# Initialize SageMaker session\ntry:\n    sagemaker_session = sagemaker.Session(\n        sagemaker_client=sagemaker.boto_session.client(\"sagemaker\", region_name=aws_region),\n        default_bucket=f\"sagemaker-mlops-quickstart-{aws_account_id}-{aws_region}\" # Unique bucket name\n    )\nexcept Exception as e:\n    print(f\"Warning: Could not create SageMaker session directly, possibly due to missing credentials. Error: {e}\")\n    # Fallback for demonstration if not in an AWS environment\n    class MockSageMakerSession:\n        def default_bucket(self): return \"mock-sagemaker-bucket\"\n        def default_bucket_prefix(self): return \"mock-prefix\"\n        def upload_data(self, *args, **kwargs): pass\n    sagemaker_session = MockSageMakerSession()\n\n\n# Get SageMaker execution role (prioritize env var or default for local testing)\ntry:\n    # This function works best within a SageMaker Notebook or Studio environment\n    role = get_execution_role(sagemaker_session)\nexcept ValueError:\n    print(\"Could not retrieve SageMaker execution role from session. Using provided ARN.\")\n    role = sagemaker_execution_role_arn\n    if \"123456789012\" in role:\n        print(\"WARNING: Using placeholder SageMaker execution role ARN. Please update 'SAGEMAKER_ROLE_ARN' env var.\")\n\n# Define an example ModelBuild component for a SageMaker Pipeline\n# This component encapsulates a SageMaker Estimator configuration\nmodel_build = ModelBuild(\n    sagemaker_session=sagemaker_session,\n    role=role,\n    base_job_name=\"my-training-job\",\n    instance_type=\"ml.m5.xlarge\",\n    instance_count=1,\n    image_uri=sagemaker.image_uris.get_training_image(aws_region, \"pytorch\", \"1.13.1\", py_version=\"py39\"),\n    hyperparameters={\n        \"epochs\": 10,\n        \"batch_size\": 32,\n    },\n    input_data_config=[\n        sagemaker.TrainingInput(\n            s3_data=f\"s3://{sagemaker_session.default_bucket()}/data/train/\",\n            content_type=\"text/csv\",\n            s3_data_type=\"S3Prefix\"\n        )\n    ],\n    output_data_config={\n        \"s3_output_location\": f\"s3://{sagemaker_session.default_bucket()}/output/\"\n    },\n    metrics_definitions=[\n        {\"Name\": \"train:loss\", \"Regex\": \".*loss=([0-9\\\\.]+).*\"},\n    ]\n)\n\nprint(f\"Successfully instantiated ModelBuild component:\")\nprint(f\"- Role: {model_build.role}\")\nprint(f\"- Instance Type: {model_build.instance_type}\")\nprint(f\"- Image URI: {model_build.image_uri}\")\nprint(f\"- Hyperparameters: {model_build.hyperparameters}\")\nprint(\"\\nThis 'model_build' object can now be used as a step within a SageMaker Pipeline.\")","lang":"python","description":"This quickstart demonstrates how to instantiate a `ModelBuild` component. This component defines the configuration for a SageMaker training job, which is typically used as a step within a larger SageMaker Pipeline. It initializes a SageMaker session and retrieves an execution role, showing how to configure it for local testing or within an AWS SageMaker environment. Placeholder values are used for AWS account ID and role ARN, which must be replaced with actual, valid credentials for execution.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-21","installed_version":null,"pypi_latest":"1.12.0","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"sagemaker-mlops","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}