华为云用户手册

  • 配置思路 图 配置流程图是典型网络部署流程和步骤,如果您的网络业务有特殊需求,可以在此基础上进行调整。 图1 配置流程图 本案例以防火墙作为网关设备,整网设备均在华为乾坤云平台纳管。其中防火墙通过Web网管方式上云,防火墙下挂的设备通过DHCP Option方式上云,然后远程进行业务配置。 数据规划。 使用云网规工具自动规划AP的安装点位,确保AP的无线信号对汽车4S店全覆盖。 规划网络信息,包括组网方案、设备款型、接口、无线业务、QoS策略、网络安全策略等。 配置前准备。 (可选)手机下载并安装华为乾坤APP软件,用于网络验收。 现场安装设备,包括硬装、连线、上电等。 设备上线。 创建站点并添加设备:在华为乾坤云平台创建站点,将所有设备加入同一个站点,以便统一配置。 配置防火墙接入Internet:通过PPPoE拨号方式接入运营商网络,采用Web网管配置。 配置设备上线云平台。 防火墙注册上线:工作模式切为云管理模式,采用Web网管配置对接云平台。 防火墙下挂设备注册上线:采用DHCP Option148方式,在华为乾坤云平台配置,配置对象是防火墙。目的是为网关下挂设备分配管理IP,同时下发云平台注册信息。 在华为乾坤云平台配置网络业务。 认证授权准备。 员工Wi-Fi采用PSK认证,无需认证准备,默认即可。 访客Wi-Fi采用短信认证,配置华为乾坤云平台与短信平台对接,定制Portal推送页面、推送策略、认证规则等。 哑终端接入无需认证。 配置防火墙业务。 配置防火墙的下行接口。 配置防火墙的DHCP Server功能,为用户终端分配IP地址。 开启防火墙的NAT功能。 配置防火墙的安全策略。 配置交换机业务。 配置交换机上行、下行接口,以及接口允许通过的VLAN等参数。 配置AP业务。 配置员工和访客Wi-Fi,包括创建SSID、配置用户认证和QoS策略等。 结果验证。确认终端可以正常上网,可以在华为乾坤云平台监控各设备状态信息。 父主题: 防火墙+交换机+AP组网场景
  • 配置思路 图1是典型网络部署流程和步骤,如果您的网络业务有特殊需求,可以在此基础上进行调整。 图1 配置流程图 本案例以防火墙(FW)作为网关设备,整网设备均在华为乾坤云平台纳管。其中FW、随板AC通过Web网管、命令行方式上云,随板AC下挂的设备通过DHCP Option方式上云,然后远程进行业务配置。 数据规划。 使用云网规工具自动规划AP的安装点位,确保AP的无线信号对学校全覆盖。 规划网络信息,包括组网方案、设备款型、接口、无线业务、QoS策略、网络安全策略等。 配置前准备。 (可选)手机下载并安装华为乾坤APP软件,用于网络验收。 现场安装设备,包括硬装、连线、上电等。 设备上线。 创建站点并添加设备:在华为乾坤云平台创建站点,将所有设备加入同一个站点,以便统一配置。 配置防火墙接入Internet:通过PPPoE拨号方式接入运营商网络,采用Web网管配置。 配置设备上线云平台。 防火墙注册上线:配置防火墙为双机热备镜像模式,工作模式切为云管理模式,采用Web网管配置对接云平台。 随板AC注册上线:采用命令行配置对接云平台。 随板AC下挂设备注册上线:在随板AC(作为DHCP Server)上配置下挂设备的地址池和DHCP 148参数。接入交换机采用DHCP Option148方式注册上线,也就是从DHCP Server上获取IP地址的同时也获取云管理平台的IP/URL地址和端口号,完成注册上线。 在华为乾坤云平台配置网络业务。 配置交换机业务。 配置随板AC下行接口,以及接口允许通过的VLAN等参数。 配置随板AC的DHCP Server功能,为用户终端分配IP地址。 配置接入交换机上行、下行接口,以及接口允许通过的VLAN等参数。 配置认证业务。 访客Wi-Fi采用用户名密码认证,创建员工用户组,定制Portal推送页面、推送策略、认证规则等。 员工Wi-Fi采用短信认证,配置华为乾坤云平台与短信服务器对接,定制Portal推送页面、推送策略、认证规则等。 教学有线终端接入采用802.1X认证,使用默认的认证授权配置。 配置员工和访客Wi-Fi,包括创建SSID、配置用户认证和QoS策略等。 结果验证。确认终端可以正常上网,可以在华为乾坤云平台监控各设备状态信息。 父主题: 防火墙+核心交换机+接入交换机+AP+随板AC组网场景
  • 配置思路 图 配置流程图是典型网络部署流程和步骤,如果您的网络业务有特殊需求,可以在此基础上进行调整。 图1 配置流程图 本案例中防火墙采用双机热备,工作在传统模式下,随板AC和接入交换机均采用堆叠。以随板AC作为网关设备,整网设备都在华为乾坤云平台纳管。其中防火墙和随板AC通过Web网管方式上云,随板AC下挂的设备通过DHCP Option方式上云,然后远程进行业务配置。 数据规划。 使用云网规工具自动规划AP的安装点位,确保AP的无线信号对校园全覆盖。 规划网络信息,包括组网方案、设备款型、接口、有线/无线业务、QoS策略、网络安全策略等。 配置前准备。 (可选)手机下载并安装华为乾坤APP软件,用于网络验收。 现场安装设备,包括硬装、连线、上电等。 设备上线。 创建站点并添加设备:在华为乾坤云平台创建站点,将所有设备加入同一个站点,以便统一配置。 配置防火墙接入Internet:通过PPPoE拨号方式接入运营商网络,采用Web网管配置。 配置设备上线云平台。 防火墙注册上线:工作模式为传统模式,采用Web网管配置对接云平台。 随板AC注册上线:工作模式为NETCONF模式,采用Web网管配置对接云平台。 随板AC下挂设备注册上线:采用DHCP Option148方式,在华为乾坤云平台配置,配置对象是随板AC。目的是为网关下挂设备分配管理IP,同时下发云平台注册信息。 在华为乾坤云平台配置网络业务。 认证授权准备。 员工Wi-Fi采用用户名密码认证,创建员工用户组,定制Portal推送页面、推送策略、认证规则等。 访客Wi-Fi采用短信认证,配置华为乾坤云平台与短信平台对接,定制Portal推送页面、推送策略、认证规则等。 教学有线终端接入采用802.1X认证,使用默认的认证授权配置。 配置无线业务。 认证服务器侧(华为乾坤云平台):创建无线认证模板,配置员工和访客无线子网业务。 认证控制点侧(随板AC):通过Web网管配置员工和访客无线子网业务,包括创建SSID模板、认证模板和QoS策略等。 配置有线业务。 配置有线认证模板:绑定Radius服务器模板。 配置有线网络业务:创建教学有线子网,配置设备互联端口放通业务VLAN。 配置设备数据上报。 上报设备侧基础数据至华为乾坤云平台,实现整网设备状态界面可视。 上报设备侧运维数据至华为乾坤云平台,以便进行网络故障识别、智能分析处置等运维操作。 结果验证。确认终端可以正常上网,可以在华为乾坤云平台监控各设备状态信息。 父主题: 随板AC+Fit AP 配置上云组网场景
  • 功能介绍 您可以通过AI漫游查看如下信息: 首页卡片中展示了当前时间窗内AI漫游引导次数、终端画像数和终端厂商识别的统计信息。 首页列表中展示了当前时间窗内各厂商AI漫游终端的统计信息,包括:厂商、终端数量、引导成功次数/总次数、漫游前和漫游后信号强度、终端画像数、上行和下行速率等。 单击“查看详情”列中,可以查看该厂商漫游调优事件的详情,包括:漫游时间、用户MAC、用户名和漫游结果等。 单击单个漫游事件前面的,可以查看此次漫游出详情、漫游入详情和漫游过程途径AP信息。
  • 竞争力 相比传统统一策略的漫游引导,智能漫游差异化的引导改善了漫游策略终端私有,网络侧主动引导成功率低业界难题,实现漫游成功率提升至90%,漫游体现提升。 相比业界定制化的漫游策略(网络厂商与部分终端厂商合作),存在只能优化部分手机款型的漫游体验,其他款型无法兼顾,相比我司方案普适性差的缺点。 基于历史大数据的自我在线学习,能自适应新上线终端款型的漫游引导(终端款型新上线,操作系统迭代升级),及时性高,维护成本低。
  • 应对方案与关键技术 基于大数据进行终端漫游行为画像训练,基于不同“终端款型+操作系统”实施差异性漫游引导策略(是否能引导,什么时候引导,引导到哪个AP),提升漫游成功率,降低漫游过程的丢包,时延,提升终端漫游体验。 以终端类型识别为基础,采用强化学习算法进行在线终端画像实时训练,与设备侧、终端侧协同提升漫游体验。 终端下行信号测量:基于Wi-Fi 802.11k,Wi-Fi 802.11h协议获取每个终端的下行信号测量能力及测量结果,以及终端802.11v的漫游协议支持能力。 终端漫游行为基线:探寻每个终端漫游的终端802.11v选网条件(源AP信号阈值、目标AP信号阈值、源/目标AP信号差值等)以及不同的终端802.11v协议参数组合,建立行为基线。 终端画像训练:大数据识别与分析每个终端的漫游行为特征,结合基础画像的漫游引导效果,采用强化学习算法训练出每种终端款型的行为特征。
  • 参数说明 表1 交换机接口参数说明 参数 说明 已选接口 以太网接口名称。 描述 接口相关的描述。 管理状态 用于开启/关闭该接口。关闭操作将导致该接口不可用,请慎重选择。 链路类型 根据该网口实际连线场景来选取。 默认:云平台对设备不下发配置,以设备默认能力为准。 Access:用于连接用户主机和交换机的链路。通常情况下,主机无需知道自己属于哪个VLAN,主机硬件通常也不能识别带有VLAN标记的帧。因此,主机发送和接收的帧都是untagged帧。 Trunk:用于交换机间的互连或交换机与路由器之间的连接。干道链路可以承载多个不同VLAN数据,数据帧在干道链路传输时,干道链路的两端设备需要能够识别数据帧属于哪个VLAN,所以在干道链路上传输的帧都是Tagged帧。交换机的上行口必须配置为Trunk类型。 Hybrid:既可以连接用户主机,又可以连接其他交换机。允许多个VLAN的帧通过,并可以在出接口方向将某些VLAN帧的Tag剥掉。 说明: 由于设备所有的接口缺省都加入VLAN1,因此当网络中存在VLAN1的未知单播、组播或者广播报文时,可能会引起广播风暴。对于不需要加入VLAN1的接口及时退出VLAN1,避免环路。 上行口不支持配置为Hybrid类型。 只有V200R012C00及以上版本的交换机设备才支持通过云平台将接口配置为Hybrid类型。 VLAN ID 当“链路类型”为“Access”时需要配置此参数。 以统一方式处理Access接口收到的报文。 对于Untagged报文,自动打上VLAN ID作为Tag并允许通过 对于带Tag的报文,如果Tag中的VLAN ID与接口的VLAN ID相同,则允许通过。否则丢弃该报文。 缺省VLAN 当“链路类型”为“Trunk”或“Hybrid”时需要配置此参数。 若交换机配置了“自协商管理VLAN”或“无线自协商管理VLAN”,与之直连的AP设备网口之间自动协商后,将协商产生的管理VLAN上报给云平台,由云平台刷新对应的链路类型和缺省VLAN,用户不可以手工修改。配置“自协商管理VLAN”或“无线自协商管理VLAN”的具体操作,请参见配置管理VLAN。 说明: 如果交换机已配置“无线自协商管理VLAN”,则优先上报“无线自协商管理VLAN”,否则上报“自协商管理VLAN”。 若交换机未配置“自协商管理VLAN”和“无线自协商管理VLAN”,用户可以手工修改链路类型和缺省VLAN。缺省VLAN取值范围为1~4094,缺省值为1。 允许通过的VLAN 当“链路类型”为“Trunk”时需要配置此参数。以统一方式处理Trunk接口收到的报文。 对于不带Tag的报文,自动打上VLAN ID作为Tag。如果VLAN ID在“允许通过的VLAN”中,则允许通过。否则丢弃该报文。 对于带Tag的报文,如果Tag中的VLAN ID在“允许通过的VLAN”中,则允许通过。否则丢弃该报文。 说明: 仅V200R011C10SPC550及以上版本交换机支持在“允许通过的VLAN”中输入“all”。 如果交换机已在虚拟网络配置互联口VLAN,“链路类型”需选择“Trunk”类型,且“允许通过的VLAN”中需包含互联口VLAN ID,否则原互联口VLAN将被覆盖。 Tagged VLAN 当“链路类型”为“Hybrid”时需要配置此参数。 Hybrid类型接口加入的VLAN,这些VLAN的帧以Tagged方式通过接口。tagged Vlan和untagged Vlan不能有交集,取值范围为1~4094,不支持all。 Untagged VLAN 当“链路类型”为“Hybrid”时需要配置此参数。 Hybrid类型接口加入的VLAN,这些VLAN的帧以Untagged方式通过接口。tagged Vlan和untagged Vlan不能有交集,取值范围为1~4094,不支持all。 高级 自协商 缺省关闭。若开启,当前设备接口与直连的设备接口间自动协商双工模式和接口速率,使数据传输能力达到双方都支持的最大值。 接口速率 当且仅当“自协商”关闭时才支持配置此参数。设置接口传输数据时的速率,支持选择默认和其他可配置的速率。 默认:接口速率由设备接口的缺省能力决定,不同设备支持的接口速率请参考交换机产品手册。 其他速率:接口会设置为非自协商模式,并调整为设置的速率,如10Mbit/s、100Mbit/s、1Gbit/s。 说明: 数据传输速率还受到传输介质能力约束。如果双方接口速率一致,但传输介质不支持该传输速率,仍将导致链路两端接口无法正常工作。如果传输介质问题无法解决,则建议在传输介质两端的接口上分别选用非自协商模式,按实际传输能力手工设置传输速率。 双工模式 当自协商关闭时: 接口速率为1Gbit/s、2.5Gbit/s、5Gbit/s和10Gbit/s时,双工模式为全双工,不可修改。 接口速率为100Mbit/s或者10Mbit/s时,双工模式缺省为全双工,可修改。 链路对端网口必须同样设置为全双工,以免引起报文丢失。 PoE 仅PoE交换机支持此功能,用于开启/关闭该接口的PoE供电功能。 管理VLAN自协商 (仅Trunk口和Hybrid口)是否在当前端口上使能管理VLAN自协商功能,缺省为“ON”。 Eth-Trunk自协商 (仅基于Eth-Trunk配置时有效)是否在当前Eth-Trunk口上使能Eth-Trunk自协商功能,缺省为“OFF”。使能该功能后,当前Eth-Trunk口下行直连交换机对应的物理口将自动加入Eth-Trunk0,接入上行网络。 说明: 如果当前Eth-Trunk口下行直连交换机对应物理接口的如下配置不是缺省值,会由于自动加入Eth-Trunk0失败而导致下行直连交换机脱管。 接口类型 缺省VLAN 认证功能 DHCP snooping DHCP snooping trusted ND snooping ND snooping trusted STP边缘口 接口隔离 在使能Eth-Trunk自协商之前,请务必确保与当前Eth-Trunk口下行直连交换机的对应物理接口上这些配置项为缺省值. LLDP 是否使能LLDP。互联设备运行LLDP后,能够发现对端的状态信息。可以通过此功能发现链路拓扑。 DHCP snooping选项 是否将在接口上使能DHCP Snooping功能。确保交换机下行的DHCP客户端从合法的DHCP服务器获取IP地址,可以有效防止针对DHCP的攻击。 不对报文做处理 snooping trusted 该参数仅适用于V200R011C10SPC550或更高版本的交换机设备。 DHCP snooping trusted选项 将该接口设置DHCP Snooping信任接口。该参数仅适用于V200R011C10SPC550或更高版本的交换机设备。 端口隔离 是否使能端口隔离。该接口使能后,与同一VLAN内其他使能端口隔离功能的接口间会二层隔离,但可以通过三层互通。 STP 是否使能STP功能。 STP边缘端口 是否将当前接口设置为STP边缘端口。 IP子网划分VLAN 是否使能基于IP子网划分VLAN。 如果配置交换机接口认证,请保持“IP子网划分VLAN”为默认。 SNMP trap 当接口的协议状态发生变化时,是否主动发送SNMP Trap。
  • 条件(Condition) 条件(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀为服务缩写,如smn:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 SMN定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 SMN支持的服务级条件键 服务级条件键 类型 单值/多值 说明 smn:TargetOrgPath string 单值 主题策略授权的组织路径。 smn:TargetOrgId string 单值 主题策略授权的组织ID。 smn:TargetAccountId string 单值 主题策略授权的账号ID。 smn:Protocol string 单值 订阅终端协议。 smn:Endpoint string 单值 订阅终端地址。
  • 操作(Action) 操作(Action)即为SCP中支持的授权项。 “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在SCP中相应操作对应的访问级别。 “资源类型”列指每个操作是否支持资源级权限。 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在SCP语句的Resource元素中指定所有资源类型(“*”)。 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。 关于ServiceStage定义的资源类型的详细信息请参见资源类型(Resource)。 “条件键”列包括了可以在SCP语句的Condition元素中支持指定的键值。 如果该授权项资源类型列存在值,则表示条件键仅对列举的资源类型生效。 如果该授权项资源类型列没有值(-),则表示条件键对整个授权项生效。 如果此列条件键没有值(-),表示此操作不支持指定条件键。 关于ServiceStage定义的条件键的详细信息请参见条件(Condition)。 您可以在SCP语句的Action元素中指定以下ServiceStage的相关操作。 表1 ServiceStage支持的授权项 授权项 描述 访问级别 资源类型 条件键 servicestage:app:getApplication 授予用户查看指定应用权限 read app g:EnterpriseProjectId g:ResourceTag servicestage:app:createApplication 授予用户创建应用权限 write app g:EnterpriseProjectId g:RequestTag g:TagKeys servicestage:app:modifyApplication 授予用户更新应用权限 write app g:EnterpriseProjectId g:ResourceTag g:RequestTag g:TagKeys servicestage:app:deleteApplication 授予用户删除应用权限 write app g:EnterpriseProjectId g:ResourceTag servicestage:app:listApplication 授予用户查看应用列表权限 list - - servicestage:app:getConfiguration 授予用户查看应用配置权限 read app g:ResourceTag g:EnterpriseProjectId servicestage:app:deleteConfiguration 授予用户删除应用配置权限 write app g:EnterpriseProjectId g:ResourceTag servicestage:app:modifyConfiguration 授予用户更新应用配置权限 write app g:EnterpriseProjectId g:ResourceTag servicestage:app:getComponent 授予用户查看指定应用组件权限 read app g:EnterpriseProjectId g:ResourceTag servicestage:app:createComponent 授予用户创建应用组件权限 write app g:ResourceTag g:EnterpriseProjectId servicestage:app:modifyComponent 授予用户更新应用组件权限 write app g:ResourceTag g:EnterpriseProjectId servicestage:app:deleteComponent 授予用户删除应用组件权限 write app g:ResourceTag g:EnterpriseProjectId servicestage:app:listComponent 授予用户查看应用组件列表权限 list - - servicestage:environment:create 授予用户创建环境权限 write environment g:EnterpriseProjectId g:RequestTag g:TagKeys servicestage:environment:get 授予用户查看环境信息权限 read environment g:ResourceTag g:EnterpriseProjectId servicestage:environment:list 授予用户查看环境列表权限 list - - servicestage:environment:modify 授予用户更新环境权限 write environment g:ResourceTag g:EnterpriseProjectId g:RequestTag g:TagKeys servicestage:environment:delete 授予用户删除环境权限 write environment g:ResourceTag g:EnterpriseProjectId servicestage:environment:tag 授予TMS用户创建环境标签权限 tagging environment g:ResourceTag g:EnterpriseProjectId g:RequestTag g:TagKeys servicestage:app:tag 授予TMS用户创建应用标签权限 tagging app g:ResourceTag g:EnterpriseProjectId g:RequestTag g:TagKeys servicestage:environment:listResourcesByTag 授予TMS用户通过标签查询环境资源权限 read environment g:RequestTag g:TagKeys servicestage:app:listResourcesByTag 授予TMS用户通过标签查询应用资源权限 read app g:RequestTag g:TagKeys servicestage:environment:unTagResource 授予TMS用户删除环境资源标签权限 tagging environment g:ResourceTag g:RequestTag g:EnterpriseProjectId g:TagKeys servicestage:app:unTagResource 授予TMS用户删除应用资源标签权限 tagging app g:ResourceTag g:EnterpriseProjectId g:RequestTag g:TagKeys servicestage:environment:listTags 授予TMS用户查询环境资源标签列表权限 read - - servicestage:app:listTags 授予TMS用户查询应用资源标签列表权限 read - - servicestage:pipeline:get 授予用户查看流水线权限 read pipeline - servicestage:pipeline:create 授予用户创建流水线权限 write pipeline - servicestage:pipeline:modify 授予用户更新流水线权限 write pipeline - servicestage:pipeline:delete 授予用户删除流水线权限 write pipeline - servicestage:pipeline:list 授予用户查看流水线列表权限 list - - servicestage:assembling:runtimeList 授予用户查看技术栈列表权限 read - - servicestage:assembling:getInfo 授予用户查看构建信息权限 list - - servicestage:assembling:create 授予用户创建构建任务权限 write assembling - servicestage:assembling:modify 授予用户更新构建任务权限 write assembling - servicestage:assembling:delete 授予用户删除构建任务权限 write assembling - servicestage:assembling:list 授予用户查看构建任务列表权限 list - - servicestage:repositoryAuth:list 授予用户获取仓库授权列表权限 list - - servicestage:repositoryAuth:get 授予用户获取仓库授权权限 read repositoryAuth - servicestage:repositoryAuth:create 授予用户创建仓库授权权限 write repositoryAuth - servicestage:repositoryAuth:delete 授予用户删除仓库授权权限 write repositoryAuth - servicestage:environment:listTagsForResource 授予eps用户查询环境资源标签列表权限 read environment g:ResourceTag g:EnterpriseProjectId servicestage:app:listTagsForResource 授予eps用户查询应用资源标签列表权限 read app g:ResourceTag g:EnterpriseProjectId ServiceStage的API通常对应着一个或多个授权项。表2展示了API与授权项的关系,以及该API需要依赖的授权项。 表2 API与授权项的关系 API 对应的授权项 依赖的授权项 GET /v2/{project_id}/cas/metadata/runtimes servicestage:app:listApplication - GET /v2/{project_id}/cas/metadata/flavors servicestage:app:listApplication - POST /v2/{project_id}/cas/environments servicestage:environment:create - GET /v2/{project_id}/cas/environments servicestage:environment:list - PUT /v2/{project_id}/cas/environments/{environment_id} servicestage:environment:modify - DELETE /v2/{project_id}/cas/environments/{environment_id} servicestage:environment:delete - GET /v2/{project_id}/cas/environments/{environment_id} servicestage:environment:get - PATCH /v2/{project_id}/cas/environments/{environment_id}/resources servicestage:environment:modify - POST /v2/{project_id}/cas/applications servicestage:app:createApplication - GET /v2/{project_id}/cas/applications servicestage:app:listApplication - PUT /v2/{project_id}/cas/applications/{application_id} servicestage:app:modifyApplication - DELETE /v2/{project_id}/cas/applications/{application_id} servicestage:app:deleteApplication - GET /v2/{project_id}/cas/applications/{application_id} servicestage:app:getApplication - PUT /v2/{project_id}/cas/applications/{application_id}/configuration servicestage:app:modifyConfiguration - DELETE /v2/{project_id}/cas/applications/{application_id}/configuration servicestage:app:deleteConfiguration - GET /v2/{project_id}/cas/applications/{application_id}/configuration servicestage:app:getConfiguration - POST /v2/{project_id}/cas/applications/{application_id}/components servicestage:app:createComponent servicestage:assembling:getInfo servicestage:assembling:create GET /v2/{project_id}/cas/applications/{application_id}/components servicestage:app:listComponent - PUT /v2/{project_id}/cas/applications/{application_id}/components/{component_id} servicestage:app:modifyComponent - DELETE /v2/{project_id}/cas/applications/{application_id}/components/{component_id} servicestage:app:deleteComponent - GET /v2/{project_id}/cas/applications/{application_id}/components/{component_id} servicestage:app:getComponent - POST /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances servicestage:app:createComponent servicestage:assembling:getInfo servicestage:assembling:create GET /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances servicestage:app:listComponent - POST /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id}/action servicestage:app:modifyComponent - PUT /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id} servicestage:app:modifyComponent - DELETE /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id} servicestage:app:deleteComponent - GET /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id} servicestage:app:getComponent - GET /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances/{instance_id}/snapshots servicestage:app:getComponent - GET /v2/{project_id}/cas/jobs/{job_id} servicestage:app:listApplication - POST /v3/{project_id}/cas/environments servicestage:environment:create - GET /v3/{project_id}/cas/environments servicestage:environment:list - PUT /v3/{project_id}/cas/environments/{environment_id} servicestage:environment:modify - DELETE /v3/{project_id}/cas/environments/{environment_id} servicestage:environment:delete - GET /v3/{project_id}/cas/environments/{environment_id} servicestage:environment:get - PUT /v3/{project_id}/cas/environments/{environment_id}/resources servicestage:environment:modify - GET /v3/{project_id}/cas/environments/{environment_id}/resources servicestage:environment:list - POST /v3/{project_id}/cas/applications servicestage:app:createApplication - GET /v3/{project_id}/cas/applications servicestage:app:listApplication - PUT /v3/{project_id}/cas/applications/{application_id} servicestage:app:modifyApplication - GET /v3/{project_id}/cas/applications/{application_id} servicestage:app:getApplication - GET /v3/{project_id}/cas/applications/{application_id}/configuration servicestage:app:getConfiguration - PUT /v3/{project_id}/cas/applications/{application_id}/configuration servicestage:app:modifyConfiguration - DELETE /v3/{project_id}/cas/applications/{application_id}/configuration servicestage:app:deleteConfiguration - POST /v3/{project_id}/cas/applications/{application_id}/components servicestage:app:createComponent servicestage:assembling:getInfo servicestage:assembling:create GET /v3/{project_id}/cas/applications/{application_id}/components servicestage:app:listComponent - GET /v3/{project_id}/cas/components servicestage:app:listComponent - PUT /v3/{project_id}/cas/applications/{application_id}/components/{component_id} servicestage:app:modifyComponent - DELETE /v3/{project_id}/cas/applications/{application_id}/components/{component_id} servicestage:app:deleteComponent - GET /v3/{project_id}/cas/applications/{application_id}/components/{component_id} servicestage:app:getComponent - POST /v3/{project_id}/cas/applications/{application_id}/components/{component_id}/action servicestage:app:modifyComponent - GET /v3/{project_id}/cas/applications/{application_id}/components/{component_id}/records servicestage:app:listComponent - GET /v3/{project_id}/cas/runtimestacks servicestage:app:listApplication - GET /v1/{project_id}/git/auths servicestage:repositoryAuth:list - GET /v1/{project_id}/git/auths/{repo_type}/redirect servicestage:repositoryAuth:get - POST /v1/{project_id}/git/auths/{repo_type}/oauth servicestage:repositoryAuth:create - POST /v1/{project_id}/git/auths/{repo_type}/personal servicestage:repositoryAuth:create - POST /v1/{project_id}/git/auths/{repo_type}/password servicestage:repositoryAuth:create - DELETE /v1/{project_id}/git/auths/{name} servicestage:repositoryAuth:delete - GET /v2/{project_id}/servicestage-environment/{environment_id}/tags servicestage:environment:listTagsForResource - GET /v2/{project_id}/servicestage-application/{app_id}/tags servicestage:app:listTagsForResource -
  • 响应示例 { "is_success": true, "message": "", "job_id": "ead0b276-8ed4-4eb5-b520-58f1511e7033", "job_type": "QUERY", "row_count": 1, "input_size": 74, "schema": [ { "c1": "int" }, { "c2": "string" } ], "rows": [ [ 23, "sda" ] ] }
  • URI URI格式: GET /v1.0/{project_id}/jobs/{job_id}/preview 参数说明 表1 URI 参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 job_id 是 String 作业ID。 表2 query参数 参数名称 是否必选 参数类型 说明 page-size 否 Long 结果行数,范围: [1, 1000]。默认值为:1000。 queue-name 否 String 指定获取作业结果的执行队列名称。若不指定则使用默认的系统队列。 带入query参数的URL示例如下: GET /v1.0/{project_id}/jobs/{job_id}/preview?page-size={size}&queue-name={queue_name}
  • 响应消息 表3 响应参数 参数名称 是否必选 参数类型 说明 is_success 否 Boolean 执行请求是否成功。“true”表示请求执行成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 job_id 否 String 作业ID。可通过提交SQL作业(推荐)获取。 job_type 否 String 作业类型,包含DDL、DCL、IMPORT、EXPORT、QUERY、INSERT、DATA_MIGRATION、UPDATE、DELETE、RESTART_QUEUE、SCALE_QUEUE。 目前仅支持查看“QUERY”类型作业的执行结果。 row_count 否 Integer 作业结果总条数。 input_size 否 long 作业执行过程中扫描的数据量。 schema 否 Array of Map 作业结果列名称和类型。 rows 否 Array of Objects 作业结果集。
  • URI URI格式: GET/v1.0/{project_id}/queues/{queue_name}/jobs/{job_id}?page-size=size¤t-page=page_number 参数说明 表1 URI 参数 名称 是否必选 说明 project_id 是 项目编号,用于资源隔离。获取方式请参考获取项目ID。 queue_name 是 当前所在的队列的名称,此SQL将使用当前队列的资源进行计算。 job_id 是 作业ID。 page-size 否 每页显示的最大结果行数,范围: [1, 100]。默认值为:50。 current-page 否 当前页码,默认为第一页。
  • 响应消息 表2 响应参数 参数 是否必选 参数类型 说明 is_success 否 Boolean 执行请求是否成功。“true”表示请求执行成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 job_id 否 String 作业ID。 job_type 否 String 作业类型,包含DDL、DCL、IMPORT、EXPORT、QUERY、INSERT。 目前仅支持查看“QUERY”类型作业的执行结果。 row_count 否 Integer 作业结果总条数。 input_size 否 long 作业执行过程中扫描的数据量。 schema 否 Array of Map 作业结果列名称和类型。 rows 否 Array of objects 作业结果集。
  • 示例 请求样例: None 成功响应样例: { "is_success": true, "message": "", "job_id": "ead0b276-8ed4-4eb5-b520-58f1511e7033", "job_type": "QUERY", "row_count": 1, "input_size": 74, "schema": [ { "c1": "int" }, { "c2": "string" } ], "rows": [ [ 23, "sda" ] ] } 调用API出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝对指定资源在特定条件下进行某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。 关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 DLI支持自定义策略授权项如下表所示。 表1 API授权项列表 权限 对应API接口 授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 创建队列 POST /v1.0/{project_id}/queues dli:queue:createQueue √ √ 删除队列 DELETE /v1.0/{project_id}/queues/{queue_name} dli:queue:dropQueue √ √ 提交作业 POST /v1.0/{project_id}/jobs/submit-job dli:queue:submitJob √ × 取消作业 DELETE /v1.0/{project_id}/jobs/{job_id} dli:queue:cancelJob √ × 查看其他用户具备的队列权限 GET /v1.0/{project_id}/queues/{queue_name}/users dli:queue:showPrivileges √ × 重启队列 PUT /v1.0/{project_id}/queues/{queue_name}/action dli:queue:restart √ × 扩缩容队列 PUT /v1.0/{project_id}/queues/{queue_name}/action dli:queue:scaleQueue √ × 赋予指定用户弹性资源权限 PUT /v1.0/{project_id}/user-authorization dli:elasticresourcepool:grantPrivilege √ × 移除指定用户弹性资源池权限 PUT /v1.0/{project_id}/user-authorization dli:elasticresourcepool:revokePrivilege √ × 创建数据库 POST /v1.0/{project_id}/databases dli:database:createDatabase √ × 删除数据库 DELETE /v1.0/{project_id}/databases/{database_name} dli:database:dropDatabase √ × 修改数据库配置 POST /v1.0/{project_id}/jobs/submit-job dli:database:alterDatabaseProperties √ × 将SQL语句解释为执行计划 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:explain √ × 创建表 POST /v1.0/{project_id}/databases/{database_name}/tables dli:database:createTable √ × 创建视图 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:createView √ × 创建函数 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:createFunction √ × 描述函数 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:describeFunction √ × 删除函数 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:dropFunction √ × 显示函数 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:showFunctions √ × 创建角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:createRole √ × 删除角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:dropRole √ × 显示角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:showRoles √ × 显示所有角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:showAllRoles √ × 绑定角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:grantRole √ × 解除角色绑定 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:revokeRole √ × 显示所有角色和用户的绑定关系 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:showUsers √ × 查看其他用户具备的数据库权限 GET /v1.0/{project_id}/databases/{database_name}/users dli:database:showPrivileges √ × 显示数据库 GET /v1.0/{project_id}/databases dli:database:displayDatabase √ × 显示所有数据库 GET /v1.0/{project_id}/databases dli:database:displayAllDatabases √ × 显示所有表 GET /v1.0/{project_id}/databases dli:database:displayAllTables √ × 赋予指定用户数据库权限 PUT /v1.0/{project_id}/user-authorization dli:database:grantPrivilege √ × 移除指定用户数据库权限 PUT /v1.0/{project_id}/user-authorization dli:database:revokePrivilege √ × 删除表 DELETE /v1.0/{project_id}/databases/{database_name}/tables/{table_name} dli:table:dropTable √ × 显示表结构 GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name} dli:table:describeTable √ × 查询表 GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview dli:table:select √ × 显示表配置 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:showTableProperties √ × 显示建表语句 GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview dli:table:showCreateTable √ × 显示所有分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:showPartitions √ × 设置表配置 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableSetProperties √ × 添加列 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableAddColumns √ × 在分区表中添加分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableAddPartition √ × 重命名表分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableRenamePartition √ × 删除分区表的分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableDropPartition √ × 恢复表分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableRecoverPartition √ × 重命名表 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableRename √ × 设置分区路径 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableSetLocation √ × 插入表数据 POST /v1.0/{project_id}/jobs/submit-job,语句调用 dli:table:insertIntoTable √ × 重写表数据 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:insertOverwriteTable √ × 查看其他用户具备的表权限 GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/users dli:table:showPrivileges √ × 清空表 POST /v1.0/{project_id}/jobs/submit-job dli:table:truncateTable √ × 更新表 POST /v1.0/{project_id}/jobs/submit-job dli:table:update √ × 删除表数据 POST /v1.0/{project_id}/jobs/submit-job dli:table:delete √ × 修改列信息 POST /v1.0/{project_id}/jobs/submit-job dli:table:alterTableChangeColumn √ × 删除列 POST /v1.0/{project_id}/jobs/submit-job dli:table:alterTableDropColumns √ × 显示数据段 POST /v1.0/{project_id}/jobs/submit-job dli:table:showSegments √ × 合并数据段 POST /v1.0/{project_id}/jobs/submit-job dli:table:compaction √ × 修改视图 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterView √ × 显示表结构 POST /v1.0/{project_id}/jobs/submit-job,执行对应SQL dli:table:describeTable √ × 赋予指定用户数据表权限 PUT /v1.0/{project_id}/user-authorization dli:table:grantPrivilege √ × 移除指定用户数据表权限 PUT /v1.0/{project_id}/user-authorization dli:table:revokePrivilege √ × 查看其它用户的安全认证信息权限列表 GET /v1.0/{project_id}/datasource/auth-infos/{auth_name}/users dli:datasourceauth:showPrivileges √ × 使用安全认证信息 POST /v1.0/{project_id}/jobs/submit-job dli:datasourceauth:useAuth √ × 删除安全认证信息 DELETE /v2.0/{project_id}/datasource/auth-infos/{auth_info_name} dli:datasourceauth:dropAuth √ × 更新安全认证信息 PUT /v2.0/{project_id}/datasource/auth-infos dli:datasourceauth:updateAuth √ × 赋予指定用户安全认证权限 PUT /v1.0/{project_id}/user-authorization dli:datasourceauth:grantPrivilege √ × 移除指定用户安全认证权限 PUT /v1.0/{project_id}/user-authorization dli:datasourceauth:revokePrivilege √ × 赋予指定用户作业权限 PUT /v1.0/{{project_id}}/authorization dli:jobs:grantPrivilege √ × 移除指定用户作业权限 PUT /v1.0/{{project_id}}/authorization dli:jobs:revokePrivilege √ × 查询列 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:column:select √ × 赋予指定用户列权限 PUT /v1.0/{project_id}/user-authorization dli:column:grantPrivilege √ × 移除指定用户列权限 PUT /v1.0/{project_id}/user-authorization dli:column:revokePrivilege √ × 查询flink作业列表 GET /v1.0/{project_id}/streaming/jobs dli:jobs:listAll √ × 查询flink作业详情 GET /v1.0/{project_id}/streaming/jobs/{job_id} dli:jobs:get √ × 创建flink SQL作业 POST /v1.0/{project_id}/streaming/sql-jobs dli:jobs:create √ × 创建flinkJar作业 POST /v1.0/{project_id}/streaming/flink-jobs dli:jobs:create √ × 更新flinkSQL作业 PUT /v1.0/{project_id}/streaming/sql-jobs/{job_id} dli:jobs:update √ × 更新flinkJar作业 PUT /v1.0/{project_id}/streaming/flink-jobs/{job_id} dli:jobs:update √ × 删除flink作业 DELETE /v1.0/{project_id}/streaming/jobs/{job_id} dli:jobs:delete √ × 批量运行flink作业 POST /v1.0/{project_id}/streaming/jobs/run dli:jobs:start √ × 停止flink作业 POST /v1.0/{project_id}/streaming/jobs/stopob_id/stop dli:jobs:stop √ ×
  • 请求示例 将db2.t2的数据导出至OBS,并以json格式存储。 { "data_path": "obs://home/data1/DLI/test", "data_type": "json", "database_name": "db2", "table_name": "t2", "compress": "gzip", "with_column_header": "true", "queue_name": "queue2" }
  • 响应消息 表3 响应参数 参数名称 是否必选 参数类型 说明 is_success 否 Boolean 请求是否发送成功。“true”表示请求发送成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 job_id 否 String 此SQL将生成并提交一个新的作业,返回作业ID。用户可以使用作业ID来查询作业状态和获取作业结果。 job_mode 否 String 作业执行模式: async:异步 sync:同步
  • 请求消息 表2 请求参数 参数名称 是否必选 参数类型 说明 data_path 是 String 导出数据的储存路径(当前仅支持将数据存储在OBS上)。另外,“export_mode”配置为“errorifexists”时,该路径下的文件夹须不存在,如请求样例中的“test”文件夹。 data_type 是 String 导出数据的类型,目前API支持csv和json格式数据。 database_name 是 String 被导出数据的表所在的数据库名称。 table_name 是 String 被导出数据的表名称。 compress 是 String 导出数据的压缩方法。目前支持gzip、bzip2、deflate压缩方式;若不希望压缩,则输入none。 queue_name 否 String 指定执行该任务的队列。若不指定队列,将采用default队列执行操作。 export_mode 否 String 导出模式,目前支持“ErrorIfExists”,“Overwrite”,不指定“export_mode”则默认为“ErrorIfExists”。 “ErrorIfExists”:存在即报错。指定的导出目录必须不存在,如果指定目录已经存在,系统将返回错误信息,无法执行导出操作。 “Overwrite”:覆盖。在指定目录下新建文件,会删除已有文件。 with_column_header 否 Boolean 导出csv和json格式数据时,是否导出列名。 设置为“true”,表示导出列名。 设置为“false”,表示不导出列名。 若为空,默认为“false”。
  • 功能介绍 该API用于从DLI表中导出数据到文件。 该API为异步操作。 目前只支持从DLI表导出数据到OBS中,且导出的路径必须指定到文件夹级别。OBS路径中不支持逗号,且其中的桶名不能以正则格式“.[0-9]+(.*)”结尾,即,若桶名包含“.”, 则最后一个“.”不可以数字开头(例如:**.12abc 或 **.12)。 支持跨账号导出数据,即,如果B账户对A账户授权后,A账户拥有B账户OBS桶的元数据信息和权限信息的读取权限,以及路径的读写权限,则A账户可将数据导出至B账户的OBS路径中。 当前接口已废弃,不推荐使用。
  • 响应消息 表3 响应参数 参数 是否必选 参数类型 说明 is_success 是 Boolean 当“job_type”为“DCL”时,为请求执行是否成功。“true”表示请求执行成功。 message 是 String 系统提示信息,执行成功时,信息可能为空。 job_id 是 String 此SQL语句将生成并提交一个新作业,返回此作业的ID,可用于获取作业状态和作业结果。 job_type 是 String 作业类型。 DDL DCL IMPORT EXPORT QUERY INSERT schema 否 Array of Map 当语句类型为DDL时,返回其结果的列名称及类型。 rows 否 Array of objects 当语句类型为DDL时,直接返回其执行结果。
  • 示例 请求样例: { "currentdb": "db1", "sql": "desc table1", "conf": [ "dli.sql.shuffle.partitions = 200" ] } 成功响应样例: { "is_success": true, "message": "", "job_id": "8ecb0777-9c70-4529-9935-29ea0946039c", "job_type": "DDL", "schema": [ { "col_name": "string" }, { "data_type": "string" }, { "comment": "string" } ], "rows": [ [ "c1", "int", null ], [ "c2", "string", null ] ] } 调用API出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
  • 功能介绍 该API用于通过执行SQL语句的方式向队列提交作业。 当前接口已废弃,不推荐使用。 作业包含以下类型:DDL、DCL、IMPORT、EXPORT、QUERY和INSERT。其中,IMPORT和EXPORT分别与导入数据(废弃)和与导出数据(废弃)的功能一致,区别仅在于实现方式不同。 另外,用户可使用其他API来对作业进行查询和管理。具体操作有: 查询作业状态 查询作业详细信息 查询作业结果-方式一(废弃) 导出查询结果 查询所有作业 取消作业(废弃) 该API当响应消息中“job_type”为“DCL”时,为同步操作。 本章节介绍的API已过时,推荐使用提交SQL作业(推荐)介绍的API。
  • 请求消息 表2 请求参数 参数 是否必选 参数类型 说明 sql 是 String 待执行的SQL语句。 currentdb 否 String SQL语句执行所在的数据库。当创建新数据库时,不需要提供此参数。 conf 否 Array of objects 用户定义适用于此作业的配置参数。目前支持的配置项: dli.sql.join.preferSortMergeJoin(是否优先使用SortMergeJoin) dli.sql.autoBroadcastJoinThreshold(自动使用BroadcastJoin的数据量阈值) dli.sql.caseSensitive(sql语句是否大小写敏感) dli.sql.shuffle.partitions(指定Shuffle过程中Partition的个数) dli.sql.cbo.enabled(是否打开CBO优化策略) dli.sql.cbo.joinReorder.enabled(开启CBO优化时,是否允许重新调整join的顺序)
  • 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 在我的凭证下,您可以查看项目ID。 图1 项目隔离模型
  • 请求消息头 附加请求消息头字段,如指定的URI和HTTP方法所要求的字段。例如,定义消息体类型的请求消息头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 参数 说明 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式),默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 POST/PUT请求必填。 GET不能包含。 3495 X-Project-ID project id,项目编号。在多项目场景中使用,用于不同项目获取token。 否 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 IAM用户Token也就是调用“获取用户Token”接口的响应值,该接口是唯一不需要认证的接口。 使用Token方式认证时必选 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ Authorization 签名认证信息。该值来源于请求签名结果。 使用AK/SK认证时必选。 - X-Sdk-Date 请求的发生时间,格式为(YYYYMMDD'T'HHMMSS'Z')。 取值为当前系统的GMT时间。 使用AK/SK认证时必选。 20150907T101459Z X-Language 请求语言。 否 en-us API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 例如,对于IAM获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 请求方法 HTTP请求方法(也称为操作或动词),可告知服务正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 例如,对于IAM获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,例如cn-north-1,可以从地区和终端节点中获取。 scope参数定义了Token的作用域,下面示例中IAM获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见IAM获取用户Token。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于IAM获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP。 不同服务不同区域的Endpoint不同,您可以从地区和终端节点中查询所有服务的终端节点。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如,您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也是相同,所以简洁起见将这两部分省略。
  • 示例 请求样例: None 成功响应样例: { "is_success": true, "message": "", "job_id": "ead0b276-8ed4-4eb5-b520-58f1511e7033", "job_type": "QUERY", "row_count": 1, "input_size": 74, "schema": [ { "c1": "int" }, { "c2": "string" } ], "rows": [ [ 23, "sda" ] ] } 调用API出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
共100000条