如何使用 Lambda 函数创建 Amazon SageMaker 笔记本实例?

上次更新时间:2020 年 6 月 16 日

如何使用 AWS Lambda 函数创建 Amazon SageMaker 笔记本实例?

解决方法

1.    使用允许 sagemaker:CreateNotebookInstance 操作的附加策略创建 AWS Identity and Access Management (IAM) Lambda 执行角色。例如,您可以创建一个附加有 AmazonSageMakerFullAccess 策略的角色。

2.    创建 Amazon SageMaker 执行角色。有关 Amazon SageMaker 执行角色所需权限的更多信息,请参阅 CreateNotebookInstance API:执行角色权限

3.    打开 Lambda 控制台

4.    选择创建函数

5.    选择从头开始创作,然后配置以下选项:

对于名称,输入函数名称。
对于运行时,选择其中一个 Python 选项。
对于角色,选择选择现有角色
对于现有角色,选择允许 sagemaker:CreateNotebookInstance 操作的 IAM 角色。该角色是您在步骤 1 中创建的角色。

6.    选择创建函数

7.    在函数代码部分中,粘贴类似以下内容的代码:

import os
import boto3
import 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.")

8.    向下滚动到环境变量部分,然后选择编辑

9.    选择添加环境变量,然后使用以下选项创建三个环境变量。环境变量可使您存储配置设置,而无需更改函数代码。

对于,输入 ROLE
对于,输入 Amazon SageMaker 执行角色的 Amazon 资源名称 (ARN)。该角色是您在第 2 步中创建的角色。

对于,输入 INSTANCE_TYPE
对于,输入笔记本实例的实例类型。有关更多信息,请参阅受支持的实例类型和可用区

对于,输入 NOTEBOOK_NAME
对于,为您的笔记本输入名称。

10.    选择保存以保存环境变量。

11.    在函数配置页面的右上角,选择保存,然后选择测试。测试事件可以为空 ("{}")。

12.    打开 Amazon SageMaker 控制台以确认笔记本实例正在初始化。

注意:如果 Lambda 函数测试超时,请重新打开 Lambda 函数。向下滚动到基本设置 部分,然后增加超时值。默认值为三秒。

确认该函数正常工作后,您可以创建触发器,以基于另一个 AWS 服务中的事件自动运行函数。有关更多信息,请参阅将 AWS Lambda 与其他服务结合使用


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?