本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以在 AWS Lambda中執行 Python 程式碼。Lambda 提供用於執行程式碼來處理事件的 Python 執行期。您的程式碼會在包含適用於 Python (Boto3) 的 SDK 的環境中執行,其中包含您管理之 AWS Identity and Access Management (IAM) 角色的登入資料。若要進一步了解 Python 執行時期隨附的 SDK 版本,請參閱 包含執行時期的 SDK 版本。
Lambda 支援以下 Python 執行期。
名稱 | 識別符 | 作業系統 | 取代日期 | 封鎖函數建立 | 封鎖函數更新 |
---|---|---|---|---|---|
Python 3.13 |
|
Amazon Linux 2023 |
2029 年 6 月 30 日 |
2029 年 7 月 31 日 |
2029 年 8 月 31 日 |
Python 3.12 |
|
Amazon Linux 2023 |
2028 年 10 月 31 日 |
2028 年 11 月 30 日 |
2029 年 1 月 10 日 |
Python 3.11 |
|
Amazon Linux 2 |
2026 年 6 月 30 日 |
2026 年 7 月 31 日 |
2026 年 8 月 31 日 |
Python 3.10 |
|
Amazon Linux 2 |
2026 年 6 月 30 日 |
2026 年 7 月 31 日 |
2026 年 8 月 31 日 |
Python 3.9 |
|
Amazon Linux 2 |
2025 年 11 月 3 日 |
2025 年 12 月 8 日 |
2026 年 1 月 8 日 |
若要建立 Python 函數
-
開啟 Lambda 主控台
。 -
選擇 Create function (建立函數)。
-
進行下列設定:
-
函數名稱:輸入函數名稱。
-
執行時期:選擇 Python 3.13。
-
-
選擇 Create function (建立函數)。
主控台將建立一個 Lambda 函數,其具有名為 lambda_function
的單一來源檔案。您可以使用內建的程式碼編輯器編輯該檔案並加入更多檔案。在 DEPLOY 區段中,選擇部署以更新函數的程式碼。然後,若要執行程式碼,請在測試事件區段中選擇建立測試事件。
Lambda 函數隨附有 CloudWatch Logs 記錄群組。函數執行期會將每次調用的詳細資訊傳送至 CloudWatch Logs。它在調用期間會轉送您的函數輸出的任何記錄。如果您的函數傳回錯誤,Lambda 會對該錯誤進行格式化之後傳回給調用端。
主題
包含執行時期的 SDK 版本
Python 執行時間中包含的 AWS SDK 版本取決於執行時間版本和您的 AWS 區域。若要尋找您使用的執行時期中包含的 SDK 版本,請使用下列程式碼建立 Lambda 函數。
import boto3
import botocore
def lambda_handler(event, context):
print(f'boto3 version: {boto3.__version__}')
print(f'botocore version: {botocore.__version__}')
Python 3.13 中的實驗功能
Python 3.13 受管執行時期和基礎映像不支援下列實驗功能。無法使用執行時期旗標啟用這些功能。若要在 Lambda 函數中使用這些功能,必須部署自訂執行時期或容器映像,其中包含您自己的 Python 3.13 建置。
-
自由執行緒 CPython
:無法停用全域解譯器鎖定。 -
Just-in-time (JIT) 編譯器
:無法啟用 JIT 編譯器。
回應格式
在 Python 3.12 及更高版本 Python 的執行期中,函數傳回的 JSON 回應包含 Unicode 字元。早期版本 Python 的執行期會在回應中傳回 Unicode 字元的逸出序列。例如,在 Python 3.11 中,如果您傳回 Unicode 字串,如 "こんにちは",它將逸出 Unicode 字元並傳回 "\u3053\u3093\u306b\u3061\u306f"。Python 3.12 執行期會傳回原始的 "こんにちは"。
使用 Unicode 回應可使 Lambda 回應變小,因此能更容易地將較大的回應納入同步函數的 6 MB 最大承載大小。在之前的範例中,逸出版本為 32 位元組,相較之下,Unicode 字串為 17 位元組。
當您升級到 Python 3.12 或更高 Python 執行時期時,可能需要調整您的程式碼以適應新的回應格式。若呼叫者預期得到逸出 Unicode,您必須新增程式碼至傳回的函數以便手動逸出 Unicode,或調整呼叫者以處理 Unicode 傳回。
延伸模組正常關機
Python 3.12 及更高版本 Python 的執行期為具有外部延伸模組的函數提供正常關機功能。當 Lambda 關閉執行環境時,它會傳送 SIGTERM
訊號到執行期,然後傳送 SHUTDOWN
事件到每個註冊的外部延伸模組。您可以捕獲 Lambda 函數中的 SIGTERM
訊息並清理資源,例如由函數建立的資料庫連線等。
若要詳細了解執行環境生命週期,請參閱 了解 Lambda 執行環境生命週期。有關如何使用延伸模組正常關機的範例,請參閱 AWS 範例 GitHub 儲存庫