How to make AWS Lambda stop execution?
我有一个
但是无论如何,在我的代码中的某个点上,我希望执行失败。我应该使用什么命令来停止执行?
附笔。我发现有如下命令:
- 埃多克斯1〔2〕
- 埃多克斯1〔3〕
- 江户十一〔四〕号
我得告诉你,我在
这些方法仅用于向后兼容性,因为它们最初是与node.js v0.10.42一起引入的。如果使用Nodejs版本4.*或6.*。使用
检查:有关如何利用此函数的详细信息,请使用lambda中的回调参数。
这是我的解决方案(可能不完美,但对我有用)
1 | time.sleep(context.get_remaining_time_in_millis() / 1000) |
代码是用Python编写的,但我相信您可以使用任何其他语言应用相同的逻辑。我的想法是让lambda函数在剩余的"重试"时间内"休眠"。
完整的例子如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ... some code that processes logs from CloudWatch when my ECS container stops(job is finished) ... # Send an email notification sns_client = client('sns') sns_client.publish( TopicArn=sns_topic, Subject="ECS task success detected for container", Message=json.dumps(detail) ) # Make sure it was send only once, therefore 'sleep' # untill lambda stops 'retries' time.sleep(context.get_remaining_time_in_millis() / 1000) |
号
因此,电子邮件只发送一次。希望有帮助!