华为云用户手册

  • 未解决问题 机器人在使用过程中,会自动整理未解决的用户问,并会自动把意思相近的用户问做聚类处理,同时展示重复次数,您可以根据重复次数进行排序。另外您也可以根据时间、操作状态、问题类型、问题关键字来筛选搜索这些问题,然后对这些问题闭环处理。建议您定期处理未解决问题,以提升问答效果。 未解决问题类型 兜底:机器人返回识别失败回复。 不满意:机器人为用户找到对应答案后,用户选择对答案不满意的问题。 转人工:需要通过人工方式解决的问题。 推荐问:机器人无法直接返回答案,返回推荐的相似问。 闭环处理操作 添加语料:可以把指定问题添加进知识库。 在操作列单击“添加语料”。 在“添加语料”页面,您可以根据业务情况选择问题类别并填写相关配置。 单击“确认”保存语料,新增的语料将呈现在知识库的列表中。 关联语料:可以把指定问题关联成某个问题的扩展问。 在操作列单击“关联语料”。 在“关联语料”页面的搜索框中,输入问题关键词查找对应的语料,然后勾选此语料。 单击“确认”保存。 忽略:对该问题不做处理,忽略该问题。
  • 对话日志 展示机器人在对话体验、接口调用等场景下产生的所有日志。您可以根据日期、问答类型、用户问关键词、对话ID来筛选搜索对话日志。通过右上角按钮,导出筛选的结果,导出的文件需保存在OBS桶内,可跳转至OBS管理页面进行下载查看。可以通过查看解析日志,来查看机器人对指定问题解析的JSON体。问答类型包括以下几种: 知识-直接命中:机器人直接返回答案。 知识-推荐知识:机器人无法直接返回答案,返回推荐的相似问。 知识-无效问题:机器人匹配到无效问题。 兜底:机器人返回识别失败回复。 闲聊:机器人返回闲聊匹配的答案。 技能:机器人调用技能返回答案。 文档问答:机器人返回匹配的文档答案。 表格问答:机器人返回匹配的表格答案。 图谱问答:机器人返回匹配的图谱答案。 问答机器人 在运营一段时间后,CBS服务将记录用户提问和机器人返回的详细日志,方便管理员查看机器人实时的问答效果。 系统记录的问答日志如图1所示。 图1 问答日志 “对话日志”只保存最近三个月数据,如果您需要永久保存,请使用上角按钮,导出筛选的结果,并在本地存储。
  • 智能问答机器人 版本 智能问答机器人支持专业版、旗舰版两种规格,各规格的差异如表1所示。 表1 机器人版本说明 功能列表 专业版 旗舰版 管理问答语料 √ √ 实体管理 √ √ 问答模型训练 轻量级深度学习 √ √ 重量级深度学习 - √ 调用问答机器人 √ √ 问答诊断 √ √ 运营面板 √ √ 高级设置 基本信息 √ √ 知识共享 √ √ 应用授权 √ √ 全局配置 √ √ 标签管理 √ √ 技能管理 √ √ 父主题: 智能问答机器人
  • 其他操作 批量操作 在“问答管理”页面,勾选单个或多个问题名称,单击“批量操作”,您可以批量变更类别或者批量删除语料。 图4 批量操作 编辑 针对已有语料,当业务发生变更时,需要对已有的语料进行编辑。支持对语料的问题类别、问题、答案进行修改。 在“问答管理”页面,单击操作列的“编辑”,进行语料修改。 图5 编辑语料 在编辑知识页面,您可以根据实际情况修改问题类别、问题、扩展问、问题规则、答案。 信息修改完成后,单击“确定”保存。 删除 当业务发生变更时,某些语料已失效。您可以删除语料,以释放资源。语料删除后无法恢复,请谨慎操作。 在“问答管理”页面,单击操作列的“删除”,删除单条语料。 图6 删除语料 在删除问答语料弹窗中确认是否执行删除操作,确认删除单击“确定”。 查找 按日期查找 在“问答管理”页面上方,单击按钮,选择开始日期和结束日期,然后单击“确定”,筛选出符合条件的语料。 图7 按日期查找语料 按关键字查找 在“问答管理”页面上方输入框中输入关键字,单击按钮,筛选出符合条件的语料。 图8 按关键字查找语料 刷新 在“问答管理”页面右上角,单击刷新问题列表。 导出 在“问答管理”页面右上角,单击导出问答对。导出成功后,单击,可以查看导出来的文件。目前支持导出的格式为xslx。
  • 操作步骤 登录 云审计 服务控制台。 单击左侧导航树的“事件列表”,进入事件列表信息页面。 事件列表支持通过筛选来查询对应的操作事件。当前事件列表支持四个维度的组合查询,详细信息如下: 事件来源、资源类型和筛选类型。 在下拉框中选择查询条件。 其中筛选类型选择事件名称时,还需选择某个具体的事件名称。 选择资源ID时,还需选择或者手动输入某个具体的资源ID。 选择资源名称时,还需选择或手动输入某个具体的资源名称。 操作用户:在下拉框中选择某一具体的操作用户,此操作用户指用户级别,而非租户级别。 事件级别:可选项为“所有事件级别”、“normal”、“warning”、“incident”,只可选择其中一项。 时间范围:可选择查询最近七天内任意时间段的操作事件。 在需要查看的事件左侧,单击展开该事件的详细信息。 单击需要查看的事件“操作”列的“查看事件”,可以在弹窗中查看该操作事件结构的详细信息。 更多关于云审计服务事件结构的信息,请参见《云审计服务用户指南》。
  • 检测对话流程 对话流程配置后,单击按钮可检测当前流程是否有错误。对话流程在训练发布前,一定要经过检测。 如果检测结果为黄色或红色,鼠标悬浮在检测按钮右侧的检测结果图标上,配置有问题的节点会高亮显示。 当检测结果图标是绿色,表示流程图检测通过。 当检测结果图标是黄色,表示流程图存在参数未设置、不存在或流程逻辑有问题的情况,可能导致流程不通畅。 当检测结果图标是红色,表示流程图部分节点关键信息未设置或不存在,将导致流程不通畅。 表1 错误信息表 错误类型 颜色 是否可以训练发布 错误原因 严重错误 红 不可以 信息收集节点,所配置槽位不存在。 条件判断节点,已连线分支,未设置详细条件。 条件判断节点,所选槽位不存在。 对话回复节点没有回复内容。 接口调用节点,配置模式,未填写接口地址。 接口调用节点,函数模式,未选择函数。 知识库回复,问题不存在。 知识库回复,答案不存在。 终结节点不是回复类型的节点。 信息收集节点,必填槽位的追问话术为空。 一般错误 黄 可以 有节点未连线(除开始节点外)。 信息收集节点,没有槽位设置(包括所选意图没有槽位;有槽位且全部删除)。 条件判断节点,同一分支的同一条件组内出现相同条件。 条件节点有剩余分支未连接。 对话回复节点,所插入的槽位或变量不存在。 没有错误 绿 可以 无 父主题: 配置对话流程(可选)
  • 响应消息头 调用API时,APIC增加如下响应消息头。 X-Apig-Mode: debug表示响应消息头增加APIC调试信息。 响应消息头 描述 说明 X-Request-Id 请求ID 所有合法请求,都会返回此参数 X-Apig-Latency 从APIC接收请求到后端返回消息头的用时 仅在请求消息头包含X-Apig-Mode: debug时,返回此参数 X-Apig-Upstream-Latency 从APIC请求后端到后端返回消息头的用时 仅在请求消息头包含X-Apig-Mode: debug,且后端服务类型不为Mock时,返回此参数 X-Apig-RateLimit-api API流量控制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了API流量控制时,返回此参数 X-Apig-RateLimit-user 用户流量限制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了用户流量限制时,返回此参数 X-Apig-RateLimit-app 凭据流量限制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了凭据流量限制时,返回此参数 X-Apig-RateLimit-ip 源IP流量限制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了源IP流量限制时,返回此参数 X-Apig-RateLimit-api-allenv API默认流控信息 示例:remain:199,limit:200,time:1 second 仅在请求消息头包含X-Apig-Mode: debug时,返回此参数 X-Apig-count 请求经过APIC的总次数 经过APIC调用的合法请求都会返回此参数,当X-Apig-count请求头取值大于10时,会报错APIC.0612 父主题: 调用API
  • ROMA业务流自定义策略样例 示例1:授权用户创建、查询、更新业务流图,不具备操作和删除权限。 { "Version": "1.1", "Statement": [ { "Action": [ "romabfs:graph:get", "roma:graph:list", "roma:graph:update" ], "Effect": "Allow" } ]}
  • 5.1 x-livedata-scripts.datasources 含义:自定义后端的数据源定义。 作用域:x-livedata-scripts 示例: paths: '/users': get: produces: - "application/json" responses: default: description: "default response" x-livedata-scripts: - type: "function" content: "custom-script-content" result: "custom-script-result" datasource: name: "custom-datasource-name" 表6 参数说明 参数 是否必选 类型 说明 name 是 String 数据源名称。
  • ROMA Connect自定义策略样例 示例1:授权用户创建、启动停止和查看集成任务的权限。 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "roma:tasks:create", "roma:tasks:operate", "roma:tasks:list", "roma:tasks:get" ] } ]} 示例2:授权用户使用服务集成的所有权限,包括连接器的权限。 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "roma:tasks:*", "roma:connectors:*" ] } ]} 示例3:拒绝用户删除ROMA Connect实例。 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。 如果您给用户授予ROMA FullAccess的系统策略,但不希望用户拥有ROMA FullAccess中定义的删除ROMA Connect实例权限,您可以创建一条拒绝删除ROMA Connect实例的自定义策略,然后同时将ROMA FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对ROMA Connect执行除了删除ROMA Connect实例外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Effect": "Deny", "Action": [ "roma:instances:delete" ] } ]} 示例4:仅允许用户查看和操作自己创建的数据集成任务。 如果您希望用户只能查看和操作自己创建的数据集成任务,不能查看到其他用户创建的数据集成任务,您可以在自定义策略中为查看任务的授权项添加条件,使该授权项仅对用户自己创建的资源生效。条件策略示例如下: { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "roma:tasks:create", "roma:tasks:operate", ] } { "Effect": "Allow", "Action": [ "roma:tasks:get", "roma:tasks:list" ], "Condition": { "StringEquals": { "roma:ResourceCreator": [ "${g:UserId}" ] } } } ]}
  • 1:x-livedata-auth-type 含义:基于Swagger的apiKey认证格式,定义自定义后端支持的特有认证方式。 作用域:Security Scheme Object 示例: securityDefinitions: customize-name-signature: type: "apiKey" name: "Authorization" in: "header" x-livedata-auth-type: "SIGNATURE" x-livedata-signature: key: "signatureKey" secret: "signatureSecret" 表1 参数说明 参数 是否必选 类型 说明 type 是 String 认证类型,仅支持“apiKey”。 name 是 String 用于认证的参数名称,填写为Authorization。 in 是 String 参数所在位置,仅支持“header”。 description 否 String 参数的描述信息。 x-livedata-auth-type 是 String 自定义后端的认证方式,仅支持“SIGNATURE”。 x-livedata-signature.key 否 String 签名所需的key。 x-livedata-signature.secret 否 String 签名所需的secret。
  • 3:x-livedata-status 含义:自定义后端的状态。 作用域:Operation Object 示例: paths: '/path': get: x-livedata-status: 'DESIGNED' 表3 参数说明 参数 是否必选 类型 说明 x-livedata-status 是 String 自定义后端的状态,支持“DESIGNED”、“DEVELOPED”、“TESTED”和“DEPLOYED”。 DESIGNED:自定义后端处于已设计、待开发状态。 DEVELOPED:自定义后端处于已开发、待测试状态。 TESTED:自定义后端处于已测试、待部署状态。 DEPLOYED:自定义后端处于已部署状态。
  • 5:x-livedata-scripts 含义:自定义后端定义的脚本。 作用域:Operation Object 示例: paths: '/path': get: produces: - "application/json" responses: default: description: "default response" x-livedata-scripts: - type: "function" content: "custom-script-content" result: "func" 表5 参数说明 参数 是否必选 类型 说明 content 是 String 脚本语句,格式为经base64编码的字符串,实际脚本需经过base64解码后获取。 result 是 String 返回对象,执行语句的执行结果将封装在该对象中返回。 该参数仅对数据后端生效,函数后端不使用。 type 是 String 脚本类型,支持“function”、“SQL”和“SP”。 datasources 否 x-livedata-scripts.datasources 数据源定义。
  • 概述 客户端配额可限制单位时间内客户端调用API的总次数,保护后端服务。您可以创建客户端配额策略,对绑定策略的客户端进行调用次数限制。 客户端配额策略和客户端本身是相互独立的,只有将客户端绑定客户端配额策略后,客户端配额策略才对客户端生效。 仅具有Tenant Administrator权限的用户才可查看和配置客户端配额策略。 同一个客户端只能绑定一个客户端配额策略,一个客户端配额策略可以绑定多个客户端。
  • 集成应用概述 ROMA Connect通过集成应用来实现同一实例内不同用户间的资源隔离。用户在ROMA Connect实例中创建的资源(如数据源、API、Topic、产品等)都要有归属的集成应用,非管理员权限(Tenant Administrator权限)的 IAM 用户默认只能查看和管理自己创建的集成应用和资源,无法查看其他IAM用户创建的集成应用和资源,管理员权限的用户可查看和管理其下所有IAM用户所创建的资源。 如果需要把自己创建的资源共享给其他IAM用户查看和使用,可通过将集成应用授权给其他IAM用户的方式实现,具体操作可查看配置集成应用授权。
  • 概述 环境是指API的受限使用范围,API只有在发布到环境后,才能被调用。API可以被发布到不同的自定义环境中,如开发环境、测试环境等。RELEASE是系统默认的发布环境,也是正式发布环境。 环境变量是指在环境上创建的一种变量,该变量固定在环境上。如果API的后端服务信息中定义了环境变量,则需要在环境中添加对应的变量。通过环境变量,可实现同一个API,在不同环境中调用不同的后端服务。 例如创建API时,后端服务请求Path中定义了变量“Path”。在环境1中创建了变量“Path”,变量值“/Stage/test”,则API在发布到环境1时,使用“/Stage/test”代替“Path”,在环境1中调用此API时,后端服务请求Path为“/Stage/test”。在环境2中创建了变量“Path”,变量值“/Stage/AA”,则API在发布到环境2时,使用“/Stage/AA”代替“Path”,在环境2中调用此API时,后端服务请求Path为“/Stage/AA”。 图1 环境变量示意图
  • 创建集成应用 登录ROMA Connect控制台,在“实例”页面单击实例上的“查看控制台”,进入实例控制台。 在左侧的导航栏选择“集成应用”,单击页面右上角的“创建集成应用”。 在创建集成应用弹窗填写应用信息,完成后单击“确认”。 参数 配置说明 名称 自定义应用名称。 描述 填写对该应用的描述内容,选填项。 Key 集成应用的Key,若未指定则由系统自动生成。 Secret 集成应用的Secret,若未指定则由系统自动生成。
  • 查看和编辑集成应用 在实例控制台的“集成应用”页面中,单击集成应用的名称,可查看该集成应用的详细信息。 图1 查看应用 表1 集成应用信息说明 内容 内容说明 基本信息 集成应用的基本参数信息,包括名称、描述、所属、创建时间、Key和Secret,其中Key和Secret可用于该集成应用下资源的访问认证。 您可以根据实际需要修改“名称”和“描述”信息。 您可以单击Secret右侧的“”查看Secret信息。 您可以根据实际需要重置密码,重置后旧密码自动失效。 对于账号用户,集成应用的所属均为“自建应用”。对于IAM用户,自己创建的集成应用为“自建应用”,其他IAM用户创建并授权的集成应用为“授权应用”。 对象 可查看和管理本集成应用下的资源,包括数据源、API、Topic和设备,您可对本集成应用下的资源进行创建、编辑、删除等操作,具体操作指导请参考数据源、API、Topic和设备的使用指导。
  • 配置集成应用授权 登录ROMA Connect控制台,在“实例”页面单击具体实例上的“查看控制台”,进入实例控制台。 在左侧的导航栏选择“集成应用”,在页面中找到要授权的集成应用,单击该集成应用后的“应用授权管理”进行授权配置。 在“应用授权管理”弹窗中为IAM用户授权。 在“用户列表”处勾选要授权的IAM用户。 如需筛选用户,可以在“用户筛选”处,选择“用户名称”后,输入关键字搜索需要授权的用户。 在“已选择”处为已选择的IAM用户配置集成应用的管理权限。 可为每个用户单独配置权限,也可以单击“权限”右侧的“”为所有已选择用户批量配置权限。 图1 配置应用授权参数 表1 应用权限说明 权限 FDI APIC MQS LINK read 可查看授权应用的数据源。 可查看、调试和导出授权应用的API。 可查看和导出授权应用的Topic。 可查看授权应用的设备、产品和规则,可导出授权应用的设备、产品和规则,并调试设备。 modify 可在授权应用下创建和编辑数据源。 可在授权应用下创建、编辑、发布、下线和导入API。 可在授权应用下创建和编辑Topic。 可在授权应用下创建和编辑设备、产品和规则,可导入设备、产品和规则,可重置设备和产品的密码。 delete 可删除授权应用的数据源。 可删除授权应用的API。 可删除授权应用的Topic。 可删除授权应用的设备、产品和规则,可删除产品属性、Topic类、规则数据源端、规则数据目的端。 access 不涉及。 可对授权应用的API进行授权、访问控制、流量控制、签名密钥绑定API配置。 可对授权应用的Topic进行应用权限配置。 可对设备进行命令下发和强制下线,并且可以对协议为OPC UA和Modbus的设备进行插件配置。 admin 应用管理员权限。 单击“确认”,完成集成应用的授权配置。 您可以在集成应用列表中,单击集成应用左侧的“”,查看该集成应用已授予权限的IAM用户以及授予的权限范围。 使用3中被授权的IAM用户登录ROMA Connect控制台并进入对应的ROMA Connect实例,查看该用户是否具备该集成应用资源的相关管理权限。
  • 概述 如果您需要把自己的认证系统用于API调用的认证鉴权,可以使用自定义认证来实现。 自定义认证包括前端和后端两种类型: 前端自定义认证:指ROMA Connect使用自定义的认证函数,对收到的API请求进行安全认证。 后端自定义认证:指API的后端服务使用自定义的认证函数,对来自ROMA Connect转发的后端服务请求进行安全认证。 本章节主要介绍如何创建一个前端自定义认证。您需要先创建一个函数后端作为认证函数,并在自定义认证中使用该函数后端作为认证后端。
  • 概述 如果您需要把自己的认证系统用于后端服务请求的认证鉴权,可以使用自定义认证来实现。 自定义认证包括前端和后端两种类型: 前端自定义认证:指ROMA Connect使用自定义的认证函数,对收到的API请求进行安全认证。 后端自定义认证:指API的后端服务使用自定义的认证函数,对来自ROMA Connect转发的后端服务请求进行安全认证。 本章节主要介绍如何创建一个后端自定义认证。您需要先创建一个函数后端作为认证函数,并在自定义认证中使用该函数后端作为认证后端。
  • 概述 流量控制可限制单位时间内API的被调用次数,保护后端服务。为了提供持续稳定的服务,您可以创建流控策略,对绑定策略的API进行流量控制。 流量控制策略和API本身是相互独立的,只有将API绑定流量控制策略后,流量控制策略才对API生效。 同一个API在同一个环境中只能绑定一个流控策略,一个流控策略可以绑定多个API。 若API被触发流量控制,则流控期间该API的所有调用请求都将被丢弃,并向调用方返回失败响应。
  • 概述 签名密钥用于后端服务验证ROMA Connect的身份,在ROMA Connect访问后端服务时,保障后端服务的安全。 签名密钥由一对Key和Secret组成,只有将API绑定签名密钥后,签名密钥才对API生效。 同一个API在同一个环境中只能绑定一个签名密钥,一个签名密钥可以绑定多个API。 当API绑定签名密钥后,ROMA Connect向该API的后端服务发送请求时,会使用签名密钥中的Key和Secret在后端服务请求中增加相应的签名信息。此时需要后端服务依照同样方式进行签名,通过比对签名结果与请求的Authorization头中携带的签名是否一致,来校验ROMA Connect发过来的请求是否合法。
  • 前提条件 ROMA Connect已接入数据源,具体请参考接入数据源。 如果后端服务需要使用签名密钥对请求发送方进行认证,请提前创建签名密钥。 部署并发布后端服务时,如果需要使用自定义认证方式进行API的安全认证,请提前创建自定义认证。 数据源存储的单行数据大小建议不超过2KB,若超过该限制会导致自定义后端响应异常。 当数据源返回numeric类型数据时,如果该数据的小数位精度超过6位,且数值为0时,数据后端会把该数据值转换为科学计数法。因此,不建议把numeric类型数据的小数位精度设置为超过6位。
  • 前提条件 每个API都要归属到某个集成应用下,在创建API前您需要有可用的集成应用,否则请提前创建集成应用。 每个API都要归属到某个API分组下,在创建API前您需要有可用的API分组,否则请提前创建API分组。 如果需要使用负载通道访问后端服务所在的服务器,请提前创建负载通道。 如果需要使用自定义认证方式进行API的安全认证,请提前创建自定义认证。 在创建API前,请确保ROMA Connect实例与您的后端服务所在网络互通。 若ROMA Connect实例与后端服务在相同VPC内时,可直接访问后端服务。 若ROMA Connect实例与后端服务在同一区域的不同VPC内时,可通过创建VPC对等连接,将两个VPC的网络打通,实现同一区域跨VPC访问后端服务。具体步骤请参考VPC对等连接说明。 若ROMA Connect实例与后端服务在不同区域的不同VPC内时,可通过创建云连接实例并加载需要互通的VPC,将两个VPC的网络打通,实现跨区域跨VPC访问后端服务。具体步骤请参考跨区域VPC互通。 若ROMA Connect实例与后端服务通过公网互通,请确保ROMA Connect实例已绑定弹性IP。 若ROMA Connect实例跨VPC内网访问后端服务时,需要完成实例到后端服务所在子网的路由配置。 使用FunctionGraph作为API的后端服务时,用户需要具备FunctionGraph Administrator角色权限。
  • 定义API请求 定义API的请求信息。 表2 API请求配置 参数 配置说明 请求协议 选择API使用的请求协议,可选择“HTTP”、“HTTPS”和“HTTP&HTTPS”,传输重要或敏感数据时推荐使用HTTPS。 请求Path 填写API的请求路径,格式如:/getUserInfo/{userId}。请求路径中可包含Path参数,以{参数名}形式表示。 Path参数应匹配“/”之间的一整段,不支持匹配“/”之间的一部分,例如不支持/abc{userId}。若匹配模式为绝对匹配,则尾部的Path参数可以添加+号,例如/users/{p+},其中变量p匹配一或多段“/”之间的部分。 请求路径中包含Path参数时,必须配置对应的入参定义。 请求路径中的内容区分大小写。 匹配模式 选择API请求路径的匹配模式。 绝对匹配:API请求中的请求路径要与“请求Path”的配置一致。 前缀匹配:API请求中的请求路径要以“请求Path”的配置为前缀。例如,“请求Path”为“/test/AA”,使用前缀匹配时,通过/test/AA/BB和/test/AA/CC都可以访问API,但是通过/test/AACC无法访问。 说明: 使用前缀匹配时,匹配剩余的请求路径将透传到后端服务。例如,“请求Path”为“/test”,“后端请求Path”为“/test2”,使用前缀匹配时,通过/test/AA/CC访问API,后端服务收到的请求路径为/test2/AA/CC。 Method 选择API的请求方法。“ANY”表示该API支持任意请求方法。 支持CORS 是否支持跨域访问API。 浏览器出于安全性考虑,限制从页面脚本内发起的跨域请求,此时页面只能访问同源的资源。而CORS允许浏览器向跨域服务器发送XMLHttpRequest请求,从而实现跨域访问。跨域访问API请参见配置跨域访问API。 入参定义(可选) 根据实际需要定义API的请求参数。请求路径中包含请求参数时,必须配置对应的入参定义。 在“入参定义”下单击“添加入参定义”,添加API的请求参数。 参数名:请求参数的名称。参数位置为“PATH”时,参数名需要与“请求Path”中的参数名称一致。 参数位置:请求参数在API请求中的位置,可选择“PATH”、“HEADER”和“QUERY”。 类型:选择请求参数的数据类型,可选择“STRING”和“NUMBER”。 必填:在API请求中,请求参数是否必填。 透传:请求参数是否透传到后端服务。 默认值:仅当“必填”为“否”时可配置请求参数的默认值。 枚举:请求参数的枚举值,请求参数的值只能从枚举值中选择,多个枚举值间用英文逗号隔开。 最大长度/最大值:“类型”为“STRING”时,设置参数值的最大字符串长度,“类型”为“NUMBER”时,设置参数值的最大值。 最小长度/最小值:“类型”为“STRING”时,设置参数值的最小字符串长度,“类型”为“NUMBER”时,设置参数值的最小值。 最小长度/最小值和最大长度/最大值同时设置成0时,表示不做限制。 示例:请求参数值的填写示例。 描述:请求参数的描述信息。 说明: 参数名不能以x-apig- 、x-sdk-开头,不能是x-stage,不区分大小写。 参数位置为HEADER时,参数名不能是Authorization和X-Auth-Token,不区分大小写。 请求体内容描述 仅当“Method”选择“POST”、“PUT”、“PATCH”或“ANY”时可配置。 填写API请求中请求体的描述信息,用于帮助API调用者理解如何正确封装API请求。 完成后单击“下一步”,定义后端服务。
  • 操作步骤 接入DWS数据源 接入 GaussDB 数据源 接入FI Hive数据源 接入MySQL数据源 接入MongoDB数据源 接入 MRS Hive数据源 接入MRS HBase数据源 接入FI HBase数据源 接入Oracle数据源 接入SQL Server数据源 接入DAMENG数据源 接入POSTGRESQL数据源 接入SFTP数据源 接入SYBASEIQ数据源 接入HANADB数据源 接入APPCUBE数据源 接入APIC数据源 接入 数据治理中心 数据源 接入本地文件数据源 接入IOT数据源 接入自定义数据源
  • 简单请求 场景一:已开启CORS,且后端服务响应消息中未指定跨域头时,ROMA Connect接受任意域的请求,并返回“Access-Control-Allow-Origin”跨域头,示例如下。 浏览器发送一个带Origin字段的请求消息。 GET /simple HTTP/1.1Host: www.test.comOrgin: http://www.cors.comContent-Type: application/x-www-form-urlencoded; charset=utf-8Accept: application/jsonDate: Tue, 15 Jan 2019 01:25:52 GMT Origin:必选字段,表示请求消息所属源,上例中请求来源于“http://www.cors.com”,ROMA Connect和后端服务根据这个值,决定是否同意本次请求。 后端服务返回响应消息。 HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: roma{"status":"200"} ROMA Connect返回响应消息。 HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: romaX-Request-Id: 454d689fa69847610b3ca486458fb08bAccess-Control-Allow-Origin: *{"status":"200"} Access-Control-Allow-Origin:必选字段,“*”表示ROMA Connect接受任意域的请求。 场景二:已开启CORS,且后端服务响应消息中指定跨域头时,后端服务响应的跨域头将覆盖ROMA Connect增加的跨域头,示例如下。 浏览器发送一个带Origin字段的请求消息。 GET /simple HTTP/1.1Host: www.test.comOrgin: http://www.cors.comContent-Type: application/x-www-form-urlencoded; charset=utf-8Accept: application/jsonDate: Tue, 15 Jan 2019 01:25:52 GMT Origin:必选字段,表示请求消息所属源,上例中请求来源于“http://www.cors.com”,ROMA Connect和后端服务根据这个值,决定是否同意本次请求。 后端服务返回响应消息。 HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: romaAccess-Control-Allow-Origin: http://www.cors.com{"status":"200"} Access-Control-Allow-Origin:表示后端服务接受“http://www.cors.com”的请求。 ROMA Connect返回响应消息。 HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: romaX-Request-Id: 454d689fa69847610b3ca486458fb08bAccess-Control-Allow-Origin: http://www.cors.com{"status":"200"} 后端服务响应消息中的跨域头覆盖ROMA Connect响应消息中的跨域头。
  • 非简单请求 对于非简单请求,您还需要创建一个“Method”为“OPTIONS”的API。“Method”为“OPTIONS”的API和普通API的区别如下: 所属分组:选择与已开启CORS的API相同的API分组。 安全认证:无论选择哪种认证方式,APIC都按照无认证处理。 请求协议:选择与已开启CORS的API相同的请求协议。 请求Path:选择与已开启CORS的API相同或匹配的请求Path。 Method:选择“OPTIONS”。 支持CORS:选择开启CORS。 后端服务:后端服务响应为200 OK。 假设后端服务类型为Mock,示例如下。 浏览器发送“Method”为“OPTIONS”的API请求。 OPTIONS /HTTP/1.1User-Agent: curl/7.29.0Host: localhostAccept: */*Origin: http://www.cors.comAccess-Control-Request-Method: PUT Access-Control-Request-Headers: X-Sdk-Date Origin:必选字段,表示请求消息所属源。 Access-Control-Request-Method:必选字段,表示请求会使用的HTTP请求方法。 Access-Control-Request-Headers:必选字段,表示请求会额外发送的头信息字段。 后端服务返回响应消息。 无 ROMA Connect返回响应消息。 HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 02:38:48 GMTContent-Type: application/jsonContent-Length: 1036Server: romaX-Request-Id: c9b8926888c356d6a9581c5c10bb4d11Access-Control-Allow-Origin: *Access-Control-Allow-Headers: X-Stage,X-Sdk-Date,X-Sdk-Nonce,X-Proxy-Signed-Headers,X-Sdk-Content-Sha256,X-Forwarded-For,Authorization,Content-Type,Accept,Accept-Ranges,Cache-Control,RangeAccess-Control-Expose-Headers: X-Request-Id,X-Apig-Latency,X-Apig-Upstream-Latency,X-Apig-RateLimit-Api,X-Apig-RateLimit-User,X-Apig-RateLimit-App,X-Apig-RateLimit-Ip,X-Apig-RateLimit-Api-AllenvAccess-Control-Allow-Methods: GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCHAccess-Control-Max-Age: 172800 Access-Control-Allow-Origin:必选字段,“*”表示ROMA Connect接受任意域的请求。 Access-Control-Allow-Headers:当请求消息中包含此字段时,此字段必选。表示ROMA Connect支持的头信息字段。 Access-Control-Allow-Methods:必选字段,表示ROMA Connect支持的HTTP请求方法。 Access-Control-Max-Age:必选字段,表示本次预检的有效期,单位:秒。在有效期内,无需再次发送预检请求。 浏览器发送一个带Origin字段的请求消息。 PUT /simple HTTP/1.1Host: www.test.comOrgin: http://www.cors.comContent-Type: application/x-www-form-urlencoded; charset=utf-8Accept: application/jsonDate: Tue, 15 Jan 2019 01:25:52 GMT Origin:必选字段,表示请求消息所属源。 后端服务返回响应消息。 HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: roma{"status":"200"} APIC返回响应消息。 HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: romaX-Request-Id: 454d689fa69847610b3ca486458fb08bAccess-Control-Allow-Origin: *{"status":"200"}
  • 概述 出于安全性考虑,浏览器会限制从页面脚本内发起的跨域请求,此时页面只能访问当前域的资源。CORS允许浏览器向跨域服务器发送XMLHttpRequest请求,从而实现跨域访问。 图1 跨域访问 浏览器将CORS请求分为两类:简单请求和非简单请求。 简单请求:同时满足以下2个条件的,即为简单请求。 请求方法为HEAD/GET/POST。 HTTP的头信息不超出以下几种字段:Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type(只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)。 对于简单请求,浏览器自动在头信息之中添加一个Origin字段,用于说明本次请求来自哪个源(协议+ 域名 +端口)。服务器根据Origin字段,决定是否同意这次请求。服务器响应消息中包含“Access-Control-Allow-Origin”时,表示同意请求。 非简单请求:不满足以上2个条件的,都为非简单请求。 对于非简单请求,在正式通信之前,浏览器会增加一次HTTP查询请求,称为预检请求。浏览器查询服务器,当前页面所在的源是否在服务器的许可名单之中,以及可以使用哪些HTTP请求方法和头信息字段。预检通过后,浏览器向服务器发送简单请求。 ROMA Connect默认不支持跨域访问,如果您需要支持跨域访问,则需要在创建API时打开“支持CORS”功能。CORS为非简单请求时,还需要创建一个“Method”为“OPTIONS”的API作为预检请求。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全