我想用 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。
对于 Value(值),输入笔记本实例的实例类型。有关更多信息,请参阅受支持的实例类型和可用区。
对于 Key(键),输入 NOTEBOOK_NAME。
对于值,为您的笔记本输入名称。
10. 选择保存以保存环境变量。
11. 在函数配置页面的右上角,选择保存,然后选择测试。测试事件可以为空 ("{}")。
12. 打开 Amazon SageMaker 控制台以确认笔记本实例正在初始化。
注意:如果 Lambda 函数测试超时,请重新打开 Lambda 函数。向下滚动到基本设置 部分,然后增加超时值。默认值为三秒。
确认该函数正常工作后,您可以创建触发器,以基于另一个 AWS 服务中的事件自动运行函数。有关更多信息,请参阅将 AWS Lambda 与其他服务结合使用。