PHP前端开发

使用 CDK v 探索 AWS 无服务器部署从 RSS 到 X Posts - Odyssey 的一部分

百变鹏仔 3天前 #Python
文章标签 服务器

欢迎来到“使用 cdk v2 探索 aws 无服务器部署”的第 3 部分。首先,我要感谢您的耐心等待,因为自第 2 部分以来一直存在一些差距。我在工作中深入研究和从事无服务器项目,这让我无法继续工作,但我很高兴能回到正轨并继续我们的探索。

在之前的文章中,我们定义了我们的构造并将其部署到 aws。今天,我们将重点关注一个基本实践:测试。正确的测试可确保我们的部署按预期工作,并可以使我们避免潜在的问题。

开始测试

首先,您需要将 pytest 添加到项目的依赖项(我们堆栈的主要 requirements.txt 文件)。

pip install -r requirements.txt

在我们的项目中,导航至 test 目录,然后导航至 unit 并打开 test_rss_lambda_ddb_socialshare_stack.py 文件。此自动生成的测试文件包含一个示例测试。

我们的堆栈中没有 sqs 构造,但查看示例测试可以在一定程度上了解如何测试构造。让我们删除自动生成的示例测试并创建我们自己的测试。

设置测试功能

首先,让我们创建一个可重用的函数来从堆栈中获取 cloudformation 模板:

测试 dynamodb 表属性

我们将首先添加一个测试来检查堆栈中的 dynamodb 表是否具有正确的属性。具体做法如下:

测试 lambda 函数

接下来,让我们确保我们的堆栈创建正确数量的 lambda 函数并验证它们的运行时版本:

运行测试

要运行测试,您可以在终端中执行pytest

pytest

以下是您应该收到的输出:

================================================================================= test session starts =================================================================================platform darwin -- Python 3.12.4, pytest-8.1.1, pluggy-1.4.0rootdir: /Users/adrian/Developer/Projects/rss-lambda-ddb-socialshareplugins: typeguard-2.13.3collected 2 items                                                                                                                                                                     tests/unit/test_rss_lambda_ddb_socialshare_stack.py ..                                                                                                                          [100%]================================================================================= 2 passed in 21.86s ==================================================================================

结论

在我们系列的第 3 部分中,我们学习了如何测试我们的 cdk 构造。在最后一部分中,我们将探讨如何在本地测试 lambda 函数。

资源