Todos os produtos
Search
Central de documentação

Security Center:Componente TriggerPlaybook

Última atualização: Jun 27, 2026

À medida que os playbooks aumentam em complexidade, concentrar todas as ações em um único playbook dificulta a manutenção e a reutilização. O componente TriggerPlaybook permite dividir playbooks grandes em sub-playbooks modulares: um playbook principal chama um sub-playbook, transmite dados de entrada e lê a saída resultante. Essa abordagem mantém cada playbook focado e reutilizável em diferentes fluxos de trabalho.

O componente oferece duas ações integradas:

Ação

Onde usar

Função

callSubTaskWithQps

Playbook principal

Chama um sub-playbook com limitação de concorrência; aguarda sincronamente até que todas as execuções sejam concluídas ou atinjam o tempo limite

setOutput

Sub-playbook

Define os dados de saída que o playbook principal lerá após a execução

Funcionamento integrado: A ação callSubTaskWithQps é executada no playbook principal. Ela aciona o sub-playbook e bloqueia o fluxo até que todas as instâncias do sub-playbook terminem (ou até o tempo limite ser atingido). Já a ação setOutput roda dentro do sub-playbook para definir quais dados retornarão ao playbook principal. Configure primeiro a ação setOutput no sub-playbook e, em seguida, referencie essa saída no playbook principal por meio da ação callSubTaskWithQps.

Exemplos de configuração

Cada exemplo abaixo consiste em um arquivo JSON completo importável como playbook de teste. Após a importação, abra o playbook no editor visual de fluxo para inspecionar e testar a configuração de parâmetros de cada ação. Para obter instruções de importação, consulte Importação de playbook.

Salve os dados do exemplo como um arquivo JSON antes de importar.

Exemplo de setOutput

