AWS Lambda 関数を使用して Amazon SageMaker AI ノートブックインスタンスを作成したいと考えています。
SageMaker AI ノートブックインスタンスを作成する Lambda 関数を作成するには、次の手順を実行します。
AWS Identity and Access Management (IAM) Lambda 実行ロールを作成し、sagemaker:CreateNotebookInstance アクションを許可するポリシーをアタッチします。例えば、sagemaker:CreateNotebookInstance アクションを許可する AmazonSageMakerFullAccess ポリシーがアタッチされたロールを作成します。
SageMaker AI 用の IAM 実行ロールを作成します。必要なアクセス許可を必ずアタッチしてください。
Lambda コンソールを開きます。
[関数の作成] を選択します。
[一から作成] を選択し、次のパラメータを設定します。 [関数名] に、関数の名前を入力します。 [ランタイム] で、Python オプションのいずれかを選択します。 [デフォルトの実行ロールの変更] で、[既存のロールを使用する] を選択します。 [既存のロール] で、ステップ 1 で作成した IAM ロールを選択します。
[コード] セクションに、次のコードを入力します。
import osimport boto3import time INSTANCE_TYPE = os.environ['INSTANCE_TYPE'] NOTEBOOK_NAME = os.environ['NOTEBOOK_NAME'] ROLE=os.environ['ROLE'] sagemaker = boto3.client('sagemaker') def lambda_handler(event, context): sagemaker_notebook = sagemaker.create_notebook_instance( NotebookInstanceName = NOTEBOOK_NAME +'-'+str(int(time.time())), InstanceType = INSTANCE_TYPE, RoleArn=ROLE ) print("New Amazon SageMaker notebook instance created.")
[設定] タブを選択し、[環境変数] を選択します。
[編集] を選択します。
[環境変数を追加] を選択し、次のオプションを使用して 3 つの環境変数を作成します。 最初の環境変数に次の値を入力します。 [キー] に ROLE と入力します。 [値] には、ステップ 2 で作成した SageMaker AI 実行ロールの Amazon リソースネーム (ARN) を入力します。 2 番目の環境変数に次の値を入力します。 [キー] に、INSTANCE_TYPE と入力します。 [値] には、ノートブックインスタンスの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスタイプを入力します。 3 番目の環境変数に次の値を入力します。 [キー] に、NOTEBOOK_NAME と入力します。 [値] には、ノートブックの名前を入力します。
[保存] を選択します。
[テスト] タブを選択します。
[テストイベント] で [新しいイベントを作成] または [保存したイベントを編集] を選択し、使用する保存済みイベントを選択します。または、空の ("{}") テストイベントを使用します。
[保存] を選択し、[テスト] を選択します。
SageMaker AI コンソールを開いて、ノートブックインスタンスが初期化中であることを確認します。 注: Lambda 関数のテストがタイムアウトした場合は、Lambda 関数を開きます。[設定] を選択し、[一般設定] セクションに移動して、タイムアウト値を増やします。デフォルトは 3 秒です。
Lambda 関数を作成したら、別の AWS サービスのイベントに基づいて自動的に関数を実行するトリガーを作成できます。