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

使用Boto3调用start_workflow_run()触发Glue工作流时,Lambda会全程运行直至工作流完成吗?

Lambda触发Glue工作流的执行行为说明

你提到的这个问题很常见,我来给你明确说明:

当你的Lambda函数调用start_workflow_run启动Glue工作流后,Lambda会立刻结束运行,不会在整个工作流执行期间持续运行。

原因解释:

  • start_workflow_run是一个异步API,它的作用只是向Glue服务发送启动工作流的请求,一旦Glue确认接收请求并返回包含RunId的响应,这个API调用就完成了。
  • Lambda函数的执行周期会在lambda_handler函数执行完最后一行代码后结束——也就是你的代码里打印完响应内容之后,Lambda就会停止运行,不会再监控后续Glue工作流的执行状态。

结合你的代码来看:

你的代码逻辑就是创建Glue客户端、调用启动工作流的API、打印响应结果。整个Lambda的执行流程到print(json.dumps(response, indent=4))这一行就彻底结束了,之后Lambda会释放资源,不会等待Glue工作流跑完。

import json
import boto3
# create glue client
client=boto3.client('glue')
def lambda_handler(event, context):
    print("lambda working")
    response = client.start_workflow_run(Name='workflowName')
    print(json.dumps(response, indent=4))

额外补充(如果需要监控工作流状态):

如果你的业务需要Lambda等待工作流完成或者处理工作流的执行结果,得额外实现逻辑:

  • 可以在Lambda中加入轮询逻辑,定期调用get_workflow_runAPI检查工作流的运行状态,直到工作流完成或失败(注意要考虑Lambda的超时限制,最长15分钟)。
  • 或者通过Glue的CloudWatch事件通知,当工作流状态变化时触发另一个Lambda函数来处理后续逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 03:03:11