python-3.x - 如何运行计划的 AWS Lambda 函数,其中计划的时间是一个参数?
问题描述
我想知道是否可以使用带有输入参数的 AWS Lambda 运行 cron 作业。
示例:我调用我的 API 端点:api.example.com/LambdaFunction5?timestamp=1571299919&someOtherVariable=NetworkBytes
如您所见,这是对我的 API 的 get 请求,它将接受两个参数,一个 Epoch 时间戳(从现在起 1 天)和另一个参数(可以是任何参数)。然后,此 API 调用将使用另一个参数作为 lambda 函数中的变量,在给定的时间戳上执行一个 con 作业。
我将如何使用 AWS Lambda 实现这一目标?我知道 AWS 允许我为特定时间安排 lambda:
https://docs.aws.amazon.com/lambda/latest/dg/tutorial-scheduled-events-schedule-expressions.html
但问题是我不想每次我想要一个 cron 作业时都创建一个新的 lambda 函数。
这是一种方法吗,所以当我调用我的 API 端点时,它会根据我给出的时间创建一个 cron 作业并只运行一次,并在该作业运行后“删除”自身,所以我最终不会一百万个不同的函数或 CloudWatch 规则?
解决方案
您可以定义与 cloudwatch 事件一起发送的自定义 json 属性:
- 转到 Amazon EventBridge > 事件 > 规则
- 点击你的规则
- 点击右上角的“编辑”按钮
- 向下滚动到“选择目标”
- 点击“配置输入”</li>
- 选择“常量(JSON 文本)”单选按钮
- 在可编辑字段中添加带有参数的 json 数据。
您可能会在控制台中遇到阻止您通过控制台进行编辑的错误。您可能需要使用 CLI(我还没有语法,抱歉)。错误在这里:https ://github.com/concurrencylabs/aws-pricing-tools/issues/8
错误已关闭,但仍然存在。
推荐阅读
- ios - 代码签名和分析仪器中的应用程序的问题
- c# - 计算最后 X 条记录的平均值
- android - java.lang.IllegalStateException:指定的消息队列同步屏障令牌尚未发布或已被删除
- ios - 捕获 UIView 并在其他 UIView 中显示
- python - ValueError:检查目标时出错:预期dense_6的形状为(46,),但数组的形状为(1,)
- c - 读取调试对象内存时访问被拒绝
- kubernetes - 我可以从 OVH 云提供商将 OVH 负载均衡器连接到我的 Kubernetes 集群吗
- android - 完全用c开发应用程序
- excel - vba 宏:循环上的备用值显示并限制当前区域的选择
- flutter - 将颤动主题颜色更改为黑色时出错