{
    "cells": [
        {
            "position": {
                "x": -440,
                "y": -170
            },
            "size": {
                "width": 36,
                "height": 36
            },
            "attrs": {
                "body": {
                    "fill": "white",
                    "strokeOpacity": 0.95,
                    "stroke": "black",
                    "strokeWidth": 2
                },
                "label": {
                    "text": "start",
                    "fontSize": 12,
                    "refX": 0.5,
                    "refY": "100%",
                    "refY2": 4,
                    "textAnchor": "middle",
                    "textVerticalAnchor": "top"
                }
            },
            "visible": true,
            "shape": "circle",
            "id": "58d87b7d-28d9-4f0e-b135-4adc4f1a70e4",
            "zIndex": 1,
            "data": {
                "nodeType": "startEvent",
                "appType": "basic",
                "nodeName": "start",
                "icon": "icon-circle",
                "description": "Playbook start node. A playbook must have one and only one start node, which requires input data configuration for the playbook."
            },
            "markup": [
                {
                    "tagName": "circle",
                    "selector": "body"
                },
                {
                    "tagName": "text",
                    "selector": "label"
                }
            ],
            "isNode": true
        },
        {
            "shape": "custom-edge",
            "zIndex": 1,
            "id": "5293c3f9-e1c9-4a49-b0eb-635067dc67e8",
            "data": {
                "nodeType": "sequenceFlow",
                "appType": "basic",
                "icon": "icon-upper-right-arrow",
                "isRequired": false
            },
            "isNode": false,
            "source": {
                "cell": "58d87b7d-28d9-4f0e-b135-4adc4f1a70e4"
            },
            "target": {
                "cell": "ebdc953c-2902-4133-abfd-9fc5ad707b21"
            },
            "vertices": []
        },
        {
            "position": {
                "x": 170,
                "y": -170
            },
            "size": {
                "width": 36,
                "height": 36
            },
            "attrs": {
                "body": {
                    "fill": "white",
                    "strokeOpacity": 0.95,
                    "stroke": "black",
                    "strokeWidth": 2
                },
                "path": {
                    "r": 12,
                    "refX": "50%",
                    "refY": "50%",
                    "fill": "black",
                    "strokeOpacity": 0.95,
                    "stroke": "black",
                    "strokeWidth": 4
                },
                "label": {
                    "text": "end",
                    "fontSize": 12,
                    "refX": 0.5,
                    "refY": "100%",
                    "refY2": 4,
                    "textAnchor": "middle",
                    "textVerticalAnchor": "top"
                }
            },
            "visible": true,
            "shape": "circle",
            "id": "317dd1be-2d20-460e-977e-1fc936ffb583",
            "zIndex": 1,
            "data": {
                "nodeType": "endEvent",
                "appType": "basic",
                "nodeName": "end",
                "icon": "icon-radio-off-full",
                "description": "end"
            },
            "markup": [
                {
                    "tagName": "circle",
                    "selector": "body"
                },
                {
                    "tagName": "circle",
                    "selector": "path"
                },
                {
                    "tagName": "text",
                    "selector": "label"
                }
            ],
            "isNode": true
        },
        {
            "position": {
                "x": -297,
                "y": -185
            },
            "size": {
                "width": 137,
                "height": 66
            },
            "view": "react-shape-view",
            "shape": "activity",
            "id": "ebdc953c-2902-4133-abfd-9fc5ad707b21",
            "zIndex": 1,
            "data": {
                "nodeType": "action",
                "appType": "component",
                "nodeName": "DataFormat",
                "valueData": {
                    "outputFields": "[{\"fieldName\":\"name\",\"fieldValue\":\"${event.name}_Sub\"},{\"fieldName\":\"age\",\"fieldValue\":\"${event.age}_Sub\"}]"
                },
                "icon": "https://sophon-gen-v2.oss-cn-zhangjiakou.aliyuncs.com/componentUpload/1719222281702_DataFormat_logo.png?Expires=1745549020&OSSAccessKeyId=STS.NVgz************&Signature=HtvRQuo%2BgDw7egOVmZYuihj3Z9Q%3D&security-token=CAIS2AJ1q6Ft5B2yfSjIr5XSMYv%2FoLYV1pKpSULpgXcPZulDnJOc0Dz2IHhMenFpAegcv%2Fw%2BlGFZ6%2F8elrp6SJtIXleCZtF94oxN9h2gb4fb400mTGGK0s%2FLI3OaLjKm9u2wCryLYbGwU%2FOpbE%2B%2B5U0X6LDmdDKkckW4OJmS8%2FBOZcgWWQ%2FKBlgvRq0hRG1YpdQdKGHaONu0LxfumRCwNkdzvRdmgm4NgsbWgO%2Fks0OP3AOrlrBN%2Bdiuf8T9NvMBZskvD42Hu8VtbbfE3SJq7BxHybx7lqQs%2B02c5onDWwAJu0%2FXa7uEo4wydVNjFbM9A65Dqufxn%2Fpgt%2Braj4X7xhhEIOVJSSPbSZBbSxJNvU1RXDxQVcEYWxylurjnXvF%2Bo1K1xOgUGin%2B2svzhw6RGJ1dq8DgINtD0jokjPndRVbLXs84nxS7gbsGn76oY2zradH%2FdU4vuWVwMytAXxqAASmDGMrrsc17A02zxAGygdO5NYPui1jn%2BSY7C6gPM7rbo6PMdEFZX2yrNrPIWiL%2FZl3CXTr9B84IhYB%2BqtLWbOidAj9UOvH7iCjL%2B%2FWVElkcfZzL6gT%2B0Ech6QH3PTlC6B%2FT4e69%2FsLD%2BogKYS8Ziv%2F%2Fbd8%2BlrcMu5FNBBFigttDIAA%3D",
                "description": "Generate new data",
                "advance": {
                    "inputParamMode": false,
                    "onError": "stop_cur_flow",
                    "rspStatusType": 3,
                    "rspStatusThreshold": 0
                },
                "componentName": "DataFormat",
                "actionName": "formatdata"
            },
            "isNode": true
        },
        {
            "shape": "custom-edge",
            "zIndex": 1,
            "id": "5ae3f1ac-4d5b-433b-a9e7-725ea53f36db",
            "data": {
                "nodeType": "sequenceFlow",
                "appType": "basic",
                "icon": "icon-upper-right-arrow",
                "isRequired": false
            },
            "isNode": false,
            "source": {
                "cell": "ebdc953c-2902-4133-abfd-9fc5ad707b21"
            },
            "target": {
                "cell": "025181c9-9678-45a1-bbd9-0a7fa3eb2b7e"
            },
            "vertices": []
        },
        {
            "position": {
                "x": -60,
                "y": -190
            },
            "size": {
                "width": 137,
                "height": 66
            },
            "view": "react-shape-view",
            "shape": "activity",
            "id": "025181c9-9678-45a1-bbd9-0a7fa3eb2b7e",
            "zIndex": 1,
            "data": {
                "nodeType": "action",
                "appType": "component",
                "nodeName": "TriggerPlaybook_1",
                "valueData": {
                    "infos": "[{\"fieldName\":\"name\",\"fieldValue\":\"${DataFormat.datalist.*.name}\"},{\"fieldName\":\"age\",\"fieldValue\":\"${DataFormat.datalist.*.age}\"}]"
                },
                "icon": "https://sophon-gen-v2.oss-cn-zhangjiakou.aliyuncs.com/componentUpload/1666576284868_TriggerPlaybook_logo.svg?Expires=1745549020&OSSAccessKeyId=STS.NVgz************&Signature=%2FjtIi%2Btlp%2FH9PxUne6LeG4lS%2B2Y%3D&security-token=CAIS2AJ1q6Ft5B2yfSjIr5XSMYv%2FoLYV1pKpSULpgXcPZulDnJOc0Dz2IHhMenFpAegcv%2Fw%2BlGFZ6%2F8elrp6SJtIXleCZtF94oxN9h2gb4fb400mTGGK0s%2FLI3OaLjKm9u2wCryLYbGwU%2FOpbE%2B%2B5U0X6LDmdDKkckW4OJmS8%2FBOZcgWWQ%2FKBlgvRq0hRG1YpdQdKGHaONu0LxfumRCwNkdzvRdmgm4NgsbWgO%2Fks0OP3AOrlrBN%2Bdiuf8T9NvMBZskvD42Hu8VtbbfE3SJq7BxHybx7lqQs%2B02c5onDWwAJu0%2FXa7uEo4wydVNjFbM9A65Dqufxn%2Fpgt%2Braj4X7xhhEIOVJSSPbSZBbSxJNvU1RXDxQVcEYWxylurjnXvF%2Bo1K1xOgUGin%2B2svzhw6RGJ1dq8DgINtD0jokjPndRVbLXs84nxS7gbsGn76oY2zradH%2FdU4vuWVwMytAXxqAASmDGMrrsc17A02zxAGygdO5NYPui1jn%2BSY7C6gPM7rbo6PMdEFZX2yrNrPIWiL%2FZl3CXTr9B84IhYB%2BqtLWbOidAj9UOvH7iCjL%2B%2FWVElkcfZzL6gT%2B0Ech6QH3PTlC6B%2FT4e69%2FsLD%2BogKYS8Ziv%2F%2Fbd8%2BlrcMu5FNBBFigttDIAA%3D",
                "advance": {
                    "inputParamMode": false,
                    "onError": "stop_cur_flow",
                    "rspStatusType": 3,
                    "rspStatusThreshold": 0
                },
                "componentName": "TriggerPlaybook",
                "actionName": "setOutput"
            },
            "isNode": true
        },
        {
            "shape": "custom-edge",
            "zIndex": 1,
            "id": "4f5dfe7c-751a-405c-a9b4-c0ff7c083ad9",
            "data": {
                "nodeType": "sequenceFlow",
                "appType": "basic",
                "icon": "icon-upper-right-arrow",
                "isRequired": false
            },
            "isNode": false,
            "source": {
                "cell": "025181c9-9678-45a1-bbd9-0a7fa3eb2b7e"
            },
            "target": {
                "cell": "317dd1be-2d20-460e-977e-1fc936ffb583"
            },
            "vertices": []
        }
    ]
}

