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.    [새로 작성]을 선택한 후 다음 옵션을 구성합니다.

[이름]에 함수 이름을 입력합니다.
[Runtime(런타임)]에서 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.    [환경 변수 추가]를 선택한 후 다음 옵션을 사용하여 환경 변수 3개를 생성합니다. 환경 변수를 사용하면 함수 코드를 변경하지 않고 구성 설정을 저장할 수 있습니다.

[]에 ROLE을 입력합니다.
[]에 Amazon SageMaker 실행 역할의 Amazon 리소스 이름(ARN)을 입력합니다. 이 역할은 2단계에서 생성한 역할입니다.

[]에 [INSTANCE_TYPE]을 입력합니다.
[]에 노트북 인스턴스의 인스턴스 유형을 입력합니다. 자세한 내용은 지원되는 인스턴스 유형 및 가용 영역을 참조하십시오.

[]에 NOTEBOOK_NAME을 입력합니다.
[]에 노트북 이름을 입력합니다.

10.    [저장]을 선택하여 환경 변수를 저장합니다.

11.    함수 구성 페이지의 오른쪽 상단에서 [저장]을 선택한 다음 [테스트]를 선택합니다. 테스트 이벤트는 비어 있을 수 있습니다("{}").

12.    Amazon SageMaker 콘솔을 열어 노트북 인스턴스가 초기화되고 있는지 확인합니다.

참고: Lambda 함수 테스트 시간이 초과되면 Lambda 함수를 다시 엽니다. [기본 설정]까지 아래로 스크롤한 다음 제한 시간 값을 늘립니다. 기본값은 3초입니다.

함수가 작동하는지 확인한 후 다른 AWS 서비스의 이벤트를 기반으로 함수를 자동으로 실행하는 트리거를 생성할 수 있습니다. 자세한 내용은 다른 서비스와 함께 AWS Lambda 사용을 참조하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?