amazon-web-services - 具有多个谓词条件的 Glue 的 AWS CloudFormation 模板
问题描述
我需要为 AWS Glue 编写 AWS CloudFormation 模板的代码,我正在为多个 Glue 作业创建单个模板。我为第二份工作添加了谓词条件。不幸的是,虽然谓词接受多个条件,但它只接受前一个作业的一个状态,就像前一个作业状态成功、失败或停止一样,下一个作业仍然应该运行。但是我需要它在多个状态下运行,即使之前的作业具有任何成功/失败/停止状态下一个作业应该添加。
如果我给出多个条件,它会给出错误说存在重复的工作,因为我在所有条件下都给出了相同的工作名称
我在模板中写了下面的代码片段
'''
Resources:
WF:
Type: AWS::Glue::Workflow
Properties:
Description: workflow for Parallel Jobs
Name: Sequence_Job_Triggers
SequenceTrigger:
Type: AWS::Glue::Trigger
Properties:
Name: Job_Trigger_1
Type: ON_DEMAND
Description: Description
WorkflowName: !Ref WF
Actions:
- JobName: job1
SequenceTrigger:
Type: AWS::Glue::Trigger
Properties:
Name: Job_Trigger_2
Type: CONDITIONAL
Description: Description
WorkflowName: !Ref WF
Predicate:
Conditions:
- LogicalOperator: EQUALS
JobName: job1
State: SUCCEEDED
Actions:
- JobName: job2
'''
解决方案
你不能只创建两个触发器,至少这对我有用:
SucceededSequenceTrigger:
Type: AWS::Glue::Trigger
Properties:
Name: Succeeded_Job_Trigger_2
Type: CONDITIONAL
Description: Description
WorkflowName: !Ref WF
Predicate:
Conditions:
- LogicalOperator: EQUALS
JobName: job1
State: SUCCEEDED
Actions:
- JobName: job2
FailedSequenceTrigger:
Type: AWS::Glue::Trigger
Properties:
Name: Failed_Job_Trigger_2
Type: CONDITIONAL
Description: Description
WorkflowName: !Ref WF
Predicate:
Conditions:
- LogicalOperator: EQUALS
JobName: job1
State: FAILED
Actions:
- JobName: job2
推荐阅读
- google-cloud-functions - Apigee 中的自定义域 URL,导致我进入空白的“域”页面
- mysql - 保留相关子查询的结果
- algorithm - 如何以最有效的方式将两个未排序的数组合并为一个已排序的数组?
- css - Css按钮可见点击但事件直到重复点击才注册
- php - 如何在类中启动自定义会话功能
- python - Pandas 按多列分组并执行计算
- python - 在 Python 中指定参数类型和返回值
- python - Python:如果字符串 1 包含在字符串 2 中,我如何检查两个具有重复字母的字符串?
- performance - 使用多个用户凭据和表单填写的 Jmeter 负载测试
- python - Numpy 2d 数组,获取指定列索引等于 1 的行的索引