You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用Lambda或Step Functions的情况下,在三个PySpark Glue Job成功后触发PyShell Glue Job?

方案二:EventBridge + Lambda 自定义逻辑(灵活扩展方案)

如果需要更复杂的状态判断或扩展需求,可以用EventBridge监听Job状态,结合Lambda实现触发逻辑:

  1. 开启Job状态事件通知
    在Job1、Job2、Job3的配置页面,开启「Job状态通知」,将SUCCEEDED和FAILED状态的事件发送到EventBridge。

  2. 编写Lambda触发逻辑
    创建Lambda函数,核心逻辑如下:

    • 用DynamoDB维护每日三个Job的状态记录(确保跨实例状态持久化)
    • 收到EventBridge的Job状态事件后,更新对应Job的状态
    • 检查三个Job状态:若全部为SUCCEEDED,调用Glue的start_job_run API启动Job4;若有任意一个FAILED,则清空当日状态,不触发Job4
    • 给Lambda配置IAM权限:允许读取EventBridge事件、读写DynamoDB、调用Glue Job启动API
  3. 配置EventBridge规则
    创建EventBridge规则,将三个Job的状态变化事件转发到目标Lambda函数。

  4. 定时触发前置Job
    用EventBridge定时规则分别在8、9、10点触发Job1、Job2、Job3(或保留原有定时配置)。


关键注意事项

  • 权限配置:确保各服务间IAM权限正确,比如Glue工作流需要触发Job的权限,Lambda需要调用Glue API的权限
  • 状态重置:每日任务需确保状态独立,Glue Workflow会自动隔离每日实例;Lambda+DynamoDB方案需每日清空前一天的状态记录
  • 失败告警:可配置CloudWatch告警,在任意前置Job失败时发送通知

内容的提问来源于stack exchange,提问作者priyanka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 11:27:25