У меня есть AWS Lambda-приложение, которое развернуто с использованием Serverless. Когда я добавляю детали конфигурации VP C в безсерверный шаблон, сервис жалуется на отсутствие какой-либо конфигурации log4j.
$ sls logs -f myFunctionOnAWS
START RequestId: 4738b72e-7527-4f36-3b04-816d0522659f Version: $LATEST
08:37:38.376 [main] INFO feedback.view.InsertQueryHandler - InsertQueryHandler
log4j:WARN No appenders could be found for logger (com.amazonaws.AmazonWebServiceClient).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
END RequestId: 4738b72e-7527-4f36-3b04-816d0522659f
REPORT RequestId: 4738b72e-7527-4f36-3b04-816d0522659f Duration: 20003.44 ms Billed Duration...
Эта проблема возникает только при развертывании на указанных c VP C и SG. Вот мой шаблон serverless.yml .
service: myCustomServiceAWS
provider:
name: aws
stage: default
role: arn:aws:iam::xxxxxxx:role/my-lambda-role
region: eu-north-1
runtime: java11
deploymentBucket: xxxxxxxx
timeout: 20
vpc:
subnetIds:
- subnet-6....70a
- subnet-f....382
securityGroupIds:
- sg-3c....57
...
Удаление конфигурации VP C (vp c, subnetIds и securityGroupIds) позволяет мне использовать службу, как и ожидалось, и позволяет мне просмотреть журналы с помощью команды sls logs. Appenders - log4j.properties - отлично работает без добавления VP C в шаблон.
log = .
log4j.rootLogger = INFO, LAMBDA
log4j.appender.LAMBDA=com.amazonaws.services.lambda.runtime.log4j.LambdaAppender
log4j.appender.LAMBDA.layout=org.apache.log4j.PatternLayout
log4j.appender.LAMBDA.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss} <%X{AWSRequestId}> %-5p %c:%L - %m%n
my-lambda-role
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
Группа безопасности
Outbound All TCP TCP 0 - 65535 0.0.0.0/0
Inbound PostgreSQL TCP 5432 sg-3c75e657