AWS SnapStart для Java Lambda с использованием AWS CDKJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 AWS SnapStart для Java Lambda с использованием AWS CDK

Сообщение Anonymous »

Я пытаюсь организовать Lambda с помощью Java 11 (или 17) AWS CDK. У Lambda есть серьезные проблемы с компиляцией JVM и холодным запуском, поэтому я рассматривал возможность использования новой функции SnapStart, предлагаемой AWS. CDK распространяет стек CloudFormation с включенными компонентами SnapStart, новой версией Lambda и псевдонимом для этой версии. Это все необходимые требования для SnapStart.
Создание CDK Lambda с конфигурацией и псевдонимом SnapStart

Код: Выделить всё

       //Lambda Function
String lambdaHandlerName = "com.handlers.lambdaHandler::handleRequest";
IRole role5 = Role.fromRoleName(this, "Lambda", "LambdaRole");

Function lambdaFunction = new Function(this, "lambdaFunction", getLambdaFunctionProps(lambdaEnvMap, lambdaHandlerName, role5, "lambdaHandler"));
dynamoTable.grantReadData(lambdaFunction);

//SnapStart Config
lambdaFunction.getCurrentVersion().addAlias("snap", AliasOptions.builder()
.description("Alias version for snap resources")
.build());
CfnFunction lambdaCfnFunction = (CfnFunction) lambdaCfnFunction.getNode().getDefaultChild();
lambdaCfnFunction.setSnapStart(CfnFunction.SnapStartProperty.builder()
.applyOn("PublishedVersions")
.build());
Похоже, что в самой консоли AWS SnapStart включен для базовой функции, для которой установлено значение «PublishedVersions».
SnapStart включен для базовой функции
Похоже, что SnapStart включен для базовой функции
p>
И когда я смотрю на свою последнюю опубликованную версию, я обнаруживаю, что в ней тоже включен SnapStart.
SnapStart включен в версии
Но когда я вызываю свою функцию Lambda через API Шлюз (который настроен на правильную версию Lambda), SnapStart, похоже, не работает для этой функции, и мое время холодного запуска по-прежнему составляет ~ 2 секунды.
Я также пробовал реализовать среду выполнения перехватчики, предложенные AWS для SnapStart для самого обработчика функции Lambda:
Перехватчики времени выполнения обработчика для SnapStart

Код: Выделить всё

   public GetAllQuotesHandler() {
Core.getGlobalContext().register(this);
}

@Override
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent event, Context context) {
...
}

@Override
public void beforeCheckpoint(org.crac.Context

Подробнее здесь: [url]https://stackoverflow.com/questions/76583718/aws-snapstart-for-java-lambda-using-aws-cdk[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»