gpt4 book ai didi

python - 从另一个 SAM 本地函数调用 AWS SAM 本地函数

转载 作者:行者123 更新时间:2023-12-05 03:51:25 25 4
gpt4 key购买 nike

我正在尝试创建具有多个 AWS 无服务器功能的 AWS SAM 应用程序。

该应用程序有 1 个 template.yaml 文件,其中包含 2 个不同的无服务器 lambda 函数的资源,例如“Consumer Lambda”和“Worker Lambda”。消费者以 5 分钟的速度被触发。消费者使用 boto3 库来触发 worker lambda 函数。当 worker lambda 部署在 AWS 上时,此代码有效。

但我想在本地测试这两个函数,Sam local invoke “Consumer”也在本地调用“Worker”。

这是 YAML 文件的屏幕截图:

我正在使用 Pycharm 来运行项目。有一个选项可以一次只运行 1 个函数,然后在构建文件夹中只创建一个文件夹。

我必须在部署之前测试 Consumer 是否能够在 pycharm 中本地调用 worker。我认为有某种方法可以做到,但不确定如何去做。我进行了广泛的搜索,但没有找到任何结果。

感谢任何帮助。提前致谢

最佳答案

您可以通过以下方式启动 lambda 调用端点(官方 docs ):

sam local start-lambda

现在您可以将 AWS 资源客户端指向端口 3001 并在本地触发函数。

例如。如果您在 Python 上执行此操作,则可以使用 boto3 通过以下方式实现:

boto3

# Create a lambda client
lambda_client = boto3.client('lambda',
region_name="<localhost>",
endpoint_url="<http://127.0.0.1:3001>",
use_ssl=False,
verify=False)

# Invoke the function
lambda_client.invoke(FunctionName=<function_name>,
Payload=<lambda_payload>)

关于python - 从另一个 SAM 本地函数调用 AWS SAM 本地函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62936372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com