Setting Default Lifecycle Configurations
To set a Lifecycle Configuration as the default for your Domain or UserProfile programatically, you can create a new resource or update an existing resource. To associate a Lifecycle Configuration as a default, you'll first need to create a Lifecycle Configuration following the steps in Creating and Associating a Lifecycle Configuration. Default Lifecycle Configurations set up at the domain level are inherited by all users, while those set up at the user level are scoped to a specific user.
Note
User level defaults override defaults set up at the domain level.
To set up a default Lifecycle Configuration, it must be added to the
DefaultResourceSpec
of the appropriate app type. The behavior of your
Lifecycle Configuration depends on whether it is added to the
DefaultResourceSpec
of a JupyterServer or KernelGateway app.
JupyterServer apps: When added to the
DefaultResourceSpec
of a JupyterServer app, the default Lifecycle Configuration script runs automatically when the user logs into Studio for the first time or restarts Studio. This can be used to automate one-time set-up actions for the Studio developer environment, such as installing notebook extensions or setting up a GitHub repo. For an example of this, see Customize Amazon SageMaker Studio using Lifecycle Configurations. KernelGateway apps: When added to the
DefaultResourceSpec
of a KernelGateway app, Studio defaults to selecting the Lifecycle Configuration script from the Studio launcher. Users can launch a notebook or terminal with the default script selected or they can select a different one from the list of Lifecycle Configurations.
Note
A default KernelGateway Lifecycle Configuration specified in DefaultResourceSpec
applies to all KernelGateway images in the Studio Domain unless the user selects a
different script from the list presented in the Studio launcher. The default script
also runs if No Script
is selected by the user. For more information on
selecting a script, see Step 3: Launch an application with the
Lifecycle Configuration.
Associate a default Lifecycle Configuration when creating a new Domain or UserProfile
To associate a Lifecycle Configuration when creating a new Studio Domain or UserProfile, you need the ARN of the Lifecycle Configuration that you created. This ARN is passed to one of the following API calls:
For example, the following API call creates a new UserProfile with an associated Lifecycle Configuration.
aws sagemaker create-user-profile --domain-id
<DOMAIN-ID>
\ --user-profile-name<USER-PROFILE-NAME>
\ --region<REGION>
\ --user-settings '{ "KernelGatewayAppSettings": { "DefaultResourceSpec": { "InstanceType": "ml.t3.medium", "LifecycleConfigArn": "<LIFECYCLE-CONFIGURATION-ARN>
" } } }'
Associate a default Lifecycle Configuration when updating a Domain or UserProfile
To associate a Lifecycle Configuration when updating an existing Studio Domain or UserProfile, you need the ARN of the Lifecycle Configuration that you created. This ARN is passed to one of the following API calls:
The Lifecycle Configuration ARN should be placed in 2 places, the
DefaultResourceSpec
and the LifecycleConfigArns
list in
KernelGatewayAppSettings
. For example, the following API call updates a
UserProfile with an associated Lifecycle Configuration.
aws sagemaker update-user-profile --domain-id
<DOMAIN-ID>
\ --user-profile-name<USER-PROFILE-NAME>
\ --region<REGION>
\ --user-settings '{ "KernelGatewayAppSettings": { "DefaultResourceSpec": { "InstanceType": "ml.t3.medium", "LifecycleConfigArn": "<LIFECYCLE-CONFIGURATION-ARN>
" } } }'