想象一個像這樣的基本Lambda 函式:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""This is an example Lambda Function which imports MyFancyClass from the
backend.
"""
from typing import Any, Dict
from project_name.module import MyFancyClass
def lambda_handler(event: Dict[str, Any], context: Any) -> Dict[str, Any]:
"""Standard Lambda event handler."""
del context
class_instance = MyFancyClass('some initial value')
result = class_instance.special_method(event)
return result
我無法找到一個簡單的解釋 AWS 中的代碼設定是如何作業的,以便您提供一個后端代碼存盤庫,Lambda 函式可以從中匯入 Python 模塊。
我閱讀了有關Lambda Layers的資訊,但是每次我在后端進行更改時將所有依賴項部署為 ZIP 檔案似乎并不是我想象的順利程序。
我寧愿相信必須有一種方法可以在AWS CodeCommit上管理代碼存盤庫的AWS 上設定 CI/CD 管道。這樣,您將更改推送到遠程后端存盤庫,它會得到更新,最后,當執行 Lambda 函式時,它會訪問最新的后端代碼。
但也許,壓縮后端代碼并將其部署為 Lambda 層確實是唯一的方法。如果是這樣,我想知道如何以最方便的方式將其與 CI/CD-pipeline repo 結合使用。
uj5u.com熱心網友回復:
您必須將依賴項打包到 Lambda 部署 zip 檔案或 Lambda 層 zip 檔案中,然后將其部署到 AWS Lambda。AWS Lambda 函式不能在運行時動態拉取依賴項,它必須將這些依賴項作為部署的一部分包含在內,或者作為它所依賴的部署層。
每當您將更改推送到源代碼存盤庫時,您都需要配置 CI/CD 平臺以構建和部署新版本的 Lambda 部署(或 Lambda 層部署)。
但也許,壓縮后端代碼并將其部署為 Lambda 層確實是唯一的方法。
是的,這是唯一的方法。
如果是這樣,我想知道如何以最方便的方式將其與 CI/CD-pipeline repo 結合使用。
最后一個問題非常廣泛。
通常,您將擁有一個 CI/CD 管道,該管道由源代碼存盤庫的更新觸發,構建您的 Lambda 函式或 Lambda 層的新版本,然后將該更新部署到 AWS Lambda。如果您在該程序中的特定步驟需要特定幫助,請將其作為一個單獨的問題提出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521722.html
