如果在AWS lambda函数中运行的测试用例失败,如何获取电子邮件

时间:2018-06-14 13:18:23

标签: aws-lambda python-unittest amazon-sns amazon-cloudwatch

我在AWS Lambda中执行了以下测试用例。如果没有通过任何测试用例,我想收到电子邮件警报。

为此,我创建了一个云监视警报,如果此Lambda错误指标有错误> = 1(我引用此link),它会触发SNS向我发送电子邮件。但是我从未按预期收到电子邮件,因为即使测试用例失败,lambda函数本身也能正确执行。只有我在lambda函数中写了一些拼写错误,我才会收到电子邮件警报。当然我不希望以这种方式编写代码。

那么,如果没有通过任何测试用例,我如何收到电子邮件?

import unittest

def test_case_pass(self):
    self.assertTrue(True)

def test_case_notpass(self):
    self.assertTrue(False)

1 个答案:

答案 0 :(得分:1)

如果测试失败,您可以从Lambda发布到SNS。

import boto3
sns = boto3.client('sns')
# Do tests
# If test fails
    sns.publish(TopicArn='topicarn', Message='something went wrong' )

相关Boto 3文档:http://boto3.readthedocs.io/en/latest/reference/services/sns.html#SNS.Client.publish