Создание 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());
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]
Мобильная версия