Sagemaker Notebook Example using AWS CDK

Vipul Munot
Aug 9, 2022

--

In this article we are going to cover some of the most common properties we use to create and configure an Sagemaker notebook in AWS CDK.

At the time of writing I was using CDK version: 2.34.2

Importing Dependencies

from aws_cdk import (aws_sagemaker as sagemaker,)
import base64
import json

Notebook Instance LifecycleConfig

  • The script needs to be encoded
  • Limitation from the CDK — hence need to use CFN
with open(
"resources/startup.sh", "r"
) as fp:
script = fp.read()
lifecycle_config = sagemaker.CfnNotebookInstanceLifecycleConfig(
self,
"InstanceLifeCycleConfig",
notebook_instance_lifecycle_config_name="InstanceLifeCycleConfig",
on_start=[
sagemaker.CfnNotebookInstanceLifecycleConfig.NotebookInstanceLifecycleHookProperty(
content=base64.b64encode(script.encode("utf-8")).decode("utf-8")
)
],
)

Notebook Instance

notebook = sagemaker.CfnNotebookInstance(
self,
"NotebookInstance",
instance_type="ml.t3.medium",
lifecycle_config_name=lifecycle_config.notebook_instance_lifecycle_config_name,
platform_identifier="notebook-al2-v1",
notebook_instance_name="Notebook-Instance",
volume_size_in_gb=25,
)

In case you are not going to use lifecycle config while creating notebook instance you can comment out that part.

--

--

No responses yet