我有一个命中 REST 端点的 python AWS lambda,如果服务/端点关闭或无法访问,我想向团队/松弛 channel 发送通知。
我不想在服务关闭时继续为每条消息发送此通知。我想在它第一次关闭时发送一条消息,然后在它恢复时发送另一条消息。
我在想有一个环境变量 SERVICE_UP = true。如果我们收到错误消息说服务关闭,我们会通知 channel 并设置 SERVICE_UP = false,当它再次更改时,我们发送通知说服务已备份并设置 SERVICE_UP = true。
我试图实现的伪代码或其他建议的伪代码,不确定我的 DynamoDB 表可能对我试图实现的目标来说太过分了?
if (SERVICE_UP == true):
if (failed_call):
send_notification()
SERVICE_UP = false;
if (SERVICE_UP == false):
if (successful_call):
send_notification()
SERVICE_UP = true;
最佳答案
遗憾的是,您无法在调用期间设置环境变量,因为它们是 lambda 配置的一部分。因此你可以使用 update-function-configuration API 调用以在 中设置它们的值未发布的函数 只要。如果函数已发布(即它有一个版本),则环境变量是不可变的。
作为解决方法,您可以存储变量 SERVICE_UP
外部,例如在 AWS Systems Manager Parameter Store在调用之间保持其值。
如果您的函数未发布,另一种解决方法是在函数中使用 AWS SDK 来调用 update-function-configuration
以便函数更新自己的环境变量。
简而言之,它们存储了 SERVICE_UP
值,您可以使用 AWS Lambda execution context它在函数执行之间持续一段时间。但它不是永久性的。
关于python - 我们可以在调用时设置 AWS python lambda 的环境变量吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64102169/