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 사용을 참조하세요.