2

I want to use lifecycle configuration in Sagemaker studio so that on start of user's notebook it runs the given lifecycle configuration.

My lifecycle configuration will have shell script which will launch cronjob having python script to send attached notebook's running duration.

#!/bin/bash
set -e

# PARAMETERS
IDLE_TIME=120

echo "Fetching the autostop script"
aws s3 cp s3://testing-west2/duration-check.py .
aws s3 cp s3://testing-west2/on-start.sh .

echo "Starting the SageMaker autostop script in cron"
(crontab -l 2>/dev/null; echo "*/1 * * * * /bin/bash -c '/usr/bin/python3 $DIR/duration-check.py --time ${IDLE_TIME} | tee -a /home/ec2-user/SageMaker/auto-stop-idle.log'") | crontab -

echo "Changing cloudwatch configuration"
cat $DIR/on-start.sh | sudo bash -s auto-stop-idle /home/ec2-user/SageMaker/auto-stop-idle.log

Referred lifecycle configuration from here: https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/tree/master/scripts/auto-stop-idle

1 Answers1

2

Original source

You can follow this tutorial:

https://modelpredict.com/sagemaker-stop-your-instances-when-idle/

Summary

Basically, you have to go to the notebook instance where you want to apply the Lifecycle Configuration, stop it, and go to: Additional configuration > Lifecycle Configuration > [Select your script].

After this, you have to configure the proper permissions for the Lifecycle Configuration script to stop your notebook instance. To do so, create a new policy, and paste the following code:

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Sid": "VisualEditor0",
          "Effect": "Allow",
          "Action": [
              "sagemaker:StopNotebookInstance",
              "sagemaker:DescribeNotebookInstance"
          ],
          "Resource": "*"
      }
  ]
}

After this, attach it to your Notebook instance and it's done!

marsolmos
  • 121
  • 2
  • 2
    I believe the question was how does one attach the particular Lifecycle Configuration to a notebook created within the sagemaker studio environment. This explains how to do that outside the studio environment – neanderslob Jun 07 '21 at 20:04