AWS::SageMaker::NotebookInstanceLifecycleConfig - AWS CloudFormation (original) (raw)
The AWS::SageMaker::NotebookInstanceLifecycleConfig resource creates shell scripts that run when you create and/or start a notebook instance. For information about notebook instance lifecycle configurations, see Customize a Notebook Instance in the Amazon SageMaker Developer Guide.
Syntax
To declare this entity in your CloudFormation template, use the following syntax:
Properties
NotebookInstanceLifecycleConfigName
The name of the lifecycle configuration.
Required: No
Type: String
Pattern: [a-zA-Z0-9](-*[a-zA-Z0-9])*
Minimum: 0
Maximum: 63
Update requires: Replacement
OnCreate
A shell script that runs only once, when you create a notebook instance. The shell script must be a base64-encoded string.
Required: No
Type: Array of NotebookInstanceLifecycleHook
Minimum: 0
Maximum: 1
Update requires: No interruption
OnStart
A shell script that runs every time you start a notebook instance, including when you create the notebook instance. The shell script must be a base64-encoded string.
Required: No
Type: Array of NotebookInstanceLifecycleHook
Minimum: 0
Maximum: 1
Update requires: No interruption
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the Amazon Resource Name (ARN) of the endpoint configuration, such asarn:aws:sagemaker:us-west-2:012345678901:notebook-instance-lifecycle-config/mylifecycleconfig
For more information about using the Ref function, see Ref.
Fn::GetAtt
The Fn::GetAtt intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.
For more information about using the Fn::GetAtt intrinsic function, see Fn::GetAtt.
NotebookInstanceLifecycleConfigName
The name of the lifecycle configuration, such as MyLifecycleConfig.
Examples
SageMaker NotebookInstanceLifecycleConfig Example
The following example creates a notebook instance with an associated lifecycle configuration.
JSON
{
"Description": "Basic NotebookInstance test",
"Resources": {
"BasicNotebookInstance": {
"Type": "AWS::SageMaker::NotebookInstance",
"Properties": {
"InstanceType": "ml.t2.medium",
"RoleArn": { "Fn::GetAtt" : [ "ExecutionRole", "Arn" ] },
"LifecycleConfigName": { "Fn::GetAtt" : [ "BasicNotebookInstanceLifecycleConfig", "NotebookInstanceLifecycleConfigName" ] }
},
"BasicNotebookInstanceLifecycleConfig": {
"Type": "AWS::SageMaker::NotebookInstanceLifecycleConfig",
"Properties": {
"OnStart": [
{
"Content": {
"Fn::Base64": "echo 'hello'"
}
}
]
}
},
"ExecutionRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17" ,
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"sagemaker.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole"
]
}
]
},
"Path": "/",
"Policies": [
{
"PolicyName": "root",
"PolicyDocument": {
"Version": "2012-10-17" ,
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
}
]
}
}
},
"Outputs": {
"BasicNotebookInstanceId": {
"Value": { "Ref" : "BasicNotebookInstance" }
},
"BasicNotebookInstanceLifecycleConfigId": {
"Value": { "Ref" : "BasicNotebookInstanceLifecycleConfig" }
}
}
}
}YAML
Description: "Basic NotebookInstance test"
Resources:
BasicNotebookInstance:
Type: "AWS::SageMaker::NotebookInstance"
Properties:
InstanceType: "ml.t2.medium"
RoleArn: !GetAtt ExecutionRole.Arn
LifecycleConfigName: !GetAtt BasicNotebookInstanceLifecycleConfig.NotebookInstanceLifecycleConfigName
BasicNotebookInstanceLifecycleConfig:
Type: "AWS::SageMaker::NotebookInstanceLifecycleConfig"
Properties:
OnStart:
- Content:
Fn::Base64: "echo 'hello'"
ExecutionRole:
Type: "AWS::IAM::Role"
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
-
Effect: "Allow"
Principal:
Service:
- "sagemaker.amazonaws.com"
Action:
- "sts:AssumeRole"
Path: "/"
Policies:
-
PolicyName: "root"
PolicyDocument:
Version: "2012-10-17"
Statement:
-
Effect: "Allow"
Action: "*"
Resource: "*"
Outputs:
BasicNotebookInstanceId:
Value: !Ref BasicNotebookInstance
BasicNotebookInstanceLifecycleConfigId:
Value: !Ref BasicNotebookInstanceLifecycleConfig