AliyunCloudOpenAPI组件

AliyunCloudOpenAPI组件主要功能为调用阿里云OpenAPI。

功能描述

动作

描述

使用场景

assumeApi

以角色扮演的方式调用阿里云的OpenAPI。

调用阿里云OpenAPI。

组件配置示例

本文提供了AliyunCloudOpenAPI组件各动作的参数配置示例,您可将其作为测试剧本导入。通过可视化流程编辑器,能更直观地了解和测试各动作的配置参数,轻松掌握组件的功能逻辑与使用方式。操作步骤可参考剧本导入

说明

请先将示例数据保存为JSON文件,再导入编辑器中。

示例数据

{
    "cells": [
        {
            "position": {
                "x": -590,
                "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": "剧本开始节点,一个剧本必须有且仅有一个开始节点,需为剧本配置输入数据。"
            },
            "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": "1776030c-a880-4278-985d-372aa1245097"
            },
            "visible": true,
            "router": {
                "name": "manhattan",
                "args": {
                    "padding": 5,
                    "excludeHiddenNodes": true,
                    "excludeNodes": [
                        "clone_node_id"
                    ]
                }
            },
            "vertices": []
        },
        {
            "position": {
                "x": -70,
                "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"
            },
            "markup": [
                {
                    "tagName": "circle",
                    "selector": "body"
                },
                {
                    "tagName": "circle",
                    "selector": "path"
                },
                {
                    "tagName": "text",
                    "selector": "label"
                }
            ],
            "isNode": true
        },
        {
            "position": {
                "x": -355,
                "y": -185
            },
            "size": {
                "width": 137,
                "height": 66
            },
            "view": "react-shape-view",
            "attrs": {
                "label": {
                    "text": "AliyunCloudOpenAPI_1"
                }
            },
            "shape": "activity",
            "id": "1776030c-a880-4278-985d-372aa1245097",
            "data": {
                "componentName": "AliyunCloudOpenAPI",
                "appType": "component",
                "nodeType": "action",
                "icon": "https://sophon-gen-v2.oss-cn-zhangjiakou.aliyuncs.com/componentUpload/1704268807647_AliyunCloudOpenAPI_logo.svg?Expires=1745572811&OSSAccessKeyId=STS.NVg5************&Signature=Ts9Eve8cAijQpj7qAEvpwS%2BlQfM%3D&security-token=CAIS2AJ1q6Ft5B2yfSjIr5XSfuPbied75YShM1DcgmENOOYZiqudszz2IHhMenFpAegcv%2Fw%2BlGFZ6%2F8elrp6SJtIXleCZtF94oxN9h2gb4fb4wNwAxCK0s%2FLI3OaLjKm9u2wCryLYbGwU%2FOpbE%2B%2B5U0X6LDmdDKkckW4OJmS8%2FBOZcgWWQ%2FKBlgvRq0hRG1YpdQdKGHaONu0LxfumRCwNkdzvRdmgm4NgsbWgO%2Fks0OP3AOrlrBN%2Bdiuf8T9NvMBZskvD42Hu8VtbbfE3SJq7BxHybx7lqQs%2B02c5onDWwAJu0%2FXa7uEo4wydVNjFbM9A65Dqufxn%2Fpgt%2Braj4X7xhhEIOVJSSPbSZBbSxJNvU1RXDxQVcEYWxylurjnXvF%2BgxU4zKwUGin%2B2svzhw6RGJ1dq8DgINtD0jokjPndRVbLXs84nxS7gbsGn76oY2zradH%2FdU4c3eomMytAXxqAAXgZ2cW8JPp%2BiPTh%2F2gz8G4R0EqSnRCh7mh329DFysHv%2BjnmotGHyhNeom8etpJxZmeu9pKFR9aeii31pjUcjGgTJqcn891gXw8i%2FhwqtZWvUbeWdYHlw6%2BXIxvQkN0S90gI5mAswyt8oZHUBLxn%2FZh3zRmZThj6HXcqycTPdzgAIAA%3D",
                "ownType": "sys",
                "zIndex": 1,
                "tenantId": "baba",
                "customInput": false,
                "description": "通用的阿里云Openapi调用组件",
                "id": 0,
                "name": "assumeApi",
                "operateType": "general",
                "parameters": [
                    {
                        "dataType": "Complex",
                        "defaultValue": "",
                        "description": "api请求参数",
                        "enDescription": "",
                        "name": "inputParams",
                        "needCascader": false,
                        "required": true,
                        "tags": ""
                    },
                    {
                        "dataType": "String",
                        "defaultValue": "",
                        "description": "ram权限信息",
                        "enDescription": "",
                        "name": "ramInfo",
                        "needCascader": false,
                        "required": true,
                        "tags": ""
                    },
                    {
                        "dataType": "String",
                        "defaultValue": "",
                        "description": "api请求入参",
                        "enDescription": "",
                        "name": "apiInfo",
                        "needCascader": false,
                        "required": true,
                        "tags": ""
                    },
                    {
                        "dataType": "String",
                        "defaultValue": "",
                        "description": "自动翻页信息配置",
                        "enDescription": "",
                        "name": "pageInfo",
                        "needCascader": false,
                        "required": false,
                        "tags": ""
                    },
                    {
                        "dataType": "String",
                        "defaultValue": "",
                        "description": "自动滚动信息配置",
                        "enDescription": "",
                        "name": "cursorInfo",
                        "needCascader": false,
                        "required": false,
                        "tags": ""
                    },
                    {
                        "dataType": "String",
                        "defaultValue": "",
                        "description": "API执行高级配置",
                        "enDescription": "",
                        "name": "apiConfig",
                        "needCascader": false,
                        "required": false,
                        "tags": ""
                    }
                ],
                "riskLevel": 2,
                "nodeName": "AliyunCloudOpenAPI_1",
                "actionName": "assumeApi",
                "actionDisplayName": "assumeApi",
                "cascaderValue": [],
                "valueData": {
                    "apiInfo": "{\"endPoint\":\"sophonsoar.aliyuncs.com\",\"popCode\":\"sophonsoar\",\"productName\":\"云安全中心(响应编排)\",\"version\":\"2022-07-28\",\"apiName\":\"DescribePlaybooks\",\"methods\":\"get\",\"schemes\":\"https\",\"fieldArray\":[]}",
                    "ramInfo": "{\"aliUid\":\"${input._tenant_id}\"}",
                    "inputParams": "[]",
                    "pageInfo": "{\"needPageInfo\":false}",
                    "cursorInfo": "{}",
                    "apiConfig": "{}"
                },
                "status": "success"
            },
            "zIndex": 1
        },
        {
            "shape": "custom-edge",
            "attrs": {
                "line": {
                    "stroke": "#63ba4d",
                    "targetMarker": {
                        "stroke": "#63ba4d"
                    }
                }
            },
            "zIndex": 1,
            "id": "70499ae3-5763-417e-a435-732a72b9aea5",
            "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": "1776030c-a880-4278-985d-372aa1245097"
            },
            "target": {
                "cell": "317dd1be-2d20-460e-977e-1fc936ffb583"
            },
            "vertices": []
        }
    ]
}

