AWS Sagemaker AWS Lambda

#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. Просто создав все в одном регионе, исправлена эта проблема!