為什麼我的 Secrets Manager Lambda 函數輪換失敗,出現「找不到 pg 單元」錯誤?

最後更新日期:2023 年 3 月 3 日

我的 AWS Secrets Manager AWS Lambda 函數失敗,並在 Amazon CloudWatch Logs 中出現「找不到 pg 單元」錯誤。

簡短描述

如果您執行的是較早版本的 Lambda 函數 (該函數會從 Python 3.7 自動升級為較新版本的 Python),您可能會收到此錯誤訊息。

解決方案

將 Lambda 函數版本變更回 Python 3.7,然後重新部署 Lambda 函數。

檢查 Lambda 函數 Python 版本

1.    開啟 Lambda 主控台

2.    在導覽窗格中,選擇函數,然後選取無法輪換的 Lambda 函數名稱。

3.    選擇 Code (程式碼) 標籤。

4.    在「執行時間」設定中,記下 Python 版本。

5.    選擇動作,選擇匯出函數,然後選擇下載部署套件

6.    從未壓縮的 .zip 檔案的目錄執行下列 Linux 尋找命令:

find ./ -name “*cpython-*-x86_64-linux-gnu.so”

7.    檢查 Python 執行時間的版本是否在 .so 檔案的名稱中。例如 _cffi_backend.cpython-37m-x86_64-linux-gnu.so

如果 .so 版本不是 Python 3.7,則 Lambda 無法匯入該程式庫。

修改 AWS Cloudformation 範本

若要解決 Lambda 函數失敗的問題,請修改 CloudFormation 範本 (您將其用來建立 Lambda 函數)。將執行時間屬性新增至 AWS::SecretsManager::RotationSchedule 中的 HostedRotationLambda 物件。然後,重新部署 CloudFormation 堆疊。CloudFormation 會將 Lambda 輪換函數變更回 Python 3.7。

注意:對於 Python 3.7,執行時間鍵值必須為 python37


此文章是否有幫助?


您是否需要帳單或技術支援?