Я настраиваю лямбда-проект java aws для микронавтов, как описано здесь: https://guides.micronaut.io/micronaut-function-aws-lambda/guide/index.html
В основной функции класса Function у меня есть пример:
System.out.println("LOG TEST LOG LOG");
Запуск локально, как описанов документации через
echo '{"param1": "23"}' | java -jar build/lib/myjar-full.jar
Правильно показывает вывод на консоль.
При запуске этой же функции в режиме онлайн в AWS lambda не регистрируется это сообщение в журналах cloudwatch.
та же проблема происходит и при локальном запуске через SAM CLI, как объяснено в документации Micronaut.
Также с помощью регистратора slf4j, но я не получаю вывод. Я предоставляю ниже весь соответствующий код моей лямбда-функции микронавта
package lambda.test;
import io.micronaut.function.executor.FunctionInitializer;
import io.micronaut.function.FunctionBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.util.function.Function;
@FunctionBean("example-lambda")
public class LambdaFunction extends FunctionInitializer implements Function<Request, Response> {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass().getSimpleName());
/**
* This main method allows running the function as a CLI application using: echo '{}' | java -jar function.jar
* where the argument to echo is the JSON to be parsed.
*/
public static void main(String... args) throws IOException {
System.out.println("LOG TEST LOG LOG");
logger.info(String.format("Received the following payload: %s", String.join(";", args)));
LambdaFunction function = new LambdaFunction();
function.run(args, (context) -> function.apply(context.get(Request.class)));
}
Я также создал log4j2.xml
файл конфигурации в ресурсах со следующим содержанием
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
По умолчанию *Конфигурация 1023 *, поставляемая с micronaut, содержит следующее:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<withJansi>true</withJansi>
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%cyan(%d{HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}) - %msg%n</pattern>
</encoder>
</appender>
<root level="error">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Оба способа попытки входа в систему не работают в режиме онлайн или с SAM CLI. Я все еще изучаю, как это сделать, но пока не могу найти никакой информации в их документации или где-либо еще.