assumeApi

使用组件动作配置流程如下:

image

重要

在选择了对应云产品的OpenAPI后,需要注意有没有绑定对应的权限策略,如果没有,需要进行授权。

选择云产品

在基础信息页签,阿里云产品区域单击对应的云产品,支持产品名称模糊搜索。

image

选择API接口

选择完云产品后,系统将自动拉取当前云产品支持的接口列表,单击接口名称即可。

配置接口参数

  1. 选择完API接口后,系统将自动弹出接口参数配置页,也可单击接口配置按钮进入配置页。

    image

  2. 配置接口

    阿里云账号配置

    服务器地址配置

    可单击推荐地址获取系统推荐地址,常见推荐地址如下:

    重要

    推荐地址仅供参考,建议您前往阿里云官网文档,查阅各产品服务的接入点说明文档以获取准确信息。

    • [产品Code].[RegionId].aliyuncs.com,例如:ecs.cn-hangzhou.aliyuncs.com。

    • [产品Code].aliyuncs.com,例如:ram.aliyuncs.com。

    参数配置

    参数配置可基于当前接口的 API 文档自动拉取接入参数列表,您只需按文档说明填写对应参数值即可。你可直接在左下角image快速打开API文档说明。

    高级配置

    若接口支持分页查询,需要在高级配置中配置分页参数。组件支持自动分页(PageSize+PageNumber)与滚动分页(游标 Key)两种模式,可根据接口特性自动映射分页参数并循环调用API直至获取全量数据。

    类型

    参数

    说明

    自动分页

    最大请求次数

    分页最大请求的次数即循环调用API的次数。

    总条数获取路径

    从响应参数中获取总条数的路径,JSONPath格式,支持多层次嵌套。

    • 若返回参数是一层结构,配置格式为".目标参数字段名"。下方示例的路径配置为:.TotalCount。

      {
        "TotalCount": 1,
        "PageNumber": 1,
        "PageSize": 10
      }
    • 当返回参数存在嵌套结构时,需按层级顺序拼接完整参数路径,直至定位目标参数。格式为"."+一级参数字段名+"."+"二级参数字段名"+......+"."+"目标参数字段名"

      下方示例为二层嵌套,路径配置为:.Page.TotalCount。

      "Page": {
          "TotalCount": 22,
          "PageNumber": 1,
          "PageSize": 10
        }

    分页映射字段

    请求参数中的分页映射字段,如PageNumber。

    单页条数映射字段

    请求参数中的单页条数映射字段,如PageSize。

    滚动查询

    最大请求次数

    分页最大请求的次数即循环调用API的次数。

    游标字段映射

    请求参数中的游标字段映射,如NextToken。

    游标获取路径

    返回参数中游标的值,JSONPath格式。

    • 若返回参数是一层结构,配置格式为".目标参数字段名"。以下示例,路径配置为:.NextToken。

      {
       "CurrentPage": 1,
       "PageSize": 10,
       "TotalCount": 202,
       "Count": 4,
       "NextToken": "B604532DEF982B875E8360A6EFA3B***"
      }
    • 当返回参数存在嵌套结构时,需按层级顺序拼接完整参数路径,直至定位目标参数。格式为"."+一级参数字段名+"."+"二级参数字段名"+......+"."+"目标参数字段名",。

      以下为二层嵌套示例,路径配置为:.PageInfo.NextToken。

      {
        "PageInfo": {
          "CurrentPage": 1,
          "PageSize": 10,
          "TotalCount": 202,
          "Count": 4,
          "NextToken": "B604532DEF982B875E8360A6EFA3B***"
        },
        "Success": true,
        "Code": 200,
        "Message": "successful",
        "RequestId": "CB414DB5-F692-5DAB-9F0F-975C060AF***",
        "HttpStatusCode": 200
      }

    循环调用

    API循环调用间隔

    设置每次翻页查询调用API的间隔,以防止触发接口限流。

接口授权

系统会提示调用当前接口的角色名以及需要为其绑定的接口操作权限策略。

image

绑定步骤如下:

  1. 创建执行角色(可选),若您已创建相关角色请忽略此步骤。

    单击去往RAM控制台创建角色在访问控制快速授权页单击确认授权

    重要

    若您无创建角色操作权限,可联系RAM管理员(有资源管理权限的RAM用户或者主账号),在RAM控制台完成角色创建和信任策略绑定,具体操作请参考创建可信实体为阿里云服务的RAM角色。配置说明如下:

    • 信任主体:云服务

    • 信任主体名称:cloudsiem.sas.aliyuncs.com。

    • 角色名称:AliyunSiemSoarExecutionDefaultRole

  2. 绑定接口操作权限(可选),若您已绑定了相关接口操作权限,请忽略此步骤。

    1. 单击绑定权限策略,在权限策略选择弹窗,单击合适的权限策略,建议使用系统推荐权限策略

      说明

      若当前无合适的权限策略,可登录RAM控制台创建新的权限策略,如何配置权限策略请参见创建自定义权限策略

    2. 单击确定按钮,跳转至访问控制授权页,点击确认授权。

    重要

    如果您无授权操作权限,可联系RAM管理员(有资源管理权限的RAM用户或者主账号)为角色AliyunSiemSoarExecutionDefaultRole完成系统推荐权限策略绑定,操作步骤请参见RAM角色授权