在python中自动测试aws lambda函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中自动测试aws lambda函数相关的知识,希望对你有一定的参考价值。

我有一个aws lambda函数,它将在dynamodb中为s3存储桶中创建的每个对象写入s3文件元数据信息,为此我在s3存储桶上有事件触发器。所以我打算使用python自动化测试。任何人都可以帮助我如何使用unittest包自动化这个lambda函数来测试以下内容。

  1. 验证dynamodb表的存在性
  2. 在s3中验证存储桶是否存在以进行事件触发。
  3. 验证s3存储桶中的文件计数和Dynamodb表中的记录计数。
答案

这可以使用motounittest完成。 moto将做的是为AWS添加有状态模拟 - 您的代码可以像往常一样继续调用boto,但实际上不会对AWS进行调用。相反,moto将在记忆中建立状态。

例如,你可以

  1. 激活DynamoDB的模拟
  2. 创建一个DynamoDB表
  3. 将项目添加到表中
  4. 从表中检索项目并查看它们是否存在

如果您正在为DynamoDB和S3构建功能,那么您将利用mock_s3中的mock_dynamodb2moto方法。

我写了一个如何做到这一点的教程(它使用pytest而不是unittest,但这应该是一个小的差异)。看看:joshuaballoch.github.io/testing-lambda-functions/

以上是关于在python中自动测试aws lambda函数的主要内容,如果未能解决你的问题,请参考以下文章

Lambda,AWS和Python的自动化管理操作

AWS Lambda 自动化和 Python - 自动创建S3 Bucket lifecycle

AWS Cloud9:在本地引用 Lambda 层

如何在 CloudFormation 模板中描述 AWS Lambda 函数测试事件?

AWS Lambda 函数帮助

使用 AWS CDK 在 AWS Codepipeline 中部署 Python Lambda 函数