Quero resolver o erro “pg module not found” nos meus logs de função do Lambda do AWS Secrets Manager quando o AWS Lambda falha ao alternar segredos.
Breve descrição
Se a função do Lambda for atualizada automaticamente do Python 3.7 para uma versão mais recente, você poderá receber o erro “pg module not found”. Versões mais recentes, como o Python 3.9, podem não oferecer suporte aos módulos necessários. Para obter mais informações sobre módulos e bibliotecas compatíveis em todas as versões do Python no Lambda, consulte Runtimes suportados.
Resolução
Verifique a versão Python da função do Lambda
Conclua as seguintes etapas:
-
Abra o console do Lambda.
-
No painel de navegação, escolha Funções e, em seguida, selecione o nome do Lambda que não realizou a alternância.
-
Escolha a guia Código.
-
Nas configurações de Runtime, observe a versão do Python.
-
Escolha Ações, escolha Exportar função e depois Baixar pacote de implantação.
-
Execute o seguinte comando do Linux find no diretório do arquivo .zip descompactado:
find ./ -name “*cpython-*-x86_64-linux-gnu.so”
-
Verifique se a versão do runtime do Python está no nome do arquivo .so.
Por exemplo, _cffi_backend.cpython-37m-x86_64-linux-gnu.so.
Observação: se você encontrar os arquivos so do Python 3.7, mas seu runtime do Lambda mostra uma versão mais recente, isso confirma uma incompatibilidade de versão. Você deve resolver essa incompatibilidade por meio do processo de atualização do modelo do CloudFormation.
Atualize o modelo do AWS CloudFormation
Para resolver a falha da função do Lambda, conclua as seguintes etapas:
- Atualize seu modelo de pilha que você usou para criar a função do Lambda.
- Adicione a propriedade do Runtime ao objeto HostedRotationLambda em AWS::SecretsManager::RotationSchedule HostedRotationLambda.
- Reimplante a pilha do CloudFormation para aplicar as alterações.
O CloudFormation muda a função de alternância do Lambda de volta para o Python 3.7.
Observação: para o Python 3.7, o valor da chave Runtime deve ser python3.7.
Informações relacionadas
Atualizar uma função de alternância existente do Python 3.7 para 3.9