简体   繁体   English

Boto3 在一个工作流程中创建不同类型的胶水触发器

[英]Boto3 create glue triggers with different types in one workflow

Can anyone please guide me steps to create multiple triggers types one with conditional and other with scheduled trigger type in single workflow任何人都可以指导我在单个工作流程中创建多个触发器类型的步骤,一种具有条件触发器类型,另一种具有预定触发器类型

So far I have used create_trigger function. But above requirement not sure how to address.到目前为止,我使用了 create_trigger function。但以上要求不确定如何解决。

Can any one help here please.任何人都可以在这里帮忙吗?

I have tried with below syntax didn't work我尝试使用以下语法无效

response = client.create_trigger(
    Name='two_triggers',
    WorkflowName='wf_With_two_tirggers',
    Type='SCHEDULED',
    Schedule='cron(0 12 * * ? *)',
    Actions=[
        {   
            'JobName': 'abc_dev',
            'Arguments': {
                'string': 'string'
            },
            'Timeout': 123,
            'SecurityConfiguration': 'string',
            'NotificationProperty': {
                'NotifyDelayAfter': 123
            },
            'Trigger': 'string'
        },
    ],
    Type='CONDITIONAL',
    Predicate={
        'Logical': 'ANY',
        'Conditions': [
            {
                'LogicalOperator': 'EQUALS',
                'JobName': 'def_dev',
                'State': 'SUCCEEDED'
            },
        ]
    },
    Actions=[
        {
            'JobName': 'ghi_dev',
            'Arguments': {
                'string': 'string'
            },
            'Timeout': 123,
            'SecurityConfiguration': 'string',
            'NotificationProperty': {
                'NotifyDelayAfter': 123
            },
            'CrawlerName': 'string'
        },
    ],
    Description='string',
    StartOnCreation=True,
    Tags={
        'string': 'string'
    }
)

Below is the design workflow struggling to write code for.下面是努力编写代码的设计工作流程。 Tried with above code for below design using boto3 didn't work使用 boto3 尝试使用上面的代码进行以下设计无效

在此处输入图像描述

Yes I figured out on an answer.是的,我想出了一个答案。 Below is the code for design given in question以下是有问题的设计代码

import boto3
import os
import logging
glue = boto3.client(service_name="glue", region_name='us-east-1')


response = glue.create_workflow(
    Name="dual_trigger_wf")

response1 = glue.create_trigger(
    Name="trigger_one_to_many",
    WorkflowName="dual_trigger_wf",
    Type="SCHEDULED",
    Schedule="cron(0 8 * * ? *)",
    Actions=[
        {
            "JobName": "abc",
            "Arguments": {"string": "string"},
            "Timeout": 123,
            "SecurityConfiguration": "string",
            "NotificationProperty": {"NotifyDelayAfter": 123},
        },
        {
            "JobName": "def",
            "Arguments": {"string": "string"},
            "Timeout": 123,
            "SecurityConfiguration": "string",
            "NotificationProperty": {"NotifyDelayAfter": 123},
        },
    ],
    Description="string",
    StartOnCreation=False,
)


response2 = glue.create_trigger(
    Name="trigger_many_to_one",
    WorkflowName="dual_trigger_wf",
    Type="CONDITIONAL",
    Predicate={
        "Logical": "AND",
        "Conditions": [
            {
                "LogicalOperator": "EQUALS",
                "JobName": "abc",
                "State": "SUCCEEDED",
            },
            {
                "LogicalOperator": "EQUALS",
                "JobName": "def",
                "State": "SUCCEEDED",
            },
        ],
    },
    Actions=[
        {
            "JobName": "ghi",
            "Arguments": {"string": "string"},
            "Timeout": 123,
            "SecurityConfiguration": "string",
            "NotificationProperty": {"NotifyDelayAfter": 123},
        }
    ],
    Description="string",
    StartOnCreation=False,
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM