云服务器内容精选

  • 推荐业务流程二 图2 xDM-F数据同步推荐业务流程二 授权应用责任人为企业级管理员。 在全局用户授权页面,使用企业级管理员将应用责任人授权为企业级管理员。 创建xDM-F数据同步任务。 在xDM-F同步任务页面,为将要同步的应用创建xDM-F同步任务。 在iDME控制台完成相关操作。 在iDME控制台,已完成应用的功能设计和开发,并打开数字主线引擎与对应基础版数据建模引擎间的数据连接通道开关,完成了应用部署。应用部署时会自动将xDM-F模型同步至LinkX-F。 发布LinkX-F数据模型。 在数据模型管理中,将基于xDM-F模型生成的LinkX-F模型进行发布后会自动生成xDM-F映射和图数据库映射,即可实现增量实例数据实时同步。具体操作可参考发布数据实体和发布关系实体。 创建实例调度任务。 在实例调度任务页面,可通过创建实例调度任务,实现xDM-F模型全量或指定时间范围内的实例数据定时同步。
  • iDME控制台相关操作 图3 在iDME控制台完成相关操作 开通服务和设计应用。 开通iDME设计服务、基础版数据建模引擎和数字主线引擎,并在应用设计态完成了应用的功能设计开发和发布,具体操作请参考开通服务和登录应用设计态。 连接数据建模引擎。 打开数字主线引擎与对应基础版数据建模引擎间的数据连接通道开关。具体操作请参考管理数据连接。 仅公有云场景下必须执行此操作,边缘云场景下无需执行。 部署应用。 完成应用部署后可正常登录应用运行态,具体操作请参考部署应用和登录应用运行态。
  • 推荐业务流程一 图1 xDM-F数据同步推荐业务流程一 授权应用责任人为企业级管理员。 在全局用户授权页面,使用企业级管理员将应用责任人授权为企业级管理员。 在iDME控制台完成相关操作。 在iDME控制台,已完成应用的功能设计和开发,并打开数字主线引擎与对应基础版数据建模引擎间的数据连接通道开关,完成了应用部署。 创建xDM-F数据同步任务。 在xDM-F同步任务页面,为将要同步的应用创建xDM-F同步任务。 手动同步xDM-F模型数据。 在xDM-F同步任务页面,执行手动同步操作可立即为您同步xDM-F数据。 发布LinkX-F数据模型。 在数据模型管理中,将基于xDM-F模型生成的LinkX-F模型进行发布后会自动生成xDM-F映射和图数据库映射,即可实现增量实例数据实时同步。具体操作可参考发布数据实体和发布关系实体。 创建实例调度任务。 在实例调度任务页面,可通过创建实例调度任务,实现xDM-F模型全量或指定时间范围内的实例数据定时同步。
  • 实例同步日志说明 “实例同步状态”统计的是实例同步成功率。当该状态显示“暂无数据”,则表示未同步数据,可能是实体未发布或模型初次同步失败等原因导致。 单击“实例同步状态”链接,弹出实例同步日志窗口。该弹窗展示的是xDM-F实体对应的实例数据入图调度执行情况。 图2 实例同步日志示例 图2中的调度执行状态的含义,详细说明请参见表2。 表2 调度执行状态含义说明 调度执行状态 说明 同步成功 表示实例数据入图成功。 同步失败 表示实例数据入图失败,请单击打开调度详情页查看错误信息。 暂停 表示由于存在待调度或调度中的实例调度任务,所以增量同步已被暂停。待任务调度完成,系统将为您自动恢复同步被暂停的实例数据。 阻塞 表示当前模型尚未更新,导致实例数据同步被阻塞。以下情况下实例数据同步会受阻。 如果xDM-F模型新增了关联属性或唯一键属性,或是新增属性的“入图”值为是,但LinkX-F中未同步xDM-F实体变更信息,此时实例数据同步受阻。 如果xDM-F模型属性对应的“入图”值有修改,但LinkX-F中未同步xDM-F实体变更信息,此时实例数据同步受阻。 如果想同步阻塞期间的实例数据,需在七天内执行同步实体变更信息操作。待模型更新后,系统将为您自动恢复同步被阻塞的实例数据。相关操作请参见: 同步xDM-F数据实体变更信息 同步xDM-F关系实体变更信息 如有需要,您还可: 筛选调度日志:在“执行开始时间”选择开始时间和结束时间,单击“搜索”。 查看调度日志执行详情:单击具体日志的“操作”列处的,在弹窗中查看调度执行进展、消息解析详细信息和入图详细信息等。 如果消息解析失败,单击“错误信息”列处的,查看错误详情。
  • 多字段排序 多字段排序一般使用“sorts”字段表示,其结构如下: { "sorts": [ { "sort": "DESC", "orderBy": "description" }, { "sort": "ASC", "orderBy": "name" } ] } 使用“sorts”字段后,将按照其列表顺序进行排序。如上所示,对象会先按照“description”进行倒序排序,再按照“name”进行正序排序。 以“services/api/SZAPITEST202211280329/find/20/1”的URI为例,使用如下接口进行多字段排序。 Find接口: { "params": { "sorts": [ { "sort": "DESC", "orderBy": "description" }, { "sort": "ASC", "orderBy": "name" } ], "filter": { "joiner": "and", "conditions": [ { "conditionName": "description", "operator": "=", "conditionValues": [ "a" ] }, { "conditionName": "rdmDeleteFlag", "operator": "=", "conditionValues": [ "0" ] } ] } } } Query接口: { "params": { "sorts": [ { "sort": "DESC", "orderBy": "description" }, { "sort": "ASC", "orderBy": "name" } ], "filter": { "joiner": "and", "conditions": [ { "conditionName": "description", "operator": "=", "conditionValues": [ "a" ] }, { "conditionName": "rdmDeleteFlag", "operator": "=", "conditionValues": [ "0" ] } ] } } } Select接口: { "params": { "selectedField": [ { "name": "name", "nameAs": "nameAsName" }, { "name": "description", "nameAs": "nameAsDescription" }, { "name": "creator" }, { "name": "id" } ], "sorts": [ { "sort": "DESC", "orderBy": "name" }, { "sort": "asc", "orderBy": "id" } ], "filter": { "joiner": "and", "conditions": [ { "conditionName": "description", "operator": "=", "conditionValues": [ "a" ] } ] } } }
  • 嵌套and、or和in { "params": { "sort": "desc", "orderBy": "name", "filter": { "joiner": "and", "conditions": [ { "conditionName": "name", "operator": "=", "conditionValues": [ "wyc" ] }, { "joiner": "or", "conditions": [ { "conditionName": "creator", "operator": "=", "conditionValues": [ "wyc" ] }, { "conditionName": "modifier", "operator": "in", "conditionValues": [ "wyc", "wxf" ] } ] } ] } } } 如上示例可得出如下SQL查询语句: (name=wyc) and ( (creator=wyc) or (modifier in (wyc, wxf) ) ) order by name desc 其中,“joiner”用于控制相同层次的“conditions”间的关系。
  • 参考对象 假设TestQuery的参考对象是SimpleEntity(别名为ref),SimpleEntity的别名为ref,有Long类型的ID字段和String类型的Name字段。用户希望对SimpleEntity过滤ID,其示例代码如下所示: { "params": { "filter": { "joiner": "and", "conditions": [ { "conditionName": "ref.id", "operator": "=", "conditionValues": [ "406889137980243968" ] } ] } } } 如需过滤其他属性,基于新增过滤条件即可。
  • 扩展属性 扩展属性的固定前缀为“extAttrs”,格式有“extAttrs.扩展属性名”和“extAttrs.扩展属性名.value”两种。其中,“extAttrs.扩展属性名.value”适用于自定义精度的扩展属性。 { "params": { "filter": { "joiner": "and", "conditions": [ { "conditionName": "extAttrs.extAttrName1", "operator": "=", "conditionValues": [ "406889137980243968" ] }, { "conditionName": "extAttrs.extAttrName2.value", "operator": "=", "conditionValues": [ "12.133" ] } ] } } }
  • 扩展类型+扩展属性/分类属性 扩展类型+扩展属性/分类属性的固定前缀为“clsAttrs”,格式有“clsAttrs.分类名.分类内属性名”和“clsAttrs.分类名.分类内属性名.value”两种。其中,“clsAttrs.分类名.分类内属性名.value”适用于自定义精度的扩展类型+扩展属性/分类属性。如需查询此类属性,需额外增加一个过滤条件(rdmExtensionType),用于指明具体的扩展类型。 以“services/dynamic/api/Test0928001/find/20/1”的URI为例: { "params": { "sort": "DESC", "orderBy": "lastUpdateTime", "filter": { "joiner": "and", "conditions": [ { "conditionName": "clsAttrs.A0001.Testz", "operator": "like", "conditionValues": [ "WWW" ] }, { "conditionName": "rdmExtensionType", "operator": "=", "conditionValues": [ "Test0928001" ] } ] }, "isNeedTotal": false } }
  • 单个条件 示例1: { "params": { "sort": "desc", "orderBy": "name", "filter": { "conditionName": "name", "operator": "=", "conditionValues": [ "wyc" ] } } } 示例2: { "params": { "sort": "desc", "orderBy": "name", "filter": { "joiner": "and", // and或者or "conditions": [ { "conditionName": "name", "operator": "=", "conditionValues": [ "wyc" ] } ] } } }
  • 分类属性 分类属性的固定前缀为“clsAttrs”,格式有“clsAttrs.分类名.分类内属性名”和“clsAttrs.分类名.分类内属性名.value”两种。其中,“clsAttrs.分类名.分类内属性名.value”适用于自定义精度的分类属性。 { "params": { "filter": { "joiner": "and", "conditions": [ { "conditionName": "clsAttrs.clsAttrName.attrName1", "operator": "=", "conditionValues": [ "123" ] }, { "conditionName": "clsAttrs.clsAttrName.attrName2.value", "operator": "=", "conditionValues": [ "12.123" ] } ] } } }
  • ISNULL和NOTNULL传参 { "params": { "sort": "desc", "orderBy": "name", "filter": { "joiner": "and", // 或者or "conditions": [ { "conditionName": "name", "operator": "ISNULL", // 或者NOTNULL "conditionValues": [ // conditionValues可不写 "wyc" ] } ] } } }
  • 如何在本地通用服务器中部署流程运行服务依赖的Node.js环境? 通过流程引擎的流程编排服务生成的流程元模板需要通过Node.js编译后,才能在流程运行服务中启动。如果您的本地通用服务器未部署Node.js,可以参考如下操作进行部署。 准备事项 操作系统:Linux 系统,本文以CentOS 7.6 64位操作系统为例。 Node.js:流程运行服务的运行环境,推荐安装Node.js 16.15.0或Node.js 16.20.2版本。 Python:Node.js的依赖环境,推荐安装Python 2.6或Python 2.7版本,不建议安装Python 3.0及以上版本。 操作步骤 登录Linux弹性云服务器。 执行如下命令,查看当前E CS 是否已经安装Python 2.6或2.7版本。 不建议安装Python 3.0及以上版本。 python --version 如果未安装,则依次执行如下命令,安装Python。 wget http://www.python.org/ftp/python/2.6/Python-2.6.tgz 本步骤以下载Python 2.6安装包为例,您可以前往Node.js 官网获取更多安装信息。 tar -xzf Python-2.6.tgz cd Python-2.6 ./configure --prefix=/usr/local make && make install ln -sf /usr/local/bin/python2.6 /usr/bin/python2.6 如果已安装,则执行3。 执行如下命令,下载Node.js Linux 64位二进制安装包。 wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz 本步骤以下载Node.js 64位二进制安装包为例,请对应您实际云服务器的规格,前往Node.js 官网获取更多安装信息。 执行如下命令,解压安装包。 tar -xf node-v16.20.2-linux-x64.tar.xz 依次执行如下命令,创建软链接。 ln -sf /usr/local/node/node-v16.15.0-linux-x64/bin/npm /usr/local/bin/ ln -sf /usr/local/node/node-v16.15.0-linux-x64/bin/node /usr/local/bin/ 成功创建软链接后,即可在弹性云服务器任意目录下使用node及npm命令。 执行如下命令,查看Node.js及npm版本信息。 node -v npm -v 显示Node.js的版本信息,即表示部署成功。
  • 如何生成jwt-token? xDM-F在JSON Web Token(JWT)这种结构化令牌的基础上实现了一套基于用户体系对用户的API进行授权访问的机制,满足用户个性化安全设置的需求。xDM-F支持的jwt-token的加密算法为RSA非对称加密算法,密钥的加密位数推荐为3072。 您可以通过如下方式生成用于jwt-token生成与验证的私钥与公钥。其中,私钥用于授权服务签发JWT,公钥配置到JWT插件中用于API网关对请求验签。 在本地通用服务器中,执行如下命令,生成对应私钥与公钥。 # 生成一个3072位的RSA密钥对 openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:3072 openssl rsa -pubout -in private.key -out public.key # 查看私钥 cat private.key # 查看公钥 cat public.key
  • 下单后如何获取License文件,需要提供哪些信息? 当您购买的“通用服务器(SDK)”基础版数据建模引擎订单付款成功后,需要通过提交工单的方式申请License文件。在此之前,您需要提前准备如下相关信息: SDK所属应用的应用ID(License文件不支持跨应用使用)。 已支付订单中购买的用户数量。 已支付订单中订阅的时长。 SDK部署机器的信息,至多支持配置8台机器。 如果部署机器是Windows系统,提供机器MAC地址。 如果部署机器是Linux系统,提供机器的UUID。