华为云用户手册

  • 其他限制 云服务器因欠费而处于冻结状态,此时无法创建私有镜像,您必须先续费,解冻资源后再进行创建。 通过x86 CPU架构的云服务器创建的私有镜像,不能用于创建鲲鹏CPU架构的云服务器,也不能在鲲鹏CPU架构云服务器切换操作系统时使用。 通过外部镜像文件创建私有镜像时,若架构类型选择“x86”,则该私有镜像不能用于创建鲲鹏CPU架构的云服务器,也不能在鲲鹏CPU架构云服务器切换操作系统时使用。 32位操作系统的私有镜像不能创建超过4G内存规格的云服务器。因为32位系统的内存寻址空间最大为4GB。
  • 支持UEFI启动方式的操作系统版本 云服务器的启动方式包括BIOS启动和UEFI启动,二者区别请参见“UEFI启动方式与BIOS启动方式有哪些区别?”。 支持UEFI启动方式的操作系统版本如表1所示。 表1 支持UEFI启动方式的操作系统版本 操作系统类型 操作系统版本 Windows Windows Server 2019 Datacenter 64bit Windows Server 2019 Standard 64bit Windows Server 2016 Standard 64bit Windows Server 2016 Datacenter 64bit Windows Server 2012 R2 Standard 64bit Windows Server 2012 R2 Datacenter 64bit Windows Server 2012 Essentials R2 64bit Windows Server 2012 Standard 64bit Windows Server 2012 Datacenter 64bit Windows 10 64bit Ubuntu Ubuntu 19.04 Server 64bit Ubuntu 18.04 Server 64bit Ubuntu 16.04 Server 64bit Ubuntu 14.04 Server 64bit Red Hat Red Hat Linux Enterprise 7.4 64bit Red Hat Linux Enterprise 7.3 64bit Red Hat Linux Enterprise 7.1 64bit Red Hat Linux Enterprise 7.0 64bit Red Hat Linux Enterprise 6.9 64bit Red Hat Linux Enterprise 6.6 32bit Red Hat Linux Enterprise 6.5 64bit Oracle Linux Oracle Linux Server release 7.4 64bit Oracle Linux Server release 6.9 64bit openSUSE openSUSE 42.1 64bit SUSE SUSE Linux Enterprise Server 12 SP5 64bit SUSE Linux Enterprise Server 12 SP1 64bit SUSE Linux Enterprise Server 11 SP3 64bit Fedora Fedora 29 64bit Fedora 24 64bit Debian Debian GNU/Linux 8.8.0 64bit CentOS CentOS 7.6 64bit CentOS 7.5 64bit CentOS 7.4 64bit CentOS 7.0 64bit CentOS 6.9 64bit CentOS 6.6 64bit EulerOS EulerOS 2.8 64bit EulerOS 2.5 64bit EulerOS 2.3 64bit EulerOS 2.2 64bit openEuler openEuler 20.03 64bit 中标麒麟 NeoKylin V7 64bit 统信 UOS 20 64bit 父主题: 相关支持列表
  • 鲲鹏系统架构云服务器系列 以下云服务器支持的操作系统请参考表6。 鲲鹏通用计算增强型:kc1 鲲鹏内存优化型:km1 鲲鹏超高I/O型云服务器:ki1系列仅支持CentOS 7.6。 鲲鹏AI推理加速型云服务器:kAi1s系列仅支持CentOS 7.6、Ubuntu 18.04 Server。 表6 OS-支持版本 OS发行版本 支持版本 Huawei Cloud EulerOS Huawei Cloud EulerOS 2.0 标准版 Huawei Cloud EulerOS 2.0 等保2.0三级版 CentOS 64bit:CentOS 7:7.6/7.5/7.4 64bit:CentOS 8:8.0 Ubuntu 64bit:Ubuntu 18.04 Server EulerOS 64bit:EulerOS 2.8 Red Hat 64bit:Red Hat 7:7.6/7.5 SUSE Linux Enterprise 64bit:SLES 12 SP5/SP4 64bit:SLES 15 openSUSE 64bit:openSUSE Leap 15:15.0 Fedora 64bit:Fedora 29 Debian 64bit:Debian 10.2.0 openEuler 64bit:openEuler 20.03 KylinSec 麒麟信安 64bit:KylinSec 3.3 Kylin 银河麒麟 64bit:KylinOS_V10_SP1 64bit:KylinOS_V10_SP2 64bit:KylinOS_V10_SP3 UnionTechOS 统信 64 bit:UnionTechOS Server 20 1050e NeoKylin 中标麒麟 64bit:NeoKylin 7.6 Rocky Linux 64bit:Rocky Linux 8.7
  • x86系统架构云服务器系列 以下云服务器支持的操作系统请参考表 OS-支持版本。 通用入门型:t6 通用计算型:s2、s3、s6、sn3、s7 通用计算增强型:c3、c6、c6s、c6h、c7 内存优化型:m2、m3、m6、m7 高性能计算型:hc2、h3 磁盘增强型:d2、d3、d6 以下云服务器支持的操作系统请参考表2。 通用计算增强型:c3ne、c6、c6s 内存优化型:m3ne 以下云服务器支持的操作系统请参考表3。 超大内存型:e3、e6、e7 以下云服务器支持的操作系统请参考表4。 超高I/O型:i3、ir3 以下云服务器支持的操作系统请参考表5。 超高I/O型:i7、ir7 i7系列仅支持CentOS 7.4、CentOS 8.1。 其他GPU加速型实例参考GPU产品说明。 建议您使用操作系统官方发行版本进行系统构建,避免对发行版本进行裁剪及高度定制,以减少问题发生概率。 操作系统发行版本由操作系统厂商进行不定期版本更迭,部分系统版本厂商已停止维护,不再发布问题修复及安全补丁,建议及时关注厂商公告进行系统升级更新,保证您系统的健壮性。 表1 OS-支持版本 OS发行系列 支持版本 Windows Windows Server 2008 R2 Standard/Enterprise/Datacenter/Web Windows Server 2012 Standard/Datacenter Windows Server 2012 R2 Standard/Datacenter Windows Server 2016 Standard/Datacenter Windows Server 2019 Standard/Datacenter Windows Server 2022 Standard/Datacenter Windows Server Core Version 1709 Huawei Cloud EulerOS 64bit:Huawei Cloud EulerOS 2.0 标准版 64bit:Huawei Cloud EulerOS 2.0 等保2.0三级版 64bit:Huawei Cloud EulerOS 1.1 CentOS兼容版 说明: 仅s7/s6/c7/c6s/c6/m7/m6/d6系列云服务器支持Huawei Cloud EulerOS 2.0各版本的操作系统。 仅s6/c6s/c6/m6/d6系列云服务器支持Huawei Cloud EulerOS 1.1 CentOS兼容版操作系统。 Huawei Cloud EulerOS 1.1 CentOS兼容版仅支持新加坡区域。 CentOS 64bit:CentOS 6:6.10/6.9/6.8/6.7/6.6/6.5/6.4/6.3 64bit:CentOS 7:7.9/7.8/7.7/7.6/7.5/7.4/7.3/7.2/7.1/7.0 64bit:CentOS 8:8.3/8.2/8.1/8.0 Ubuntu 64bit:Ubuntu 22.04/20.04/18.04/16.04/14.04/12.04 Server EulerOS 64bit:EulerOS 2.5/2.3/2.2 Red Hat 64bit:Red Hat 6:6.10/6.9/6.8/6.7/6.6/6.5/6.4 64bit:Red Hat 7:7.9/7.8/7.6/7.5/7.4/7.3/7.2/7.1/7.0 64bit:Red Hat 8:8.0 SUSE Linux Enterprise 64bit:SLES 11:11 SP4/11 SP3 64bit:SLES 12:12 SP4/12 SP3/12 SP2/12 SP1/12 64bit:SLES 15:15/15 SP1/15 SP2/15 SP3 Debian 64bit:Debian 8:8.0.0~8.10.0 64bit:Debian 9:9.13.0/9.12.0/9.11.0/9.9.0/9.8.0/9.7.0/9.6.0/9.5.0/9.4.0/9.3.0/9.0.0 64bit:Debian 10:10.0.0~10.5.0、10.7.0 64bit:Debian 11:11.1.0 openSUSE 64bit:openSUSE 13:13.2 64bit:openSUSE Leap 15:15.1/15.0 64bit:openSUSE Leap 42:42.3/42.2/42.1 Fedora 64bit:Fedora 22~32 CoreOS 64bit:CoreOS 2079.4.0 FreeBSD 64bit:FreeBSD 12.1、FreeBSD 11.0、FreeBSD 10.3 openEuler 64bit:openEuler 20.03 64bit:openEuler 22.03 AlmaLinux 64bit:AlmaLinux 9.0 64bit:AlmaLinux 8.4 64bit:AlmaLinux 8.3 Rocky Linux 64bit:Rocky Linux 9.0 64bit:Rocky Linux 8.5 64bit:Rocky Linux 8.4 表2 OS-支持版本 OS发行版本 支持版本 Windows Windows Server 2008 R2 Enterprise/Datacenter/Web/Standard Windows Server 2012 R2 Standard/Datacenter Windows Server 2016 Standard/Datacenter Windows Server 2019 Datacenter Windows Server Version 1709 Datacenter CentOS 64bit: CentOS 6 CentOS 7 CentOS 8 Ubuntu 64bit: Ubuntu 14.04 Server Ubuntu 16.04 Server Ubuntu 18.04 Server Ubuntu 20.04 Server Ubuntu 22.04 Server EulerOS 64bit: EulerOS 2.2 EulerOS 2.3 EulerOS 2.5 Red Hat 64bit: Red Hat 6 Red Hat 7 SUSE Linux Enterprise 64bit: SLES 11 SLES 12 Debian 64bit: Debian 8 Debian 9 openSUSE 64bit: openSUSE 15.0 openSUSE 15.1 Fedora 64bit: Fedora 2x openEuler 64bit: openEuler 20.03 表3 OS-支持版本 OS发行版本 支持版本 Huawei Cloud EulerOS 说明: 仅e6系列云服务器支持此操作系统。 Huawei Cloud EulerOS 2.0 标准版 Huawei Cloud EulerOS 2.0 等保2.0三级版 CentOS 64bit: CentOS 6 CentOS 7 CentOS 8 Ubuntu 64bit: Ubuntu 14.04 Server Ubuntu 16.04 Server Ubuntu 18.04 Server Ubuntu 20.04 Server EulerOS 64bit: EulerOS 2.2 EulerOS 2.3 EulerOS 2.5 Red Hat 64bit: Red Hat 6 Red Hat 7 SUSE Linux Enterprise 64bit: SLES 11 SLES 12 SLES 15 Debian 64bit: Debian 8 Debian 9 Debian 10 openSUSE 64bit: openSUSE 15.0 openSUSE 15.1 Fedora 64bit: Fedora 2x Fedora 3x openEuler 64bit: openEuler 20.03 表4 OS-支持版本 OS发行版本 支持版本 CentOS 64bit: CentOS 7 Ubuntu 64bit: Ubuntu 14.04 Server Ubuntu 16.04 Server Ubuntu 18.04 Server Ubuntu 20.04 Server EulerOS 64bit: EulerOS 2.2 EulerOS 2.3 SUSE Linux Enterprise 64bit: SLES 12 Debian 说明: ir3系列云服务器不支持Debian操作系统。 64bit: Debian 8 Debian 9
  • 特性列表 表1 创建私有镜像类 特性 说明 相关操作 使用云服务器或裸金属服务器创建系统盘镜像 创建服务器实例后,您可以根据业务需求自定义实例(例如:安装软件、部署应用环境),并使用更新后的服务器创建系统盘镜像。通过该镜像创建的新实例,会包含您已配置的自定义项,节省您重复配置的时间。 通过云服务器创建Windows系统盘镜像 通过云服务器创建Linux系统盘镜像 通过裸金属服务器创建私有镜像 使用外部镜像文件创建系统盘镜像(也称导入镜像) 可以将您本地或者其他云平台的服务器系统盘镜像文件导入至华为云 镜像服务 中。导入后,可使用该镜像创建新的弹性云服务器或裸金属服务器实例,或对已有实例的系统进行重装或更换。 通过外部镜像文件创建Windows系统盘镜像 通过外部镜像文件创建Linux系统盘镜像 通过外部镜像文件创建裸金属服务器私有镜像 快速导入镜像文件 使用ISO文件创建系统盘镜像 相比其他格式的外部镜像文件,ISO文件无法直接使用,需要利用一些工具进行解压后才能使用,例如UltraISO、VirtualBox。创建流程较为复杂,详见“相关操作”。 通过ISO文件创建Windows系统盘镜像 通过ISO文件创建Linux系统盘镜像 基于VirtualBox使用ISO创建Windows镜像 基于VirtualBox使用ISO创建Linux镜像 使用Packer创建系统盘镜像 Packer是一款可以创建 自定义镜像 的开源工具,可降低创建镜像复杂度,并且将创建镜像的过程变成可以配置管理代码的形式,支持用户灵活定制个性化镜像。 使用Packer创建私有镜像 使用外部镜像文件创建数据盘镜像 可以将您本地或者其他云平台的服务器数据盘镜像文件导入至华为云镜像服务中。导入后,可使用该镜像创建新的云硬盘。 通过外部镜像文件创建数据盘镜像 使用云服务器、云服务器备份,或者云备份创建整机镜像 将云服务器及其上挂载的数据盘一起创建整机镜像,此镜像包含操作系统、应用软件,以及用户的业务数据,可用于快速发放相同配置的云服务器,实现数据搬迁。 支持使用云服务器、云服务器备份、云备份三种整机镜像创建方式。 通过云服务器创建整机镜像 通过云服务器备份创建整机镜像 通过云备份创建整机镜像 通过私有镜像创建云服务器 系统盘镜像或者整机镜像创建成功后,在该镜像所在行单击“申请服务器”即可创建新的云服务器。 通过镜像创建云服务器 表2 管理私有镜像类 特性 说明 相关操作 修改镜像属性 为了方便您管理私有镜像,您可以根据需要修改镜像的如下属性:名称、描述信息、最小内存、最大内存,以及是否支持网卡多队列、SRIOV驱动这些高级功能。 修改镜像属性 共享镜像 您可以将镜像共享给其他华为云账号使用。该账号可使用您共享的私有镜像,快速创建运行同一镜像环境的云服务器,或者相同数据的云硬盘。 共享镜像 常见问题 导出镜像 导出私有镜像到您的个人OBS桶,再下载至本地进行备份。 导出镜像 加密镜像 您可以创建加密镜像来提升数据安全性,加密方式为KMS的信封加密。 外部镜像文件或者加密云服务器均可用来创建加密镜像。 加密方式 创建加密镜像 区域内复制镜像 通过区域内复制镜像功能可以实现加密镜像与非加密镜像的转换,或者使镜像具备一些高级特性(如快速发放)。 区域内复制镜像 跨区域复制镜像 用户在区域A创建的私有镜像,可以复制到区域B,即同账号跨区域复制。常和共享镜像结合使用,实现跨账号跨区域镜像复制。 跨区域复制镜像 标记镜像 为您的私有镜像贴上标签,便于管理和搜索。 标记镜像 导出镜像列表信息 支持以“ CS V”格式导出某个区域的公共镜像和私有镜像的信息列表,方便本地维护和查看。 导出镜像列表信息 删除镜像 如果您不再需要某个私有镜像,可以将其删除,删除镜像对已创建的云服务器没有影响。 删除镜像
  • 访问方式 KooDrive公测期间提供Web化的服务管理平台,用户可通过管理控制台和基于HTTPS请求的API(Application Programming Interface)方式访问KooDrive。 API方式 如果用户需要将KooDrive服务集成到第三方系统,用于二次开发,请使用API方式访问KooDrive,具体操作和描述请参考KooDrive服务的《API参考》。 控制台方式 其他相关操作,请使用管理控制台方式访问KooDrive。 如果用户已 注册华为账号 并开通华为云,可直接登录管理控制台,从主页选择或搜索“云盘服务 KooDrive”,访问KooDrive。如果未注册,请先注册华为账号并实名认证。请参考以下步骤注册、认证。 打开华为云网站。 单击页面右上角“注册”,根据提示信息完成注册。 实名认证请参考:实名认证。
  • 产品功能 KooDrive服务为企业用户提供文件存储和管理、共同协作等企业办公文件类服务,构建企业一站式云盘。 KooDrive服务提供表1中的功能。 表1 KooDrive服务功能概览 功能名称 功能描述 发布区域 组织管理 支持创建企业部门,修改、删除企业部门。 华北-北京四 用户管理 支持添加、修改、禁用/启用、删除用户。 华北-北京四 空间管理 支持管理团队空间和用户个人空间,包括分配、修改、禁用/启用、删除空间。 华北-北京四 文件存储与管理 支持文件夹新建,文件复制、查看详情、重命名、移动、转存、搜索、收藏、删除、彻底删除、恢复功能。 华北-北京四 文件传输 支持文件上传、下载功能,大文件通过分片机制实现上传、下载。 华北-北京四 文件服务 支持在线查看图片缩略图功能。 华北-北京四 文件分享与协作 支持对企业内外部用户分享文件(夹),查看、下载、保存分享的文件(夹)。 华北-北京四 工具中心 支持管理用户群组,包括创建、修改、删除群组,添加、移除群组成员。 华北-北京四 回收站管理 支持管理个人回收站和团队回收站内的文件(夹)。包括恢复、彻底删除回收站内文件(夹),清空回收站。 华北-北京四 API开放 开放部门管理、用户管理、空间管理等接口供第三方进行二次开发使用。 华北-北京四
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。安全性是华为云与您的共同责任,如所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS各类各项云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类各项云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的云安全挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、虚拟主机和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 业务流量超过防护带宽怎么办? 如果您的实际业务流量超过已购买的防护带宽流量,可能会出现丢包现象,建议您及时根据实际业务情况购买扩展包来提供足够的防护带宽。 当您的业务流量持续超过可防护流量峰值时, 云防火墙 会将超出限额部分的流量进行bypass处理,被bypass的流量将无法被云防火墙防护。 购买扩展包请参见变更扩展包。 云防火墙支持设置流量超额预警,当业务流量达到已购买带宽规格的一定比例时,将发送告警通知,设置告警通知请参见告警通知。 父主题: 网络流量类
  • 云防火墙提供的防护带宽是多少? 云防火墙为您提供互联网边界和VPC之间的防护,您可根据需要扩展防护带宽。根据您购买的服务版本的不同,云防火墙提供不同规格的防护带宽: 互联网方向:基础版默认10 Mbps(不可扩容),标准版默认10 Mbps,专业版默认50 Mbps。 互联网方向的防护带宽按照入流量或出流量的最大值取值。 VPC间防护:基础版、标准版不提供基础防护流量,专业版默认200 Mbps。 若您的实际流量超过限额,需购买扩展包,请参见操作步骤变更扩展包。 父主题: 网络流量类
  • 系统策略授权企业项目后,为什么部分权限会失效? CFW部分功能依赖于弹性云服务器(Elastic Cloud Server, ECS)、虚拟私有云(Virtual Private Cloud, VPC)等云服务,因这些云服务中部分功能不支持企业项目,将“CFW FullAccess” 和“CFW ReadOnlyAccess”两个系统策略授权到企业项目维度后会造成部分权限失效。 所以需要使用华为云账户自行创建两条系统策略,具体创建步骤请参见:创建自定义策略。 CFW依赖的云服务中不支持企业项目的功能需要按照以下内容添加权限,其中 云日志 服务(Log Tank Service,简称LTS)在CFW页面操作时需授权LTS服务全部权限。 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "vpc:quotas:list", "vpc:publicipTags:get" ] }, { "Effect": "Allow", "Action": [ "ecs:availabilityZones:list" ] }, { "Effect": "Allow", "Action": [ "lts:groups:list", "lts:groups:get", ] } ] } CFW依赖全局服务的权限: { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "eps:resources:list" ] }, { "Effect": "Allow", "Action": [ "tms:predefineTags:list" ] } ] } 父主题: 故障排查类
  • 实践:小步快跑,收支相宜 我们根据在各产品线转型的经验,第一步一定会选一个标杆产品,这个标杆产品一般来说会是一个服务化产品,或者是一个Cloud Native原生的产品。对架构解耦实现云服务化,对工具实现上云,对运维进行云提升。这是我们选取试点服务的方法或者准则、经验。 选好了一个服务后,就需要按部就班地转型。怎么做?实施敏捷的时候,敏捷有很多实践,要小步快跑,不断地见到成效。在进行迁移的时候也面临同样的问题,因为这本身也是一个项目,不可能一蹴而就,不是阶梯状的陡升。通过不断提升每一步的工具能力,来实现整体交付能力的提升。同时把整个转型工作的风险降到最低。 能力转化就如同是一个金字塔,金字塔尖一般来说是非常不容易达到的境界,金字塔的底端是入门团队需要做的事情。金字塔下面是沙子,第一件事情是打破思想,是我要做这件事情,要上云。这里一般是指上公有云,因为私有云的模式很难达到各种应变能力。 一般来说代码上云,就使很多企业避而远之,因为他们要的是代码的安全性。上图中右边每个层级列了两行,描述做这件事情主要的目的是什么、主要涉及到的工具是什么。代码上云主要的目的就是解放思想,把代码放到云端 代码托管服务 上来,把资产,例如软件开发的文档、积累的知识放到这里。 第二是管理上云,让我们的软件开发过程更加开放透明。有很多团队每周会发一个电子版进展表格,从一周的频度来说它是开放的,但是每天而言,它仍然是封闭的系统。把管理放到云端,目的是实现更好的开放协作。需求管理工具要有看板、相应的测试管理人员。 前两步实现之后,必然对效率有了要求,这个时候要构建自己在云端交付的能力,一般来说涉及的是构建、部署、流水线和自动化测试,当这些能力达到之后,这一步追求的提质增效的目标基本达成。 金字塔的顶端是开发上云,把所有的工作迁移到云端,目的是探索创新。此处为什么要把IDE迁移到云端?因为在云端可以得到更好的快速获取环境的能力,可以获得更好的协作能力、试错能力。当这些能力叠加在你面前的时候,你会发现在本地创建一个非常好用,但是搭建起来非常复杂的环境,不再有那么大的吸引力了,你会追求开发上云的境界。 下面给大家介绍几个在云化工具链转化过程中比较好的实践: 第一个实践,DevOps讲究的就是快速迭代、快速交付。它的主要收益不是为了快速的交付价值,而是为了帮助组织不断的纠正错误。产品经理抱怨交付团队交付效率永远达不到要求,就是因为管理过程中会存在各种各样的问题。所以每周一定要有一个迭代回顾,通过迭代回顾把迭代过程中的问题全部列出来,争取在下一个迭代中去改变一些,通过不断的改变,团队的效率得到提升,冗余的行为被去除。这是快速迭代敏捷开发的实践。 第二是微服务解耦。下图中左边部分,所有的服务都耦合在一起,虽然每个服务有自己的泳道,但发布的时候必须携手一起发布。例如一个很简单的服务,只有前台和后台,用于查询数据和刷新数据。经常会有前台升级的时候,要求后台跟着一起升级,后面后台升级了之后,前台工作了。这种情况就是解耦不充分造成的。一般来说,如果做得好会有特性开关、合适的导流、灰度测试等等。右边是一个比较好的例子,每个微服务有自己独立的泳道,同时已经实现了自己独立的交付节奏。 第三是持续交付流水线。这里列了一个流水线的基本流程,下面几点是我们总结出来的比较有意义的实际操作: 流水线一定要体现出管理理念,流水线分广义和狭义,狭义指操作序列,从开始执行到结束,总体来说只执行的是操作序列一些任务的堆积,不是管理理念的构成。还有一种广义的流水线,从需求进入管道之后,整个管理起来,并且可视化,广义流水线决定了你交付价值的真正速度。 任务要自动化执行,还要有质量门禁,这并不是华为的独创,实际上在所有业内的云交付公司都采取了这种方式。华为公司提供的质量门禁是基于Task的输入为大家设定的阈值。实际上质量门禁设置的最高境界是提供一个开放的茬口,在这里一切服务都可以作为门禁,它可以是一个手工的步骤,可以是一个服务请求的数据,也可以是一个测试系统的报告等等。这种开放的质量门禁才能够最大限度的体现出管理理念。 最后一个叫做质量门禁的集中管控,流水线放在个人的手里,执行流水线的同事通常会由于权限过高或者发布压力,把流水线的门禁关掉或者故意设得比较低。一定要从企业或者组织的高度对流水线的门禁有一个较高的要求,这种情况下质量才能得到比较好的保障。 第四个实践叫做生产环境的自动化。出现了比较重大的质量事故后,当我们去追溯时发现,问题往往是由一两个工程师一个多余的操作造成的。怎么杜绝这个事情?只有自动化。只有没有人参与的过程才是不会犯错误的。在生产环境的自动化保证了高质量向用户交付的基本要求。 首先,自动化的变更指的是当你决定向云端发布一个新版本的时候,从版本流出一直到线上功能的上线,直到用户可用的过程、审批必须都是自动化的,而不是说有手工环节在里面,只有这样,交付的前置时间才会缩到最短。 紧接着是灰度发布,任何一个发布对用户都有影响,不一定友好。只有找一部分用户先来试用新的功能,才能降低发布风险。这里有两种,一种是特性,一种是升级的部署。同时还有失败回滚,当部署的新版本发生故障时候,你如何按照精英团队的标准,在一个小时以内把它回滚到健康的版本,保证它的能力。 第五,用户级灰度发布。我们通常会采用很多种技术,一般是采用流量分配的技术,我们一般会控制流量分配,在这个技术过程中,我们会保证一些用户使用到新版本,这个过程仁者见仁,智者见智,概念非常多,不赘述了。 第六是生产在线测试。如果是金融系统,涉及到钱,应该有相应的管理成本配置,否则怎么保障线上的系统是正确的?线上系统势必要做测试,任何系统的模拟数据都无法与真实数据相比,哪怕在真实系统只花一分钱,模拟交易量都不能替代它。应该用管理成本设置一个账户,在里面实际的实现一些线上的支付,只有这样才能保证线上系统是真正可用的。华为线上有非常丰富的测试手段和机制,这里也提到了,告警机制是非常重要的。实现线上测试的目标是什么?第一是保证线上的质量,第二是对用户的承诺,我们交给用户的是一个服务,而不是光盘,这个服务必须是可用的,当它不可用时,要先于用户发现并解决它,这样的服务才是可靠,可信赖的。
  • 自检:核心实践,成效佳? DevOps是正向价值链,运营反馈是反向价值链,通过不断的度量,实现各方面的提升。在此我们主要关注的是持续交付的交付链。将一个需求变成线上的特性,测试人员在线上测试通过,即完成了正向交付价值。但是实际交付的效果可能并不好,就会造成用户流失,这是非常严重的状况。在正向交付负向反馈的同时,我们要不断地优化自身的能力,重新审视自己交付的能力和流程,是否从一个中等效率团队提升到高效率团队,甚至已经进入到精英团队的范畴,只有这样企业的竞争力才能不断的提升。 如何进行自检? 对于很多产品来说,产品形态还没有达到服务化或者云化的水平,需要用一些理论实践方法去引导他们达到这样一种新的开发能力水平和范围。所以需要有一个基本的引导方式。下图是整个开发的基本过程,列出了正向的交付链,针对每个过程中需要做的事情罗列出它所属的工程领域,例如开发工具或者交付工具、运维、反馈的工具领域,然后规划,以何种方式使用工具。正确的使用可以加快组织流程,用得不对,或者工具存在问题,可能会成为一个阻塞点。下图中红色部分是我们罗列的一部分能力,不是全部的。每个企业有自己软件交付的形式和方式,这里只是举一个例子,抛砖引玉。
  • 聚焦:难把工具比仙子 接下来讲一下在企业实行全云化转型过程中面临的问题。下到十人团队,上到千人团队,各种各样的开发模式都有可能存在,怎么去做这样的转型?要先选一个合适的项目类型或者产品类型。这里列了几个基本的工具链的云化水平与其所匹配的软件开发或者项目服务能力的匹配表。 一般来说,我们在最开始只做大规模单体交付时,采用的都是本地化的工具,因为开源、免费,搭建比较方便,运维比较直接。但是当一部分服务已经开始进行混合产品交付的时候,例如华为的消费者云或者一些混合云和开发商混合的产品,里面有一部分是我们自己固定的组件,还有一部分是云端提供的服务接口,这时候就必须要把一些相应的交付能力挪到云端去,这样就实现了部分云化,主要适合混合型的产品。 接下来要把我们的能力全部云化,例如产品研发、测试、部署、构建、发布,都需要云化。 最后,服务变成一种纯Cloud Native,并不是它对本地没有任何要求,而是它所有的能力,包括弹性、各种快速响应,都是依赖云服务商提供的。这样就可以实现移动办公,轻松在家里喝咖啡办公。
  • 蔓延:人心所向,大势已成 最后一条是基于组织的。 首先要有一个比较好的文化氛围。当组织对DevOps整个理念有高度认同度的时候,实践这样一种过程的改变会比较方便。 第二是自动化能力。我们可能机械化的去追求某些行为的自动化,但是必须把自动化这件事情刻到骨子里面去,每写一行代码都要思考能否自动化的机制保障它的成功。 第三是共享。在企业内部,很多团队有一些竞争,包括采用不同的理念,例如采用敏捷和采用精益的不同开发方法,分享知识与智慧是企业的宝贵资产。 第四,要有一个度量机制。必须要提到的是统计口径,这非常重要,度量应该是基于结果的度量或者基于事实的正向度量。因为我们现在所处的年代是一个飞速变革,发展非常快速的年代,在最近十年内所产生的技术变化可能抵得上过去一百年所产生的技术总量。 第五,企业内部要有一个好的培训机制和流程的导向。以华为公司为例,内部有一个比较著名的华为大学,华为创建这个大学的目的,就是为了让所有的员工在繁忙的工作交付的同时,能够有学习和深造自己的机会,同时也是为了把企业所赞同的一些核心价值观和方法向一线团队进行传播。所以会有很多培训班,针对DevOps的现场实践课,让一些从来没有机会去实践DevOps的团队,也有机会通过培训实际的方式参与进来,理解DevOps理念,慢慢地一定会在他所处的产品线或者所处的开发方向上发芽生根,以至于整个企业的氛围都是蒸蒸日上。
  • 观察:研发全云,境清奇? 进行企业DevOps能力自检之后,可能发现很多问题。 决定上云本身就是一个创新性的决定,很多企业对上云都是顾虑重重,为什么?首先,它是一个打破思想枷锁的过程,因为云上一切意味着不确定性、不安全性、不可知、风险,同时意味着大量的机会。在这个过程之中,我们首先要知道用全云端的工具意味着什么。 上图中左边有全云端的沙盘,从需求管理开始,紧接着要做实施和交付,开发、测试服务、构建、发布、部署、监控。后续还有一些基础服务,这些基础服务的实现实际上是为了衬托上层服务,如果没有代码托管、资源自动化、仓库服务,实施DevOps也只能是无水之田。右边是云化或者服务化的能力模型,下面三行是重中之重。大多数人做云化软件交付的时候可能不是云化,而是服务化。第一是自动化管理,管理流程不再有那么多人工过程了。第二是弹性扩展,不管是交付的软件也好,或者使用的工具也好,要有一个自动适应弹性扩展的能力,很方便的依托于现在公有云提供的能力,这种弹性扩展的能力并不难实现。第三要有一个足够的资源池,一般来说,公有云的服务商已经为大家打造了这样的平台,金字塔里面都满足了,可以说是云化服务,已经从服务化上升到云化的交付能力了。 然而实际做云化转型的时候是困难重重的。 从资源的角度来说,一般软件云化有三步: 第一是虚拟化,从实体服务器逐步转化成虚拟机。 第二是资源池化,有一个大的资源池可以实现动态的分配 第三步是自助服务,云端自助服务是能够实现快速运转的条件。 此外还有流程。如果线上发布过程和生产环境之间网络不通,应该怎么做呢?答案是工具并不能解决这个问题,因为这是流程问题。众所周知,华为公司有各种各样的安全红线,在做内部的云化服务化工具链落地实施的时候,最大的工作量集中在如何打破枷锁上,怎么把内网的一段代码或者一段测试用例或者二进制的安全文件快速传递到外网仓库,这一问题花了很长时间。举一个简单的例子,有一个流水线,其他步骤执行只需10分钟,最后会在发布审核的环节整整卡七个小时或者一周。我们做到提前审批到事后追查的能力,是做了最大的公关,等于说这是一个关键阻塞点的破除。一定要注意,当你准备做一个流程或者工具实施的时候,阻塞点不一定来自于技术和工具,很有可能是来自于流程。 部署方面,是否具备独立部署的能力,是否能够合理的使用资源组、容器镜像,类似于这种资源池进行管理的能力,都是限制我们服务的能力。经过很长时间的实践,我们发现很多产品线声称他们已经实现微服务架构,已经实现解耦,但是最后的结果是众多的微服务打包部署上线。这实际上还是要回到源头上去看一下整个服务架构是否做到了解耦,是否做到了微服务所要求的九大特征。 后面是编码问题,现在编码工具非常多,但是实现全云化的时候,实际上是要求我们把一种编码的能力移到云端去做。这件事情想起来很简单,做起来很困难。包括要实现后台运行、运维、测试、调试能力的支持,同时还希望和DevOps工具链打通。 再者是安全性,上云本身是一种思想的变革,没有绝对的安全,只要暴露在公众的眼光下,就有泄露的一天,就有被攻击的可能性。很多用户在使用我们的软件服务的时候,最大的问题是:“我们很关注安全性,请问你们有特别好的解决方案吗?”两条路,第一通过特殊化的定制、阉割、裁减一些本来应该很开放的能力来适应安全性,但是后果也显而易见,关在笼子里面的狮子怎么可能是强壮健康的呢?第二是说服用户,看他是否我的菜。举个典型的例子,我们从来没办法说服华为的海思来使用我们的服务,因为海思在华为内部是绝密。
  • CodeArts前端DevOps实践 本文主要以CodeArts产品自身为背景,简要介绍一些在前端性能优化方面的优秀实践方法和常见问题。 在开始本文的内容之前,先简单介绍一下华为云CodeArts。CodeArts是华为云一站式云端DevOps平台。简单来说,就是在云端提供了从需求到运维的端到端DevOps工具链。CodeArts的目的是为研发团队提高研发效率,降低研发成本。 本文的主题是前端的性能优化,而性能优化的解决过程与一个希腊神话故事十分类似。这个故事讲述一个名叫西西弗斯的国王,由于犯了错误,被惩罚在一座山坡上不停的推石头。这位国王不停推石头的过程,与我们持续的进行性能优化的过程很像,而石头就是我们要不停优化的问题,发现有问题又要重新来,或者一步一步来。几乎所有大型网站在做性能优化的时候,可能都是在重复的推那个大石头。 我们为什么要做性能优化?下面让我们来看几个数据: 第一,40%的用户如果在一个网站加载时长超过三秒之后就会离开这个网站。 第二,用户转换率和网站的响应时间进行关联的结果基本是,响应时间越高,性能越差,转换率越低。 之前在知乎上有一个很出名的讨论,有个人分享他把网站的响应时间从10秒提高到2秒,效率提高500%的心得和过程。当时很多人评论他讲得好,但还有更多人批判这个问题,原因就是为什么你最初能够容忍一个响应时间为10秒的产品上线?其实很多团队都存在这样的问题,每天聚焦在做优化的事情,反而忽略了第一次的10秒是怎么产生的。就好像西西弗斯的那个故事里的大石头,它为什么会出现?比如突然有一天我们被告知,用户说网站性能太差,无法承载响应的需求,这个时候团队内部才决定痛定思痛,好好做网站性能优化的事情。第一步往往是对网站进行分析,看能否找到其中的问题是什么。然后通过这些问题逐步去分析,并且做大量的技术验证,去定位并确定问题,这一步帮助我们知道这个石头是怎么来的。在这个阶段,让我们来看看有哪些好的实践。 首先,尽量利用一些第三方的平台工具,例如谷歌的Page Speed和YSlow、Lighthouse。这些工具提供了很多关于单一应用的检查项。用好第三方平台工具,能够快速对你的网站进行检验,去发现这里是否有问题,然后给我们某一个维度的检查报告。我们不能也全部依赖于工具的检验结果,也需要基于业务本身去一个一个验证,得出一个优化的结论,每一环验证好打上勾,最终的结果呈现出性能的提升。我们在提升的过程中往往发现,很多问题是规范方面的不足,这时就需要思考为什么在开发过程当中会犯这样的低级错误。 基于前面的过程,团队往往会组合出适合自己的工具链。但当我们一次次的开始推我们的这个大石头时,会发现石头特别大、特别累。于是我们希望前端工作人员能够安静独立的尽快解决这个事,不被打扰;我们会想团队要求能否少点需求,在这各阶段大家都停一下,一起把这个任务过了,让网站得到一些提升。 我们可能经过一个月的攻关,确保每个团队把自己的工作做好了,发上线了,客户得到了好的反馈,网站性能提升了,团队很高兴终于把这个石头推向山顶。但是过一两个月,又有人说页面速度变慢了,有些模块的响应速度完全不能忍受。问题的来源可能很多,我们的开发人员要专注于交付,项目进程中会出现人员的变动,很多之前在项目中积累的好实践会丢失掉。然而这些问题是无法避免的,可性能的提升也是刻不容缓的,难道团队要每隔一两个月就要做一次这样的攻关,又去推一遍超级大的石头吗? 在CodeArts的开发过程中也出现过这样的问题,而CodeArts团队针对这个问题的思考是不推这个石头了,为什么一定要积累到这么庞大的问题,而不是把石头敲碎,每次带一点呢。于是CodeArts开始基于这个角度思考如何进行性能优化,不要做任何专项的改进,而是把问题敲碎,放在每一个迭代当中。 回到开始,我们想一下之前要做的性能优化的事情,简单来说可以分为两个部分。第一个部分是固化的部分,包括CDN的建设、所有Web上的容器设置。CodeArts使用的是前端的Angular框架,关于Angular框架本身的演进与优化,再到基于业务实践自己抽取的或者实现的主权库以及公共的部分,我们把它看做是固化的部分。固化的意思是说在组织过一次集中的攻关之后,经验和效果很容易被传承下来。它的改动不涉及业务,所以它的变化频率本身比较低,而且一般这种公共的东西会有专门的架构师去看护。对于这部分内容,做了一部分优化之后就会有很好的效果。这其中还有网站劣化的部分,有可能每一个特性就是100到几百毫秒的差别,但是一个不注意,积累到一定程度之后,就会出现我们最开始所说的10秒页面。对于这部分问题CodeArts前端团队会怎么做?这就要回到DevOps的三步法,从左到右的流动,从右到左的反馈,以及持续学习的迭代。 这里的关键是第二步,从CodeArts面临的问题角度来看,就是我们怎么知道产品的每一个服务,每一个页面在什么时候开始发生了性能的劣化,就像那个石头一样是慢慢长大的。我们能否在每天,每个月,每个迭代随时发现它的变化,然后把石头敲碎,前提就是能否及时得到反馈。如果团队自身都不知道产品的性能是怎么样,靠外界,靠用户,靠其他人了解,到那个时候一看,石头就已经非常庞大了。所以核心的第一点是反馈,那么如何建立这个反馈? 第一,要有主动、实时的、前端定制化的监控。这里有几个非常关键的方面: 前端定制化。这种监控手段非常多,有各种各样的监控工具,大部分的实现原理是源于浏览器的关键节点。CodeArts本身基于开源的项目做了定制化的监控,一是将浏览器里面所有关于监控的指标细化了。 按照框架的要求,定义一些对产品要求更适合的指标,并且监控数据是实时的,并不是采样。监控的数据会提供给开发人员,每一个前端的开发人员会隔几天观察一下页面服务的现状表现如何,监控生成的结果一目了然,会帮助他们知道问题是由于网络还是由于基础框架、业务写法、效率、接口,通过前端主动化、定制化的监控,可以快速识别,且降低交付成本。 第二部分是被动的例行的性能验收。CodeArts团队会从测试验收的维度思考问题,有的团队确实疏忽了,或者初期没有建立起主动的意识,就需要靠被动的性能验收去给团队展示,让大家知道网站目前的情况,看到每一个页面发生的变化。 有了这两个主动的和被动的监控数据存在,让整个前端团队能够掌控到网站在性能上的实时变化,知道现在发生了什么问题,哪一块是我们的弱点,哪一块需要我们的开发人员去注意,哪一块需要公共架构成员去关注,这些都是非常重要的需要可视化的东西。 建立了相关的 数据可视化 以后,要怎么推行它?正如上文所说,要避免以前的那种专项的运动,因此要把每一次的性能优化放在每一个迭代,实际上影射的就是DevOps的第三步,每一个小迭代的快速优化和快速学习。这并不是一个技术活,这个问题的解决不依赖于某个技术手段或工具,因此这才是最麻烦的问题,它要求参与的每一个人有这方面的意识,提供了自动化工具和监控的可视化数据,但是不去实施,那么前面所做的所有努力就都白费了。针对这个问题最好的解决办法就是沟通,每一次的站会、周会,整个团队上下要有一个沟通的机制。在团队内部建立起良好的沟通氛围,所有数据可视化,且进行展示,团队的成员可以自发认领,且对于任务不惩罚,多主动激励,培养团队成员的主观能动性,在一次一次迭代过程中,让大家能够主动的去承担,去找到这些问题。最后很关键的一点是及时的激励或及时的反馈,每一个迭代都要看到客观数据的变化。因为前面已经建立了主动的和被动的监控数据,每次的迭代中你做的努力,或者你的松懈,会直接在下一周,或者下一个迭代会议里面产生相应的数据变化。这种可视化的反馈数据会产生及时的激励,让团队看到付出的所有努力都是值得的,那些主动思考问题、解决问题的团队一定会在可视化中脱颖而出,而不愿意改的问题一定会被放大出来。 最后回到原点,上文中一直吐槽西西弗斯,但换一个角度看他,还有一部分非常值得我们去学习的地方,就是一直向上不停歇,无论怎样,他永远在那个死循环里面推石头,也像CodeArts的精神,就像迭代一样,不断提升自己。一千个读者眼中有一千个哈姆雷特,希望本文中基于CodeArts分享的所有前端性能优化,以及实践上的尝试,能给各位开发者带来一定的启发,也希望文中提到的内容也能够为你日常的工作和实践提供帮助。 父主题: DevOps概览
  • 使用限制 单账号跟踪的事件可以通过 云审计 控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的 CTS /system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到 对象存储服务 (OBS),才可在OBS桶里面查看历史文件。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 操作场景 本章节指导您迁移其他厂商或自建RocketMQ实例的元数据到云上RocketMQ实例。 主要提供以下两种迁移方法,请根据实际情况选择: 方法一:通过mqadmin命令导出源实例的元数据,然后在云上RocketMQ实例中创建迁移任务 方法二:导出源实例的Topic和消费组列表,然后通过脚本将Topic和消费组列表导入到云上RocketMQ实例中(适用于不支持通过mqadmin命令导出元数据的场景)
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token获取用户Token接口获取。 调用本服务API需要项目级别的Token,即调用获取用户Token获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", // IAM 用户名 "password": $ADMIN_PASS, //IAM用户密码,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 "domain": { "name": "domainname" //IAM用户所属账号账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" //项目名称 } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 4 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects POST https://{{endpoint}}/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号账号名称,$ADMIN_PASS表示用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”,您可以从管理员处地区和终端节点获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token获取用户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 27 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens POST https://{{endpoint}}/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "$ADMIN_PASS", //建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“X-Subject-Token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求消息头 附加请求头字段,如指定的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。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 1 2 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json 1 2 POST https://{{endpoint}}/v3/auth/tokens Content-Type: application/json
  • 请求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-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 1 POST https://{{endpoint}}/v3/auth/tokens
  • 错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 状态码 错误码 错误信息 描述 处理措施 400 SCASE.00001006 Invalid parameter value. 参数值无效。 请参考返回的error message,或者联系技术支持 400 SCASE.00001007 Invalid parameter value, CreateRequest.BuildId is not exists. 参数值无效,CreateRequest.BuildId不存在。 请使用正确的应用包创建应用进程队列 400 SCASE.00001008 Invalid parameter value, CreateRequest.BuildId can not be used. 参数值无效,不能使用CreateRequest.BuildId。 请使用就绪的应用包创建应用进程队列 400 SCASE.00001009 Invalid parameter value, CreateRequest.Region is invalid. 参数值无效,CreateRequest.Region无效。 请在支持的区域中创建应用进程队列 400 SCASE.00001010 Invalid parameter value, CreateRequest.Bandwidth is invalid. 参数值无效,CreateRequest.Bandwidth无效。 请使用正确的带宽大小创建应用进程队列 400 SCASE.00001011 Invalid parameter value, total concurrent executions exceed limit. 参数值无效,并发执行总数超过了限制。 请使用正确的concurrent executions参数创建应用进程队列 400 SCASE.00001012 Fleet do not support update when state is not active. 会话状态不是“ACTIVE”,不支持更新应用。 请等待应用进程队列就绪后再执行更新操作 400 SCASE.00001013 Fleet id could not be found. 未找到应用进程队列ID。 请使用正确的应用进程队列ID 400 SCASE.00001014 Fleet do not support delete when state is not active. 会话状态不是“ACTIVE”,不支持删除应用。 请等待应用进程队列就绪或者错误时再执行删除操作 400 SCASE.00001022 Invalid parameter value, FleetId is needed. 参数值无效,需要FleetId。 请设置fleetid参数 400 SCASE.00001023 Server session id can not be found. 未设置sever session id。 请设置sever session id参数 400 SCASE.00001024 Invalid parameter value, ServerSessionId is needed. 参数值无效,需要设置server session id。 请设置server session id参数 400 SCASE.00010200 Create server session failed: xxx. 创建服务端会话失败:xxx。 根据报错信息做重试 400 SCASE.00010201 Read server session xxx : xxx. 查询服务端会话xxx失败:xxx。 根据报错信息做重试,或者联系管理员 400 SCASE.00010203 List server sessions failed: xxx. 查询服务端会话列表失败:xxx。 检查查询参数 400 SCASE.00010204 Update server session xxx failed: xxx 更新服务端会话失败:xxx。 根据报错信息做重试,或者联系管理员 400 SCASE.00010300 Create client session failed: xxx. 创建客户端会话失败:xxx。 根据报错信息做重试,或者联系管理员 400 SCASE.00010301 Create client sessions failed: xxx. 批量创建客户端会话失败:xxx。 根据报错信息做重试,或者联系管理员 400 SCASE.00010302 Query client session: xxx. 查询客户端会话xxx失败:xxx。 检查查询参数 403 SCASE.00001002 X-Auth-Token is not found in request head. 在请求头中未找到X-Auth-Token。 在请求头中增加X-Auth-Token 403 SCASE.00001003 X-Auth-Token Permission Failed. X-Auth-Token鉴权失败。 请参考返回的error message,检查是否余额不足,账号被冻结等 403 SCASE.00001004 X-Auth-Token is expired. X-Auth-Token已过期。 请参考返回的error message,检查是否余额不足,账号被冻结等 403 SCASE.00001005 Project_id in X-Auth-Token mismatches with project_id in url. X-Auth-Token中的project_id与url中的project_id不匹配。 请参考返回的error message,检查是否余额不足,账号被冻结等 404 SCASE.00001013 Fleet id can not be found. 未找到fleet id。 请设置fleet id参数 404 SCASE.00010202 Server session xxx not found 服务端会话xxx不存在。 检查服务会话ID是否存在 404 SCASE.00010303 Client session xx not found. 客户端会话xxx不存在。 检查服务会话ID是否存在 500 SCASE.00001001 Internal Server Error. 内部服务器错误。 请联系技术支持 父主题: 附录
  • 主机安全自保护 是主机安全服务的自我保护功能。 表25 主机安全自保护功能介绍 服务功能 功能概述 基础版 专业版 企业版 旗舰版 网页防篡改版 容器安全 支持的操作系统 自保护 保护主机安全服务的文件、进程、软件,防止恶意程序卸载主机安全服务Agent、篡改主机安全服务文件或停止主机安全服务进程。 自保护功能依赖AV检测、HIPS检测或者勒索病毒防护功能使能驱动才能生效,只有这三个功能开启一个以上时,开启自保护才会生效。 开启自保护策略后的影响如下: 主机安全服务的Agent不支持通过主机的控制面板卸载,支持通过主机安全服务控制台卸载。 主机安全服务的进程无法被终止。 Agent安装路径C:\Program Files\HostGuard下除了log目录、data目录(如果Agent升级过,再加上upgrade目录)外的其他目录无法访问。 × × × √ √ × Windows
  • 安全配置 安全配置支持配置常用登录地、常用登录IP、SSH登录IP白名单、恶意程序自动隔离查杀等,可满足不同应用场景的主机/容器安全需求。 表24 安全配置功能介绍 服务功能 功能概述 基础版 专业版 企业版 旗舰版 网页防篡改版 容器安全 支持的操作系统 检测周期 Agent管理 可查看所有服务器的Agent状态,可进行升级、卸载、安装等操作。 √ √ √ √ √ √ Linux、Windows 实时检测 常用登录地 配置常用登录地后,服务将对非常用地登录主机的行为进行告警。每个主机可被添加在多个登录地中。 √ √ √ √ √ √ Linux、Windows 实时检测 常用登录IP 配置常用登录IP,服务将对非常用IP登录主机的行为进行告警。 √ √ √ √ √ √ Linux、Windows 实时检测 配置SSH登录IP白名单 SSH登录IP白名单功能是防护账户爆破的一个重要方式,主要是限制需要通过SSH登录的服务器。 配置了白名单的服务器,只允许白名单内的IP通过SSH登录到服务器,拒绝白名单以外的IP。 √ √ √ √ √ √ Linux 实时检测 恶意程序隔离查杀 开启恶意程序隔离查杀后,HSS对识别出的后门、木马、蠕虫等恶意程序,提供自动隔离查杀功能,帮助用户自动识别处理系统存在的安全风险。 × √ √ √ √ √ Linux、Windows 实时检测 双因子认证 通过密码+短信/邮件认证的方式,彻底防范账号暴力破解行为。 按需:× 包年/包月:√ √ √ √ √ √ Linux、Windows - 告警配置 开启告警通知功能后,您能接收到主机安全服务发送的告警通知,及时了解主机/容器/网页内的安全风险。 √ √ √ √ √ √ Linux、Windows - 插件管理 对插件进行安装、卸载、升级及统一管理。 × × × × × √ Linux -
  • 白名单管理 白名单功能包含告警白名单、登录告警白名单和系统用户白名单,如需避免某些告警误报发生,可以将告警事件加入对应的白名单。 表20 白名单管理功能介绍 功能名称 功能概述 基础版 专业版 企业版 旗舰版 网页防篡改版 容器安全 支持的操作系统 检测周期 告警白名单 处理告警事件时,将告警事件加入到告警白名单。 √ √ √ √ √ √ Linux、Windows 实时检测 登录告警白名单 将目标登录端IP和登录端用户名加入登录告警白名单,HSS将对白名单内的IP和用户的访问行为进行忽略,不再告警。 √ √ √ √ √ √ Linux、Windows 实时检测 系统用户白名单 对于主机中新添加的root用户组权限用户(非root用户)可添加到系统用户白名单,避免HSS进行风险账号告警。 √ √ √ √ √ √ Linux、Windows 实时检测
共100000条