:py:mod:`airflow.providers.amazon.aws.example_dags.example_sagemaker`
=====================================================================

.. py:module:: airflow.providers.amazon.aws.example_dags.example_sagemaker


Module Contents
---------------


Functions
~~~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.example_dags.example_sagemaker.upload_dataset_to_s3
   airflow.providers.amazon.aws.example_dags.example_sagemaker.build_and_upload_docker_image
   airflow.providers.amazon.aws.example_dags.example_sagemaker.cleanup



Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.example_dags.example_sagemaker.PROJECT_NAME
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TIMESTAMP
   airflow.providers.amazon.aws.example_dags.example_sagemaker.S3_BUCKET
   airflow.providers.amazon.aws.example_dags.example_sagemaker.RAW_DATA_S3_KEY
   airflow.providers.amazon.aws.example_dags.example_sagemaker.INPUT_DATA_S3_KEY
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TRAINING_OUTPUT_S3_KEY
   airflow.providers.amazon.aws.example_dags.example_sagemaker.PREDICTION_OUTPUT_S3_KEY
   airflow.providers.amazon.aws.example_dags.example_sagemaker.PROCESSING_LOCAL_INPUT_PATH
   airflow.providers.amazon.aws.example_dags.example_sagemaker.PROCESSING_LOCAL_OUTPUT_PATH
   airflow.providers.amazon.aws.example_dags.example_sagemaker.MODEL_NAME
   airflow.providers.amazon.aws.example_dags.example_sagemaker.PROCESSING_JOB_NAME
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TRAINING_JOB_NAME
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TRANSFORM_JOB_NAME
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TUNING_JOB_NAME
   airflow.providers.amazon.aws.example_dags.example_sagemaker.ROLE_ARN
   airflow.providers.amazon.aws.example_dags.example_sagemaker.ECR_REPOSITORY
   airflow.providers.amazon.aws.example_dags.example_sagemaker.REGION
   airflow.providers.amazon.aws.example_dags.example_sagemaker.DATASET
   airflow.providers.amazon.aws.example_dags.example_sagemaker.SAMPLE_SIZE
   airflow.providers.amazon.aws.example_dags.example_sagemaker.KNN_IMAGE_URI
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TASK_TIMEOUT
   airflow.providers.amazon.aws.example_dags.example_sagemaker.RESOURCE_CONFIG
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TRAINING_DATA_SOURCE
   airflow.providers.amazon.aws.example_dags.example_sagemaker.SAGEMAKER_PROCESSING_JOB_CONFIG
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TRAINING_CONFIG
   airflow.providers.amazon.aws.example_dags.example_sagemaker.MODEL_CONFIG
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TRANSFORM_CONFIG
   airflow.providers.amazon.aws.example_dags.example_sagemaker.TUNING_CONFIG
   airflow.providers.amazon.aws.example_dags.example_sagemaker.PREPROCESS_SCRIPT
   airflow.providers.amazon.aws.example_dags.example_sagemaker.preprocess_raw_data


.. py:data:: PROJECT_NAME
   :annotation: = iris

   

.. py:data:: TIMESTAMP
   :annotation: = {{ ts_nodash }}

   

.. py:data:: S3_BUCKET
   

   

.. py:data:: RAW_DATA_S3_KEY
   

   

.. py:data:: INPUT_DATA_S3_KEY
   

   

.. py:data:: TRAINING_OUTPUT_S3_KEY
   

   

.. py:data:: PREDICTION_OUTPUT_S3_KEY
   

   

.. py:data:: PROCESSING_LOCAL_INPUT_PATH
   :annotation: = /opt/ml/processing/input

   

.. py:data:: PROCESSING_LOCAL_OUTPUT_PATH
   :annotation: = /opt/ml/processing/output

   

.. py:data:: MODEL_NAME
   

   

.. py:data:: PROCESSING_JOB_NAME
   

   

.. py:data:: TRAINING_JOB_NAME
   

   

.. py:data:: TRANSFORM_JOB_NAME
   

   

.. py:data:: TUNING_JOB_NAME
   

   

.. py:data:: ROLE_ARN
   

   

.. py:data:: ECR_REPOSITORY
   

   

.. py:data:: REGION
   

   

.. py:data:: DATASET
   :annotation: = Multiline-String

    .. raw:: html

        <details><summary>Show Value</summary>

    .. code-block:: text
        :linenos:

        
                5.1,3.5,1.4,0.2,Iris-setosa
                4.9,3.0,1.4,0.2,Iris-setosa
                7.0,3.2,4.7,1.4,Iris-versicolor
                6.4,3.2,4.5,1.5,Iris-versicolor
                4.9,2.5,4.5,1.7,Iris-virginica
                7.3,2.9,6.3,1.8,Iris-virginica
                

    .. raw:: html

        </details>

   

.. py:data:: SAMPLE_SIZE
   

   

.. py:data:: KNN_IMAGE_URI
   :annotation: = 174872318107.dkr.ecr.us-west-2.amazonaws.com/knn

   

.. py:data:: TASK_TIMEOUT
   

   

.. py:data:: RESOURCE_CONFIG
   

   

.. py:data:: TRAINING_DATA_SOURCE
   

   

.. py:data:: SAGEMAKER_PROCESSING_JOB_CONFIG
   

   

.. py:data:: TRAINING_CONFIG
   

   

.. py:data:: MODEL_CONFIG
   

   

.. py:data:: TRANSFORM_CONFIG
   

   

.. py:data:: TUNING_CONFIG
   

   

.. py:data:: PREPROCESS_SCRIPT
   

   

.. py:function:: upload_dataset_to_s3()

   Uploads the provided dataset to a designated Amazon S3 bucket.


.. py:function:: build_and_upload_docker_image()

   We need a Docker image with the following requirements:
     - Has numpy, pandas, requests, and boto3 installed
     - Has our data preprocessing script mounted and set as the entry point


.. py:function:: cleanup()


.. py:data:: preprocess_raw_data
   

   

