python - 我们可以在调用时设置 AWS python lambda 的环境变量吗

标签 python amazon-web-services aws-lambda environment-variables

我有一个命中 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/

相关文章:

aws-lambda - AWS-CDK:跨账户资源访问和资源引用

python - 从 Python 脚本执行 Julia 文件

python - 如何对 OrderedDict 的 OrderedDict 进行排序?

python - 如何模拟 `s3fs.FileSystem().glob` ?

amazon-web-services - 如何在 AWS Lambda 中获取 Cognito 身份 ID

amazon-web-services - AWS lambda 无法创建计划事件源

python - 在Airflow的EmailOperator中访问Xcom

python - kivy python通过单击按钮将参数传递给函数

python - 如何从 Python 列表中过滤项目?

Django 亚马逊 s3 可疑操作