#amazon-web-services #aws-lambda #amazon-sagemaker
#amazon-веб-сервисы #aws-lambda #amazon-sagemaker
Вопрос:
Я пытаюсь использовать AWS SageMaker, следуя документации. Я успешно загрузил данные, обучил и развернул модель.
Моим следующим шагом должно быть использование AWS Lambda, подключение его к этой конечной точке SageMaker. Я увидел, что мне нужно предоставить разрешение роли выполнения Lambda IAM для вызова конечной точки модели. Я добавляю некоторые данные в JSON политики IAM, и теперь он имеет такой вид
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "logs:CreateLogGroup",
"Resource": "arn:aws:logs:us-east-1:<my-account>:*"
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:us-east-1:<my-account>:log-group:/aws/lambda/test-sagemaker:*"
]
},
{
"Effect": "Allow",
"Action": "sagemaker:InvokeEndpoint",
"Resource": "*"
}
]
}
Проблема в том, что даже с ролью, у которой есть разрешение на вызов конечной точки SageMaker, моя лямбда-функция этого не увидела
An error occurred (ValidationError) when calling the InvokeEndpoint operation: Endpoint xgboost-2020-10-02-12-15-36-097 of account <my-account> not found.: ValidationError
Ответ №1:
Я сам обнаружил ошибку. Проблема была в разных регионах. Для обучения и развертывания модели я использовал us-east-2, а для lambda — us-east-1. Просто создав все в одном регионе, исправлена эта проблема!