Exemplo de callSubTaskWithQps

{
    "cells": [
        {
            "position": {
                "x": -440,
                "y": -170
            },
            "size": {
                "width": 36,
                "height": 36
            },
            "attrs": {
                "body": {
                    "fill": "white",
                    "strokeOpacity": 0.95,
                    "stroke": "#63ba4d",
                    "strokeWidth": 2
                },
                "label": {
                    "text": "start",
                    "fontSize": 12,
                    "refX": 0.5,
                    "refY": "100%",
                    "refY2": 4,
                    "textAnchor": "middle",
                    "textVerticalAnchor": "top"
                },
                "path": {
                    "stroke": "#63ba4d"
                }
            },
            "visible": true,
            "shape": "circle",
            "id": "58d87b7d-28d9-4f0e-b135-4adc4f1a70e4",
            "zIndex": 1,
            "data": {
                "nodeType": "startEvent",
                "appType": "basic",
                "nodeName": "start",
                "icon": "icon-circle",
                "description": "Playbook start node. A playbook must have one and only one start node, which requires input data configuration for the playbook."
            },
            "markup": [
                {
                    "tagName": "circle",
                    "selector": "body"
                },
                {
                    "tagName": "text",
                    "selector": "label"
                }
            ],
            "isNode": true
        },
        {
            "shape": "custom-edge",
            "attrs": {
                "line": {
                    "stroke": "#63ba4d",
                    "targetMarker": {
                        "stroke": "#63ba4d"
                    }
                }
            },
            "zIndex": 1,
            "id": "5293c3f9-e1c9-4a49-b0eb-635067dc67e8",
            "data": {
                "nodeType": "sequenceFlow",
                "appType": "basic",
                "icon": "icon-upper-right-arrow",
                "isRequired": false
            },
            "isNode": false,
            "source": {
                "cell": "58d87b7d-28d9-4f0e-b135-4adc4f1a70e4"
            },
            "target": {
                "cell": "bf7d41ee-bd07-4b57-a3bc-02b50603c4f5"
            },
            "vertices": [

            ],
            "visible": true,
            "router": {
                "name": "manhattan",
                "args": {
                    "padding": 5,
                    "excludeHiddenNodes": true,
                    "excludeNodes": [
                        "clone_node_id"
                    ]
                }
            }
        },
        {
            "position": {
                "x": 240,
                "y": -170
            },
            "size": {
                "width": 36,
                "height": 36
            },
            "attrs": {
                "body": {
                    "fill": "white",
                    "strokeOpacity": 0.95,
                    "stroke": "#63ba4d",
                    "strokeWidth": 2
                },
                "path": {
                    "r": 12,
                    "refX": "50%",
                    "refY": "50%",
                    "fill": "#63ba4d",
                    "strokeOpacity": 0.95,
                    "stroke": "#63ba4d",
                    "strokeWidth": 4
                },
                "label": {
                    "text": "end",
                    "fontSize": 12,
                    "refX": 0.5,
                    "refY": "100%",
                    "refY2": 4,
                    "textAnchor": "middle",
                    "textVerticalAnchor": "top"
                }
            },
            "visible": true,
            "shape": "circle",
            "id": "317dd1be-2d20-460e-977e-1fc936ffb583",
            "zIndex": 1,
            "data": {
                "nodeType": "endEvent",
                "appType": "basic",
                "nodeName": "end",
                "icon": "icon-radio-off-full",
                "description": "end",
                "cascaderValue": [
                    {
                        "label": "DataFormat_1",
                        "value": "${DataFormat_1}",
                        "children": [

                        ]
                    },
                    {
                        "label": "TriggerPlaybook",
                        "value": "${TriggerPlaybook}",
                        "children": [

                        ]
                    }
                ]
            },
            "markup": [
                {
                    "tagName": "circle",
                    "selector": "body"
                },
                {
                    "tagName": "circle",
                    "selector": "path"
                },
                {
                    "tagName": "text",
                    "selector": "label"
                }
            ],
            "isNode": true
        },
        {
            "position": {
                "x": -144,
                "y": -185
            },
            "size": {
                "width": 137,
                "height": 66
            },
            "view": "react-shape-view",
            "shape": "activity",
            "id": "bf7d41ee-bd07-4b57-a3bc-02b50603c4f5",
            "zIndex": 1,
            "data": {
                "nodeType": "action",
                "appType": "component",
                "nodeName": "TriggerPlaybook",
                "valueData": {
                    "event": "[{\"fieldName\":\"name\",\"fieldValue\":\"TriggerPlaybook\"},{\"fieldName\":\"age\",\"fieldValue\":\"18\"},{\"fieldName\":\"ip\",\"fieldValue\":\"192.168.10.1\"},{\"fieldName\":\"scope\",\"fieldValue\":\"1766185894104675\"}]",
                    "tenantId": "1359316744907524",
                    "taskName": "system_aliyun_waf_batch_whitelist_book"
                },
                "icon": "https://sophon-gen-v2.oss-cn-zhangjiakou.aliyuncs.com/componentUpload/1666576284868_TriggerPlaybook_logo.svg?Expires=1745548802&OSSAccessKeyId=STS.NVL1uKAoNQbuFQBTpRHpZMCaN&Signature=w22i0vzkKODDUY9xNAwfril0uTo%3D&security-token=CAIS2AJ1q6Ft5B2yfSjIr5X5es%2F%2FrLBv5qCeRHfzsHAHRP92oobKrDz2IHhMenFpAegcv%2Fw%2BlGFZ6%2F8elrp6SJtIXleCZtF94oxN9h2gb4fb4yMGWW6K0s%2FLI3OaLjKm9u2wCryLYbGwU%2FOpbE%2B%2B5U0X6LDmdDKkckW4OJmS8%2FBOZcgWWQ%2FKBlgvRq0hRG1YpdQdKGHaONu0LxfumRCwNkdzvRdmgm4NgsbWgO%2Fks0OP3AOrlrBN%2Bdiuf8T9NvMBZskvD42Hu8VtbbfE3SJq7BxHybx7lqQs%2B02c5onDWwAJu0%2FXa7uEo4wydVNjFbM9A65Dqufxn%2Fpgt%2Braj4X7xhhEIOVJSSPbSZBbSxJNvU1RXDxQVcEYWxylurjnXvF%2Bs5SwZtdAf0rM946UoJvc3YDI5hWbc8mJsTnhSSTAEIv%2By8ptqoFOtH7DkLTHWR7hCtv2305QYbPzMytAXxqAAa%2Bmv7bOZIL67fKJSGOwNGVYwDkNYp2zvM3zoahdc4lQ0oeSmmNoFIvUzRWck5dqsTWQ0D%2BJzP45DavayQJlYdzomPe%2B1HdN%2BLEIuOGaP202XYPIW6ZE2GI8R2Vq6WYhXZEaMB5PmDGO59NwFAhuZCkhixpwmkFhiuNhw6P3XmoTIAA%3D",
                "advance": {
                    "inputParamMode": false,
                    "onError": "stop_cur_flow",
                    "rspStatusType": 3,
                    "rspStatusThreshold": 0
                },
                "componentName": "TriggerPlaybook",
                "actionName": "callSubTaskWithQps",
                "status": "success",
                "cascaderValue": [

                ]
            },
            "isNode": true
        },
        {
            "shape": "custom-edge",
            "attrs": {
                "line": {
                    "stroke": "#63ba4d",
                    "targetMarker": {
                        "stroke": "#63ba4d"
                    }
                }
            },
            "zIndex": 1,
            "id": "439e42d8-8ff8-4b12-9c8e-32e16a4fb9db",
            "data": {
                "nodeType": "sequenceFlow",
                "appType": "basic",
                "icon": "icon-upper-right-arrow",
                "isRequired": false
            },
            "isNode": false,
            "source": {
                "cell": "bf7d41ee-bd07-4b57-a3bc-02b50603c4f5"
            },
            "target": {
                "cell": "317dd1be-2d20-460e-977e-1fc936ffb583"
            },
            "vertices": [

            ],
            "visible": true,
            "router": {
                "name": "manhattan",
                "args": {
                    "padding": 5,
                    "excludeHiddenNodes": true,
                    "excludeNodes": [
                        "clone_node_id"
                    ]
                }
            }
        }
    ]
}

