すべてのプロダクト
Search
ドキュメントセンター

Security Center:Python3 コンポーネント

最終更新日:Jul 11, 2025

Python3 コンポーネントを使用すると、Python 3 コードを実行できます。

機能説明

操作

説明

シナリオ

runPythonScript

Python スクリプトを実行します。

Python スクリプトを実行します。

コンポーネント構成例

このトピックでは、Python3 コンポーネントの各操作のパラメーター構成例を示します。テスト プレイブックとしてインポートできます。ビジュアル フロー エディターを使用すると、各操作の構成パラメーターをより直感的に理解してテストし、コンポーネントの機能ロジックと使用方法を簡単に習得できます。手順については、「プレイブックのインポート」をご参照ください。

説明

サンプルデータを最初に JSON ファイルとして保存できます。

サンプルデータ

{
    "cells": [
        {
            "position": {
                "x": -550, 
                "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." // プレイブックの開始ノード。プレイブックには開始ノードが 1 つだけ必要です。プレイブックの入力データ構成が必要です。
            }, 
            "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", 
                "isRequired": true, 
                "icon": "icon-upper-right-arrow"
            }, 
            "isNode": false, 
            "source": {
                "cell": "58d87b7d-28d9-4f0e-b135-4adc4f1a70e4"
            }, 
            "target": {
                "cell": "f2f5da63-9789-4967-8ef0-a84f04fd6e08"
            }, 
            "visible": true, 
            "router": {
                "name": "manhattan", 
                "args": {
                    "padding": 5, 
                    "excludeHiddenNodes": true, 
                    "excludeNodes": [
                        "clone_node_id"
                    ]
                }
            }, 
            "vertices": [ ]
        }, 
        {
            "position": {
                "x": 180, 
                "y": -160
            }, 
            "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" // 終了
            }, 
            "markup": [
                {
                    "tagName": "circle", 
                    "selector": "body"
                }, 
                {
                    "tagName": "circle", 
                    "selector": "path"
                }, 
                {
                    "tagName": "text", 
                    "selector": "label"
                }
            ], 
            "isNode": true
        }, 
        {
            "position": {
                "x": -104, 
                "y": -185
            }, 
            "size": {
                "width": 137, 
                "height": 66
            }, 
            "view": "react-shape-view", 
            "attrs": {
                "label": {
                    "text": "python3"
                }
            }, 
            "shape": "activity", 
            "id": "1a98a6d1-bf7d-494b-a109-4767ab6b683c", 
            "data": {
                "componentName": "python3", 
                "appType": "component", 
                "nodeType": "action", 
                "icon": "https://sophon-gen-v2.oss-cn-zhangjiakou.aliyuncs.com/componentUpload/1680258193158_python3_logo.png?Expires=1745635126&OSSAccessKeyId=STS.NXFP************&Signature=v0E1aypTCVrWQkqLFygJKP7lohg%3D&security-token=CAIS2AJ1q6Ft5B2yfSjIr5vzG87foZl22KyFUBLSokwYY%2Fh22qDsqTz2IHhMenFpAegcv%2Fw%2BlGFZ6%2F8elrp6SJtIXleCZtF94oxN9h2gb4fb4yUAIjSK0s%2FLI3OaLjKm9u2wCryLYbGwU%2FOpbE%2B%2B5U0X6LDmdDKkckW4OJmS8%2FBOZcgWWQ%2FKBlgvRq0hRG1YpdQdKGHaONu0LxfumRCwNkdzvRdmgm4NgsbWgO%2Fks0OP3AOrlrBN%2Bdiuf8T9NvMBZskvD42Hu8VtbbfE3SJq7BxHybx7lqQs%2B02c5onDWwAJu0%2FXa7uEo4wydVNjFbM9A65Dqufxn%2Fpgt%2Braj4X7xhhEIOVJSSPbSZBbSxJNvU1RXDxQVcEYWxylurjnXvF%2Bs5c2%2B8hAf0rM946UoJvc3YDI5hWbc8mJsTnhSSTAEIv%2By8ptqoFOtH7DkLTHWR7hCtv2306G8%2BSFMytAXxqAASheMaPI1EtW9vmzJTiUzI1Mpy%2FK1KMvL%2B5YrTITRTgQenkGkLFgTOTzW2VSuoF6w%2BpSA8UDTPnYZlyFlgELihq4wDNkqqrtUToxub0PrpMEESyGVIWbCAK0XljETFRtwl7eMM99EaqvKTN8r6%2Bhxw2xWIDH5k25760sl0KS5qaCIAA%3D", 
                "ownType": "sys", 
                "zIndex": 1, 
                "tenantId": "baba", 
                "customInput": true, 
                "description": "Run Python3 scripts.", // Python3 スクリプトを実行します。
                "id": 0, 
                "name": "runPythonScript", 
                "operateType": "general", 
                "parameters": [
                    {
                        "dataType": "Complex", 
                        "defaultValue": "", 
                        "description": "Input parameters for the Python script", // Python スクリプトの入力パラメーター
                        "name": "inputParams", // 入力パラメーター
                        "needCascader": false, 
                        "required": false, 
                        "tags": ""
                    }, 
                    {
                        "dataType": "Text", 
                        "defaultValue": "", 
                        "description": "Content of the Python script", // Python スクリプトの内容
                        "name": "pythonScript", // Python スクリプト
                        "needCascader": false, 
                        "required": false, 
                        "tags": ""
                    }
                ], 
                "riskLevel": 2, 
                "nodeName": "python3", 
                "actionName": "runPythonScript", 
                "actionDisplayName": "runPythonScript", 
                "cascaderValue": [
                    {
                        "label": "DataFormat", 
                        "value": "${DataFormat}", 
                        "children": [ ]
                    }
                ], 
                "valueData": {
                    "pythonScript": "aW1wb3J0IGxvZ2dpbmcKZGVmIGV4ZWN1dGUgKHBhcmFtcyk6CiAgaXAgPSBwYXJhbXNbJ2lwJ10KICAjbG9nZ2luZy5pbmZvKCJlbnRlciBleGVjdXRlLGlwIGlzICIraXApCiAgc3VjY2Vzcz1UcnVlCiAgbWVzc2FnZT0nT0snCiAgZGF0YT1beyJpcCI6aXB9XQogIHJldHVybiAoc3VjY2VzcyxtZXNzYWdlLGRhdGEp", // import logging\ndef execute(params):\n ip = params['ip']\n #logging.info("enter execute,ip is "+ip)\n success=True\n message="OK"\n data=[{\"ip\":ip}]\n return (success,message,data)
                    "inputParams": "[{\"fieldName\":\"ip\",\"fieldValue\":\"${DataFormat.datalist.*.ip}\",\"sampleData\":\"127.0.0.1\"}]", 
                    "keySampleMap": "{\"ip\":\"127.0.0.1\"}"
                }, 
                "status": "success" // 成功
            }, 
            "zIndex": 1
        }, 
        {
            "shape": "custom-edge", 
            "attrs": {
                "line": {
                    "stroke": "#63ba4d", 
                    "targetMarker": {
                        "stroke": "#63ba4d"
                    }
                }
            }, 
            "zIndex": 1, 
            "id": "629151e2-2f65-45ac-8992-6fc05b9b9e8f", 
            "data": {
                "nodeType": "sequenceFlow", 
                "appType": "basic", 
                "isRequired": true, 
                "icon": "icon-upper-right-arrow"
            }, 
            "isNode": false, 
            "visible": true, 
            "router": {
                "name": "manhattan", 
                "args": {
                    "padding": 5, 
                    "excludeHiddenNodes": true, 
                    "excludeNodes": [
                        "clone_node_id"
                    ]
                }
            }, 
            "source": {
                "cell": "1a98a6d1-bf7d-494b-a109-4767ab6b683c"
            }, 
            "target": {
                "cell": "317dd1be-2d20-460e-977e-1fc936ffb583"
            }, 
            "vertices": [ ]
        }, 
        {
            "position": {
                "x": -403, 
                "y": -185
            }, 
            "size": {
                "width": 137, 
                "height": 66
            }, 
            "view": "react-shape-view", 
            "attrs": {
                "label": {
                    "text": "DataFormat" // データフォーマット
                }
            }, 
            "shape": "activity", 
            "id": "f2f5da63-9789-4967-8ef0-a84f04fd6e08", 
            "data": {
                "componentName": "DataFormat", // データフォーマット
                "appType": "component", 
                "nodeType": "action", 
                "icon": "https://sophon-gen-v2.oss-cn-zhangjiakou.aliyuncs.com/componentUpload/1719222281702_DataFormat_logo.png?Expires=1745635126&OSSAccessKeyId=STS.NXFP************&Signature=BrZznwYmLW%2BogLrdq1LEnGusLiA%3D&security-token=CAIS2AJ1q6Ft5B2yfSjIr5vzG87foZl22KyFUBLSokwYY%2Fh22qDsqTz2IHhMenFpAegcv%2Fw%2BlGFZ6%2F8elrp6SJtIXleCZtF94oxN9h2gb4fb4yUAIjSK0s%2FLI3OaLjKm9u2wCryLYbGwU%2FOpbE%2B%2B5U0X6LDmdDKkckW4OJmS8%2FBOZcgWWQ%2FKBlgvRq0hRG1YpdQdKGHaONu0LxfumRCwNkdzvRdmgm4NgsbWgO%2Fks0OP3AOrlrBN%2Bdiuf8T9NvMBZskvD42Hu8VtbbfE3SJq7BxHybx7lqQs%2B02c5onDWwAJu0%2FXa7uEo4wydVNjFbM9A65Dqufxn%2Fpgt%2Braj4X7xhhEIOVJSSPbSZBbSxJNvU1RXDxQVcEYWxylurjnXvF%2Bs5c2%2B8hAf0rM946UoJvc3YDI5hWbc8mJsTnhSSTAEIv%2By8ptqoFOtH7DkLTHWR7hCtv2306G8%2BSFMytAXxqAASheMaPI1EtW9vmzJTiUzI1Mpy%2FK1KMvL%2B5YrTITRTgQenkGkLFgTOTzW2VSuoF6w%2BpSA8UDTPnYZlyFlgELihq4wDNkqqrtUToxub0PrpMEESyGVIWbCAK0XljETFRtwl7eMM99EaqvKTN8r6%2Bhxw2xWIDH5k25760sl0KS5qaCIAA%3D", 
                "ownType": "sys", 
                "zIndex": 1, 
                "tenantId": "baba", 
                "customInput": false, 
                "description": "Generate new data", // 新しいデータを生成する
                "id": 0, 
                "name": "formatdata", // データフォーマット
                "operateType": "general", 
                "output": [ ], 
                "parameters": [
                    {
                        "dataType": "Complex", 
                        "defaultValue": "", 
                        "description": "Data to be transformed and generated", // 変換および生成されるデータ
                        "enDescription": "", 
                        "name": "outputFields", // 出力フィールド
                        "needCascader": false, 
                        "required": false, 
                        "tags": ""
                    }
                ], 
                "riskLevel": 2, 
                "nodeName": "DataFormat", // データフォーマット
                "actionName": "formatdata", // データフォーマット
                "actionDisplayName": "formatdata", // データフォーマット
                "cascaderValue": [ ], 
                "valueData": {
                    "outputFields": "[{\"fieldName\":\"ip\",\"fieldValue\":\"127.0.0.1\"}]"
                }, 
                "status": "success" // 成功
            }, 
            "zIndex": 1
        }, 
        {
            "shape": "custom-edge", 
            "attrs": {
                "line": {
                    "stroke": "#63ba4d", 
                    "targetMarker": {
                        "stroke": "#63ba4d"
                    }
                }
            }, 
            "zIndex": 1, 
            "id": "097a897e-5525-4227-9050-2d3bb3fa41e8", 
            "data": {
                "nodeType": "sequenceFlow", 
                "appType": "basic", 
                "isRequired": true, 
                "icon": "icon-upper-right-arrow"
            }, 
            "isNode": false, 
            "visible": true, 
            "router": {
                "name": "manhattan", 
                "args": {
                    "padding": 5, 
                    "excludeHiddenNodes": true, 
                    "excludeNodes": [
                        "clone_node_id"
                    ]
                }
            }, 
            "source": {
                "cell": "f2f5da63-9789-4967-8ef0-a84f04fd6e08"
            }, 
            "target": {
                "cell": "1a98a6d1-bf7d-494b-a109-4767ab6b683c"
            }, 
            "vertices": [ ]
        }
    ]
}

