내용으로 건너뛰기

Secrets Manager Lambda 함수 교체에서 ‘pg module not found’ 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

AWS Lambda에서 보안 암호를 교체하지 못할 때 AWS Secrets Manager Lambda 함수 로그의 ‘pg module not found’ 오류를 해결하고 싶습니다.

간략한 설명

Lambda 함수가 Python 3.7에서 최신 버전으로 자동 업그레이드된 경우 ‘pg module not found’ 오류가 발생할 수 있습니다. Python 3.9와 같은 최신 버전은 필수 모듈을 지원하지 않을 수 있습니다. Lambda의 Python 버전 전반에서 지원되는 모듈 및 라이브러리에 대한 자세한 내용은 지원되는 런타임을 참조하십시오.

해결 방법

Lambda 함수 Python 버전 확인

다음 단계를 완료하십시오.

  1. Lambda 콘솔을 엽니다.

  2. 탐색 창에서 함수를 선택한 다음, 교체하지 않은 Lambda의 이름을 선택합니다.

  3. 코드 탭을 선택합니다.

  4. 런타임 설정에서 Python 버전을 기록해 둡니다.

  5. 작업을 선택하고 함수 내보내기를 선택한 다음, 배포 패키지 다운로드를 선택합니다.

  6. 압축 해제된 .zip 파일의 디렉터리에서 다음 find Linux 명령을 실행합니다.

    find ./ -name “*cpython-*-x86_64-linux-gnu.so”
  7. Python 런타임 버전이 .so 파일 이름에 있는지 확인합니다.
    예를 들어, _cffi_backend.cpython-37m-x86_64-linux-gnu.so입니다.
    참고: Python 3.7 .so 파일이 있는데 Lambda 런타임에 최신 버전이 표시되면 버전 불일치가 있는 것입니다. CloudFormation 템플릿 업데이트 프로세스를 통해 이 불일치를 해결해야 합니다.

AWS CloudFormation 템플릿 업데이트

Lambda 함수 오류를 해결하려면 다음 단계를 완료하십시오.

  1. Lambda 함수를 생성하는 데 사용한 스택 템플릿을 업데이트합니다.
  2. 런타임 속성을 AWS::SecretsManager::RotationSchedule HostedRotationLambdaHostedRotationLambda 객체에 추가합니다.
  3. CloudFormation 스택을 재배포하여 변경 사항을 적용합니다.
    CloudFormation이 Lambda 교체 함수를 Python 3.7로 다시 변경합니다.
    참고: Python 3.7의 경우, 런타임 키 값은 python3.7여야 합니다.

관련 정보

기존 교체 함수를 Python 3.7에서 3.9로 업그레이드

AWS 공식업데이트됨 7달 전
댓글 없음

관련 콘텐츠