1. Lambda 환경 변수 변경 방법
(1) AWS Management Console을 사용
- AWS Management Console에 로그인.
- Lambda 서비스로 이동.
- 해당 Lambda 함수를 선택.
- 구성(Configuration) 탭 > 환경 변수(Environment variables) 섹션으로 이동.
- LOG_LEVEL 값을 원하는 값으로 수정 (예: DEBUG, INFO, WARN, ERROR).
- 저장 후 Lambda 함수가 재실행될 때 새로운 값을 읽어옵니다.
(2) AWS CLI를 사용
AWS CLI를 사용하면 환경 변수를 명령줄에서 업데이트할 수 있습니다.
다음은 예제 명령입니다:
aws lambda update-function-configuration \
--function-name MyLambdaFunction \
--environment "Variables={LOG_LEVEL=DEBUG}"
- --function-name: Lambda 함수 이름.
- LOG_LEVEL=DEBUG: 원하는 로그 레벨.
(3) AWS SDK를 사용
Java, Python, or other languages로 AWS SDK를 활용하여 프로그래밍 방식으로 환경 변수를 업데이트할 수 있습니다.
Java 예제:
import software.amazon.awssdk.services.lambda.LambdaClient;
import software.amazon.awssdk.services.lambda.model.UpdateFunctionConfigurationRequest;
public class UpdateLambdaEnv {
public static void main(String[] args) {
LambdaClient lambdaClient = LambdaClient.create();
UpdateFunctionConfigurationRequest request = UpdateFunctionConfigurationRequest.builder()
.functionName("MyLambdaFunction")
.environment(env -> env.variables(Map.of("LOG_LEVEL", "DEBUG")))
.build();
lambdaClient.updateFunctionConfiguration(request);
System.out.println("Environment variable updated successfully.");
}
}
2. Lambda 환경 변수 변경 시 주의사항
- 환경 변수를 업데이트하면 Lambda 함수는 자동으로 새 버전을 배포하고, 이후 실행부터 새로운 환경 변수를 사용합니다.
- 실행 중인 Lambda는 기존 환경 변수로 작동하며, 업데이트된 값은 새 요청부터 반영됩니다.
3. 환경 변수를 실시간으로 동적으로 변경하는 대안
(1) AWS Parameter Store 사용
AWS Systems Manager의 Parameter Store를 사용하면 환경 변수 값을 실시간으로 읽을 수 있습니다.
- Parameter Store 설정
- AWS Management Console에서 Systems Manager > Parameter Store로 이동.
- 새 매개변수 생성 (예: LOG_LEVEL).
- 값: INFO, DEBUG 등.
- 코드에서 Parameter Store 값 읽기 AWS SDK를 통해 값을 읽어옵니다:
import software.amazon.awssdk.services.ssm.SsmClient;
import software.amazon.awssdk.services.ssm.model.GetParameterRequest;
public class LambdaHandler {
public String getLogLevel() {
SsmClient ssm = SsmClient.create();
GetParameterRequest request = GetParameterRequest.builder()
.name("LOG_LEVEL")
.withDecryption(true)
.build();
return ssm.getParameter(request).parameter().value();
}
}
3. Parameter Store의 값 업데이트
- Console, CLI, 또는 SDK를 사용해 실시간으로 값을 수정.
- 예제 (CLI):
bash코드 복사aws ssm put-parameter --name "LOG_LEVEL" --value "DEBUG" --overwrite
(2) AWS Secrets Manager 사용
Parameter Store와 유사하지만 민감한 데이터(예: 비밀번호, API 키 등)를 보호하기에 적합합니다. 설정 및 사용법은 Parameter Store와 비슷합니다.
4. CloudWatch Logs에서 실시간 동작 확인
Lambda 함수가 새 LOG_LEVEL 값을 반영하는지 확인하려면 CloudWatch Logs에서 로그를 모니터링합니다:
- Lambda 실행 이후 생성된 로그 그룹 (/aws/lambda/FunctionName)으로 이동.
- 로그 메시지에서 새로운 LOG_LEVEL 값에 따라 로그 레벨이 적용되는지 확인.
5. 요약
- Lambda 환경 변수 LOG_LEVEL 값은 AWS Management Console, CLI, 또는 SDK를 통해 변경할 수 있습니다.
- 실시간으로 동적으로 변경하려면 AWS Parameter Store 또는 Secrets Manager를 사용하여 값을 읽는 방법을 권장합니다.
- CloudWatch Logs에서 로그 레벨 적용 여부를 확인하고, 필요하면 로그 보존 및 관리 정책을 설정합니다.
'AWS' 카테고리의 다른 글
Lambda Cold Start 해결 방법 (Snapstart) (0) | 2024.12.12 |
---|---|
Lambda Cold Start 해결 방법 (0) | 2024.12.12 |
CloudWatch Java 로그 작성 방법 (0) | 2024.11.29 |
vpc flow logs, cloudwatch, cloudtrail (0) | 2024.11.28 |
Java Lambda template.yaml 관리 (0) | 2024.11.18 |