runPythonScript

説明

Python 3.0 コードは、現在の Alibaba Cloud アカウントに属する組み込みの Python 3.9 コンテナ環境で実行されます。0.25 vCPU と 256 MB のメモリが搭載されています。スクリプトの最大実行時間は 600 秒です。

構成の説明

コンポーネントパラメーターの構成は、次の 2 つの部分で構成されます。

  • パラメーターエリア:パラメーター名とパラメーター値を構成する必要があります。

    • パラメーター名:カスタマイズをサポートします。Python コードでは、パラメーター値は「execute[「パラメーター名」]」で取得されます。

    • パラメーター値:定数、文字列、JSON、配列、前のノードからの出力値などをサポートします。

    • テストデータ:Python コードのテストに使用されます。

  • コードエリア:コンポーネントは、Python コードのオンライン記述をサポートしています execute メソッドの入力パラメーター名は、パラメーターエリアで構成されたパラメーターを受信するようにカスタマイズできます。

  • 実行結果エリア:

    • [実行] ボタンをクリックすると、このエリアで Python コードの実行出力またはエラー メッセージを確認できます。

    • 実行ログ:出力ログを表示できます。これは、実行場所、計算出力などの Python スクリプトエラーをデバッグするのに役立ちます。

      説明
      • warn、info、および error ログ レベルのみがサポートされています。

      • ログ出力には遅延があります。[更新] ボタンをクリックすると、最新の情報が表示されます。

次の図は、サンプルのフローチャートを示しています。

  • 入力パラメーター名は ip で、パラメーター値は前のノード(ノード名は「DataFormat」)から出力された ip フィールド値です。

  • execute メソッド入力パラメーターとして「params」を使用して、ip パラメーターを受信します。

  • logging.info を使用して、実行ログに出力ログを出力します。

image