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

AWS Data Pipeline ShellCommandPrecondition返回值及重试规则咨询

AWS Data Pipeline ShellCommandPrecondition 常见问题解答

我之前在AWS Data Pipeline里配置ShellCommandPrecondition的时候也踩过这些坑,刚好能帮你理清这些点:

1. 返回值规则:如何通过脚本返回"true"或"false"

AWS Data Pipeline对ShellCommandPrecondition的返回值逻辑完全遵循标准Shell脚本的退出码规则:

  • 当脚本返回0时,预条件被判定为true,管道会继续执行后续的活动
  • 当脚本**返回非0值(比如1、2等)**时,预条件被判定为false,管道会暂停,等待预条件重试(或者根据配置终止)

举个简单的实用例子——如果要检查S3上是否存在当月的目标数据文件,脚本可以这么写:

#!/bin/bash
# 检查S3桶中是否存在当月的CSV文件
aws s3 ls s3://your-target-bucket/monthly-data/$(date +%Y-%m).csv > /dev/null 2>&1
# 直接返回aws命令的退出码:存在则0,不存在则1
exit $?

2. 预条件的重试间隔

默认情况下,ShellCommandPrecondition的重试间隔是15分钟,这个间隔支持自定义调整:

  • 你可以在预条件的配置中添加retryDelay参数,单位为分钟。比如设置retryDelay="60"就是每小时重试一次,retryDelay="1"就是每分钟重试一次
  • 重试会持续到预条件返回0,或者达到管道的超时时间(默认是7天,也可以通过timeout参数自行调整)

3. 配置每月运行的管道结合预条件

要实现「每月运行一次且仅在预条件满足时执行」的管道,只需两步配置:

  • 设置管道调度规则:在管道的schedule部分配置cron表达式,比如cron(0 0 1 * ? *)表示每月1号凌晨0点触发管道
  • 绑定预条件到目标活动:把你的预条件脚本关联到需要执行的核心活动上,这样管道触发后会先检查预条件;只有当脚本返回0时,才会执行后续活动;如果预条件不满足,会按照你设置的重试间隔反复检查,直到满足或者超时

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:55:45