callSubTaskWithQps

Use a ação callSubTaskWithQps no playbook principal para invocar um sub-playbook. O playbook principal aguarda sincronamente até que todas as execuções do sub-playbook sejam concluídas ou até que o tempo limite seja atingido antes de prosseguir. Cada execução de sub-playbook gera um registro de execução. Para visualizar os registros, consulte Visualizar registros de execução de playbook.

Parâmetros

Parâmetro

Descrição

Select playbook

Sub-playbook a ser chamado. Lista todos os playbooks disponíveis na conta atual.

Input

Parâmetros de entrada configurados no nó inicial do sub-playbook.

Output

Parâmetros de saída configurados no nó inicial do sub-playbook.

Configuração avançada

Parâmetro

Descrição

Padrão

Máximo

maxTasks

Número máximo de execuções simultâneas de sub-playbooks. Padrão: 20. Se definido como 0 ou menos, o valor padrão de 20 será aplicado.

20

50

waitMaxTimeOneTask

Tempo máximo de espera para uma única execução de sub-playbook, em segundos.

43200 (12 horas)

86400 (1 dia)

waitMaxTime

Tempo máximo de espera combinado para todas as execuções de sub-playbooks, em segundos.

43200 (12 horas)

86400 (1 dia)

Funcionamento da limitação de concorrência

O parâmetro maxTasks controla quantas instâncias de sub-playbooks rodam simultaneamente. Quando o número de chamadas excede o valor de maxTasks, as chamadas excedentes entram em fila e iniciam conforme as instâncias em execução são finalizadas.

Por exemplo, com maxTasks definido como 20 (o padrão) e 100 chamadas a serem feitas: as primeiras 20 iniciam imediatamente e as 80 restantes ficam na fila. À medida que cada uma das 20 primeiras termina, uma chamada da fila é iniciada, continuando até que todas as 100 tenham sido executadas.

Ação setOutput

Use a ação setOutput no sub-playbook para especificar quais dados o playbook principal deverá ler após a conclusão da execução.

Parâmetros

  • Os parâmetros de saída disponíveis aqui correspondem àqueles configurados na seção de parâmetros de entrada e saída do nó inicial do sub-playbook. Para detalhes sobre a configuração do nó inicial, consulte Início/Fim.

  • Os valores dos parâmetros aceitam constantes, expressões, valores de saída de nós anteriores, entre outros. Para mais informações, veja Parâmetros de componentes e fluxo de execução de nós.