Amazon Sagemaker에서 생성한 모델에 의한 추론 처리를 REST API로 게시
3864 단어 람다SageMakerAPIGatewayREST-APIAWS
했던 일
SageMaker에서 작성한 모델을 사용한 추론 처리를 REST API로 공개해 보았다.
구성
API Gateway에서 공개되는 API에 액세스하고 Lambda를 실행합니다. Lambda로부터 SageMaker로 작성한 Model을 엔드 폰트로부터 호출해, 추론 처리를 실시, 리퀘스트측에 결과를 돌려준다, 라고 하는 느낌.
구축 절차
API Gateway에서 공개되는 API에 액세스하고 Lambda를 실행합니다. Lambda로부터 SageMaker로 작성한 Model을 엔드 폰트로부터 호출해, 추론 처리를 실시, 리퀘스트측에 결과를 돌려준다, 라고 하는 느낌.
구축 절차
1,2만으로 상당한 양이 되므로 별도로 쓰기 중.
이하, 3 이후에 대해서 기재.
3. Lambda에서 SageMaker 엔드포인트를 호출하는 역할을 생성합니다.
Lambda에서 SageMaker 엔드포인트에 액세스하는 역할을 만듭니다. 여기의 기재가 없는 기사가 많았으므로, 굳이 설정 순서 기재.
여기서는 어떤 서비스에 역할을 할당할지 생각해 보겠습니다. 이번에는 Lambda에 역할을 할당하므로 Lambda를 선택합니다.
참고로 정책 이름을 클릭하면 이 정책의 액세스 권한을 확인할 수 있습니다. "Statement"를 보면,
"Effect": "Allow","Action": ["sagemaker:*"],"
의 기재가 있어, 이것은 sagemaker에 대한 모든 액션을 허가한다고 하는 의미입니다. 이렇게하면 Lambda에서 모델의 엔드 폰트를 호출 할 수 있습니다. 4. Lambda 함수 구현
Lambda는 추론 처리를 구현합니다. 아래와 같은 느낌으로, 언어는 이번 파이썬으로 기재했습니다.
import boto3
ENDPONT_NAME = "YOUR_ENDPOINT_NAME" #ここにはエンドポイントの名前を指定する
def lambda_handler(event, context):
runtime_client = boto3.client('runtime.sagemaker', region_name="ap-northeast-1")
values = list(event.values())
try:
response = runtime_client.invoke_endpoint(EndpointName=ENDPONT_NAME,
ContentType='text/csv',
#Body=value_single)
Body='{0},{1},{2},{3}'.format(values[0], values[1], values[2], values[3]))
result = response['Body'].read()
result = result.decode("utf-8")
return result
except:
return {
'statusCode': 400,
'body': 'Exception Occur'
}
5. Amazon API Gateway 설정
여기 을 참고로 설정을 마쳤습니다.
6. Curl에서 REST API의 동작 확인
사쿠토 확인
> curl --request POST --header 'Content-Type: application/json' --data '{\"key1\":0.25,\"key2\":0.666,\"key3\":1,\"key4\":1}' 'https://your-api'
curl: (6) Could not resolve host: application
curl: (1) Protocol "'https" not supported or disabled in libcurl
어라, 어째서.
조사해 보면, windows 터미널에서는 싱글 쿼테이션을 사용할 수 없는 것 같다.
Windows 환경에서 curl 명령 사용 요약 (헤세이 최종 버전) 알기 쉬웠다.
수정하고 다시 실행.
> curl --request POST --header "Content-Type: application/json" --data "{\"key1\":0.25,\"key2\":0.666,\"key3\":1,\"key4\":1}" "https://your-api"
"106.2766342163086"
흠. 좋아.
Reference
이 문제에 관하여(Amazon Sagemaker에서 생성한 모델에 의한 추론 처리를 REST API로 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fktlnz/items/47039bb883acbd201895텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)