Lifecycle configuration creation
This topic includes instructions for creating and associating a lifecycle configuration with JupyterLab. You use the AWS Command Line Interface (AWS CLI) or the AWS Management Console to automate customization for your JupyterLab environment.
Lifecycle configurations are shell scripts triggered by JupyterLab lifecycle events, such as starting a new JupyterLab notebook. For more information about lifecycle configurations, see Lifecycle configurations with JupyterLab.
Create a lifecycle configuration (AWS CLI)
Learn how to create a lifecycle configuration using the AWS Command Line Interface (AWS CLI) to automate customization for your Studio environment.
Prerequisites
Before you begin, complete the following prerequisites:
-
Update the AWS CLI by following the steps in Installing the current AWS CLI Version.
-
From your local machine, run
aws configure
and provide your AWS credentials. For information about AWS credentials, see Understanding and getting your AWS credentials. -
Onboard to Amazon SageMaker domain. For conceptual information, see Amazon SageMaker domain overview. For a quickstart guide, see Use quick setup for Amazon SageMaker.
Step 1: Create a lifecycle configuration
The following procedure shows how to create a lifecycle configuration script that
prints Hello World
.
Note
Each script can have up to 16,384 characters.
-
From your local machine, create a file named
my-script.sh
with the following content:#!/bin/bash set -eux echo 'Hello World!'
-
Use the following to convert your
my-script.sh
file into base64 format. This requirement prevents errors that occur from spacing and line break encoding.LCC_CONTENT=`openssl base64 -A -in my-script.sh`
-
Create a lifecycle configuration for use with Studio. The following command creates a lifecycle configuration that runs when you launch an associated
JupyterLab
application:aws sagemaker create-studio-lifecycle-config \ --region
region
\ --studio-lifecycle-config-namemy-jl-lcc
\ --studio-lifecycle-config-content $LCC_CONTENT \ --studio-lifecycle-config-app-type JupyterLabNote the ARN of the newly created lifecycle configuration that is returned. This ARN is required to attach the lifecycle configuration to your application.
Step 2: Attach the lifecycle configuration to your Amazon SageMaker domain (domain) and user profile
To attach the lifecycle configuration, you must update the UserSettings
for your domain or user profile. Lifecycle configuration scripts that are associated at the domain level are inherited by
all users. However, scripts that are associated at the user profile level are scoped to
a specific user.
You can create a new user profile, domain, or space with a lifecycle configuration attached by using the following commands:
The following command creates a user profile with a lifecycle configuration. Add the lifecycle configuration ARN from the preceding step to the
JupyterLabAppSettings
of the user. You can add multiple lifecycle
configurations at the same time by passing a list of them. When a
user launches a JupyterLab application with the AWS CLI, they can specify a lifecycle configuration instead of using the default one.
The lifecycle configuration that the user
passes must belong to the list of lifecycle configurations in
JupyterLabAppSettings
.
# Create a new UserProfile aws sagemaker create-user-profile --domain-id
domain-id
\ --user-profile-nameuser-profile-name
\ --regionregion
\ --user-settings '{ "JupyterLabAppSettings": { "LifecycleConfigArns": [lifecycle-configuration-arn-list
] } }'
Create a lifecycle configuration (Console)
Learn how to create a lifecycle configuration using the AWS Management Console to automate customization for your Studio environment.
Step 1: Create a lifecycle configuration
Use the following procedure to create a lifecycle configuration script that
prints Hello World
.
To create a lifecycle configuration
Open the Amazon SageMaker console at https://console.aws.amazon.com/sagemaker/
. -
On the left navigation pane, choose Admin configurations.
-
Under Admin configurations, choose Lifecycle configurations.
-
Choose the JupyterLab tab.
-
Choose Create configuration.
-
For Name, specify the name of the lifecycle configuration.
-
For the text box under Scripts, specify the following lifecycle configuration:
#!/bin/bash set -eux echo 'Hello World!'
-
Choose Create configuration.
Step 2: Attach the lifecycle configuration to your Amazon SageMaker domain (domain) and user profile
Lifecycle configuration scripts associated at the domain level are inherited by all users. However, scripts that are associated at the user profile level are scoped to a specific user.
You can attach multiple lifecycle configurations to a domain or user profile for JupyterLab.
Use the following procedure to attach a lifecycle configuration to a domain.
To attach a lifecycle configuration to a domain
Open the Amazon SageMaker console at https://console.aws.amazon.com/sagemaker/
. -
On the left navigation pane, choose Admin configurations.
-
Under Admin configurations, choose domains.
-
From the list of domains, select the domain to attach the lifecycle configuration to.
-
From the Domain details, choose the Environment tab.
-
Under Lifecycle configurations for personal Studio apps, choose Attach.
-
Under Source, choose Existing configuration.
-
Under Studio lifecycle configurations, select the lifecycle configuration that you created in the previous step.
-
Select Attach to domain.
Use the following procedure to attach a lifecycle configuration to a user profile.
To attach a lifecycle configuration to a user profile
Open the Amazon SageMaker console at https://console.aws.amazon.com/sagemaker/
. -
On the left navigation pane, choose Admin configurations.
-
Under Admin configurations, choose domains.
-
From the list of domains, select the domain that contains the user profile to attach the lifecycle configuration to.
-
Under User profiles, select the user profile.
-
From the User Details page, choose Edit.
-
On the left navigation, choose Studio settings.
-
Under Lifecycle configurations attached to user, choose Attach.
-
Under Source, choose Existing configuration.
-
Under Studio lifecycle configurations, select the lifecycle configuration that you created in the previous step.
-
Choose Attach to user profile.