华为云用户手册

  • 接口约束 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 如果遇到跨域报错、签名不匹配问题,请参考以下步骤排查问题: 未配置跨域,需要在控制台配置CORS规则,请参考配置桶允许跨域请求。 签名计算问题,请参考URL中携带签名排查签名参数是否正确;比如上传对象功能,后端将Content-Type参与计算签名生成授权URL,但是前端使用授权URL时没有设置Content-Type字段或者传入错误的值,此时会出现跨域错误。解决方案为:Content-Type字段前后端保持一致。
  • 请求参数 表1 请求参数列表 参数名称 参数类型 是否必选 描述 method str 必选 参数解释: HTTP方法类型 取值范围: GET POST PUT DELETE HEAD 默认取值: 无 bucketName str 可选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 objectKey str 可选 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 specialParam str 可选 参数解释: 特殊操作符,代表要操作的子资源, 取值范围: versions uploads location storageinfo quota storagePolicy acl append logging policy lifecycle website versioning cors notification tagging delete restore 默认取值: 无 expires int 可选 参数解释: 带授权信息的URL的过期时间。 取值范围: 临时密钥取值范围为0~86400秒。 永久密钥取值范围为0~630720000秒。 默认取值: 300秒 headers dict 可选 参数解释: 请求中携带的头域。 默认取值: 无 queryParams dict 可选 参数解释: 请求中携带的查询参数。 默认取值: 无 如果遇到跨域报错、签名不匹配问题,请参考以下步骤排查问题: 未配置跨域,需要在控制台配置CORS规则,请参考配置桶允许跨域请求。 签名计算问题,请参考URL中携带签名排查签名参数是否正确;比如上传对象功能,后端将Content-Type参与计算签名生成授权URL,但是前端使用授权URL时没有设置Content-Type字段或者传入错误的值,此时会出现跨域错误。解决方案为:Content-Type字段前后端保持一致。
  • 方案概述 应用场景 在以下场景,使用MirrorMaker进行不同集群间的数据同步,可以确保Kafka集群的可用性和可靠性。 备份和容灾:企业存在多个数据中心,为了防止其中一个数据中心出现问题,导致业务不可用,会将集群数据同步备份在多个不同的数据中心。 集群迁移:当今很多企业将业务迁移上云,迁移过程中需要确保线下集群和云上集群的数据同步,保证业务的连续性。 方案架构 使用MirrorMaker可以实现将源集群中的数据镜像复制到目标集群中。其原理如图1所示,MirrorMaker本质上也是生产消费消息,首先从源集群中消费数据,然后将消费的数据生产到目标集群。如果您需要了解更多关于MirrorMaker的信息,请参见Mirroring data between clusters。 图1 MirrorMaker原理图
  • 解释说明 用于指定需要通过VPN连接访问云上业务VPC的用户侧子网。 若存在多个对端子网,请用半角逗号(,)隔开。 对端子网可以和本端子网重叠,但不能重合。 对端子网不能被VPN网关关联的VPC内已有子网所包含;不能作为被VPN网关关联的VPC自定义路由表的目的地址。 对端子网不能是VPC的预留网段,例如100.64.0.0/10、214.0.0.0/8。 如果互联子网关联了ACL规则,则需要确保ACL规则中已放通所有本端子网到对端子网的业务所需的协议和端口。
  • 配置VPN连接的本端子网和对端子网时需要注意什么? 子网数量满足规格限制,数量超出规格限制请进行聚合汇总。 每个VPN网关配置的本地子网数量:50 每个VPN连接支持配置的对端子网个数:50 本端子网不可以包含对端子网,对端子网可以包含本端子网。 推荐配置的本端子网在VPC内有路由可达。 同一个VPN网关创建两条连接:若这两条连接的对端子网存在包含关系,在访问的目的网络处于交集网段部分时,按照创建连接的先后顺序匹配VPN连接,且与连接状态无关(策略模式不能按照掩码长度进行匹配)。
  • 解释说明 接口地址为VPN网关和对端网关通信的tunnel隧道IP地址。 如果对端网关的tunnel接口地址固定不可更改,请使用“手动分配”模式,并根据对端网关的tunnel接口地址设置VPN网关的tunnel接口地址。 手动分配 本地隧道接口地址:VPN网关上的tunnel接口地址。 对端隧道接口地址:对端网关上的tunnel接口地址,该接口地址需要和对端网关实际配置的tunnel接口地址保持一致。 仅支持在169.254.x.x/30网段(除169.254.195.x/30)范围内,配置VPN网关本端接口地址的tunnel接口地址;对端网关对端接口地址的tunnel接口地址会根据本端接口地址自动生成。 当“连接模式”采用“BGP路由模式”的场景下,选择“手动分配”的方式配置隧道接口地址时,对端设备VPN连接的隧道接口地址需要与本端隧道地址配置成镜像地址。 自动分配 VPN网关默认使用169.254.x.x/30网段(除169.254.195.x/30)对tunnel接口分配地址。 自动分配的本端接口地址/对端接口地址,可以在VPN连接页面,单击“修改连接信息”进行查看。 当“连接模式”采用“BGP路由模式”的场景下,选择“自动分配”的方式,在创建连接后,可查看分配的本端隧道接口地址和对端隧道接口地址,对端设备VPN连接的隧道接口地址需要与本端隧道地址配置成镜像地址。 必须是主机地址,不能是广播地址或网段地址。
  • 自定义监控指标上报到 AOM 除了ModelArts控制台可以直接查看的训练作业相关指标外,还支持自定义监控指标上报到AOM控制台查看。配置步骤如下。 准备训练代码,在训练代码中增加指标监控的代码。具体代码示例如下。准备训练代码的其它要求请参见准备模型训练代码。 代码中倒数第2行的region = "cn-southwest-2"参数值请替换成实际region值,region取值可以参考终端节点。 代码中增加监控指标数据,具体参数解释参考AOM文档。 # coding: utf-8 import os from huaweicloudsdkaom.v2 import * from huaweicloudsdkaom.v2.region.aom_region import AomRegion from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions from moxing.framework import cloud_utils def report2Aom(request,region): auth = cloud_utils.get_auth() #AK、SK和临时TOKEN值,系统会自动获取无需在代码中填写。 ak = auth.AK sk = auth.SK securityToken = auth.TOKEN projectId = os.environ.get("MA_ IAM _PROJECT_ID") credentials = BasicCredentials(ak, sk, projectId).with_security_token(securityToken) client = AomClient.new_builder() \ .with_credentials(credentials) \ .with_region(AomRegion.value_of(region)) \ .build() try: response = client.add_metric_data(request) print(response) except Exception as e: print(e) if __name__ == "__main__": request = AddMetricDataRequest() listValuesBody = [ #下面填上对应的指标名称、类型、单位、数值,比如step_time、loss值等 ValueData( metric_name="step_time", #监控指标名称,例如step_time type="float", #指标的数据类型,取值范围只能是"int"或"float"。 unit="ms", #数据的单位。长度不超过32个字符,此处举例为ms value=135.572 #指标数据的值。取值范围有效的数值类型。最小值0 ), ValueData( metric_name="loss", type="float", value=0.6932 ) ] listDimensionsMetric = [ #下面填上想查看的指标维度,比如线程、host等等 Dimension2( name="cluster_name",#此处仅为举例示意,请替换为实际需要查看的指标维度 value="fab2c5cf438b4f0c851fdcdf"# 此处仅为举例示意,请替换为实际参数值 ), Dimension2( name="user_name", value="modelarts_02" # 此处仅为举例示意,请替换为实际参数值 ), Dimension2( name="user_id", value="04f258c8fb00d42a1f6xxx" # 此处仅为举例示意,请替换为实际参数值 ) ] metricBody = MetricItemInfo( dimensions=listDimensionsMetric, namespace="NOPAAS.ESC" #保持默认值即可,无需修改 ) listBodybody = [ MetricDataItem( collect_time=int(round(time.time()*1000)), #监控指标数据收集时间,为最新的时间戳,ms为单位 metric=metricBody, values=listValuesBody ) ] request.body = listBodybody region = "cn-southwest-2" #请根据实际region替换 response = report2Aom(request,region) 在训练代码中加入命令,用于加载对应的依赖包。如果使用的是自定义镜像,也可以在制作镜像时安装以下依赖,具体参见开发用于自定义镜像训练的代码。 pip install huaweicloudsdkaom pip install huaweicloudsdkcore 创建训练作业并运行,具体参考创建生产训练作业章节。 登录AOM控制台,在“指标浏览”页面,通过指定“指标”查看上报的指标数据。 图1 AOM上查看指标数据 参考告警上报配置方法章节设置AOM告警和通知机制。
  • 修订记录 表1 修订记录 发布日期 修订记录 2025-04-01 下线OBS对接知识库一键部署入口 2025-03-19 单机版上线联网搜索 2025-03-12 支持CCE容器高可用部署 2025-03-05 支持Dify知识库对接华为云OBS 2025-03-04 升级云服务器默认规格 2025-02-25 开始使用增加MAAS/一键部署DeepSeek对接指导 2025-02-17 更新Dify 0.15.3版本。 2024-11-07 第一次正式发布。
    AI
  • CCE容器高可用部署 表3 资源和成本规划(按需计费) 华为云服务 配置示例 数量 每月预估花费 虚拟私有云 VPC 区域:华北-北京四 VPC网段:192.168.0.0/16 1 0.00 子网 Subnet 区域:华北-北京四 子网网段:192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24, 192.168.4.0/24 网关:192.168.0.1, 192.168.1.1,192.168.2.1,192.168.3.1 4 0.00 安全组 SecurityGroup 区域:华北-北京四 4 0.00 华为云Flexus云服务器X实例 按需计费:1.42元/小时 区域:华北-北京四 规格:Flexus云服务器X实例 | 性能模式(关闭)| x1.16u.16g | 16核 | 16 GB 镜像:Ubuntu 22.04 server 64bit 系统盘:高IO | 40GB 数据盘:高IO | 100 GiB 3 3064.18元 华为云Flexus云服务器X实例 按需计费:4.53元/小时 区域:华北-北京四 规格:Flexus云服务器X实例 | 性能模式(开启)| x1e.32u.32g | 32核 | 32 GB 镜像:Ubuntu 22.04 server 64bit 系统盘:通用型SSD | 40GB 1 3262.18元 弹性公网IP EIP 区域:华北-北京四 计费模式:按需计费 线路:动态BGP 公网带宽:按流量计费 带宽大小:300Mbit/s 3 0.80元/GB 对象存储服务 OBS 区域:华北-北京四 存储空间:数据存储(多AZ存储) 默认存储类别:标准存储 桶策略:私有 请求费用:GET/PUT 0.01元/万次,DELETE 免费 存储空间:0.1390元/GB/月 流量费用: 内/公网流入流量(数据上传到OBS):0元 内网流出流量(通过 ECS云服务器 下载OBS的数据): 0元公网流出流量 / 00:00-08:00(闲时):0.2500元/GB 公网流出流量 / 08:00-24:00(忙时): 0.5000元/GB 1 详细请参考每月账单。计费说明参考价格详情 云容器引擎 CCE 按需计费:2.91元/小时 区域:华北-北京四 计费模式:按需计费 规格:cce.s2.small(50节点) 集群 master 实例数: 3 集群 node 实例数: 3 类型:CCE 1 2095.20元 分布式缓存服务Redis®*版 按需计费:0.58元/小时 区域:华北-北京四 计费模式:按需计费 规格:4G (基础版)| 副本数:2 实例类型:Redis(主备) 1 414.72元 云数据库 RDS for PostgreSQL 按需计费:1.24元/小时 区域:华北-北京四 计费模式:按需计费 规格:rds.pg.n1.large.2.ha | 2 vCPU | 4 GB (通用型) 储存:SSD云盘 | 100GB 数据库引擎:PostgreSQL(主备) 1 892.80元 云搜索服务 CSS 按需计费:3.98元/小时 区域:华北-北京四 计费模式:按需计费 规格: ess.spec-4u8g | 4 vCPUs | 8 GB 节点存储总容量:超高I/O | 120GB 集群类型:OpenSearch 节点数:3 1 2864.16元 弹性负载均衡 ELB 计费模式:按需计费 独享型负载均衡 网络型 | 弹性规格、应用型 | 弹性规格 按需计费:0.25元/小时 区域:华北-北京四 1 180‬元 NAT网关 NAT 按需计费:12元/天 区域:华北-北京四 规格:小型 SNAT规则数:3 1 360元 合计 - - 13133.24元 + 弹性公网IP EIP费用 + 对象存储服务OBS存储及流量费用
    AI
  • 计费说明 云审计 服务本身免费,包括开通追踪器、事件跟踪以及7天内事件的存储和检索。同时云审计服务与华为云其他云服务可以组合使用(可能会产生部分由其他服务收取的费用),为您提供事件文件转储、事件文件加密等增值服务,这些增值服务可能产生额外费用,通常情况下,云审计服务产生的增值服务费用很低,因此建议您根据实际需要搭配使用。 增值服务列表如下: 事件转储:需要使用对象存储服务(OBS),管理类追踪器配置的转储事件文件将永久保存,数据类追踪器配置的转储事件按照转储的时间保存。OBS的计费详情请参考计费概述。 事件文件加密存储:在开通事件转储的基础上,需要使用 数据加密 服务(DEW)对存储在OBS桶中的事件文件进行加密。DEW的计费详情请参考计费概述。 日志转储: CTS 提供将审计日志转储至LTS的功能,但依赖 云日志 服务(LTS)的日志存储功能收费。LTS的计费详情请参考计费概述。 关键操作通知:CTS提供关键操作通知功能,可在发生特定操作时向用户手机、邮箱发送消息,但发送消息需要使用 消息通知 服务( SMN )订阅主题。
  • 什么是云审计服务 日志审计模块是信息安全审计功能的核心必备组件,是企事业单位信息系统安全风险管控的重要组成部分。 云审计服务(Cloud Trace Service,以下简称CTS),是华为 云安全 解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪、问题回溯和问题定位等常见应用场景。 图1 云审计服务介绍 云审计服务的功能主要包括: 记录审计日志:支持记录用户通过管理控制台或API接口发起的操作,以及各服务内部自触发的操作。 审计日志查询:支持在管理控制台对7天内操作记录按照事件类型、事件来源、资源类型、筛选类型、操作用户和事件级别等多个维度进行组合查询。 审计日志转储:支持将审计日志周期性的转储至对象存储服务(Object Storage Service,简称OBS)下的OBS桶,转储时会按照服务维度压缩审计日志为事件文件,还支持将审计日志转储至云日志服务(Log Tank Service,简称LTS)下的LTS日志流。 事件文件加密:支持在转储过程中使用数据加密服务(Data Encryption Workshop,简称DEW)中的密钥对事件文件进行加密。 关键操作通知:支持在发生特定操作时使用消息通知服务(Simple Message Notification,简称SMN)向用户手机、邮箱发送消息。 云审计服务记录的操作有以下三种: 用户登录管理控制台的操作。 用户通过云服务支持的API执行的操作。 系统内各服务内部触发的操作。
  • 约束与限制 云审计服务中的追踪器数量和关键操作通知有限定的配额,均不支持修改,云审计服务的具体限制如下。 表1 CTS约束与限制 限制项 使用限制 一个华为云账号允许创建的追踪器数目 管理追踪器:1个 数据追踪器:100个 一个华为云账号允许配置的关键操作通知数目 100个 一个追踪器允许配置的OBS桶数目 1个 用户操作后多久才能通过控制台查询数据 管理类事件:1分钟 数据类事件:5分钟 组织成员退出组织或被移除组织后,组织追踪器的收回时间 5分钟 用户通过云审计控制台能查询多久的操作事件 云审计默认为每个华为云账号记录最近7天的操作事件,如果不配置转储,您将无法追溯7天以前的操作事件。 云审计控制台对用户的操作事件日志保留7天,过期自动删除,不支持人工删除。 如果您已经配置追踪器转储事件至OBS/LTS,则保存周期以您在OBS/LTS控制台的配置为准。配置追踪器转储至OBS/LTS的详情请参考配置追踪器。 7天 组织追踪器 CTS支持组织追踪器能力,依赖组织服务某些接口,涉及企业项目权限管理的用户如需升级此能力,需要单独配置IAM权限,否则原有仅对CTS:*授权的用户将无法使用组织服务的多账号关系管理能力。 全局级服务需要在中心region(北京四)的云审计控制台配置追踪器和关键操作通知,才能使用审计事件上报至CTS功能、审计事件转储至OBS/LTS功能、关键操作消息通知功能。 全局级服务在其他region的云审计控制台配置时,上述功能不会生效。 目前全局级服务包括:IAM、TMS、CDN、DNS、EPS、 SMS 、SES、SC、cloudsite、CBC、CC、AAD、APIExplorer、DevStarServer、PCA、PSDM、IoTDP、APIErrorCenterService、BSG、ROMAIOC、 RMS 、IEC、Compass、ExpertCMSService、 CS R、ARS、BSS、ExpertCMS、Domains、OSC、Trademark、UCS、IES、CMDB、OSM、SupportPlan、CNAD、GA、TestMind、 RAM 、Organizations、HMSA、PrivateNumber、VoiceCall、RPM、ICA、EC、OA、marketplacebtm、FunctionFlow、HChatEngineService、HSearchEngineService、 APM 、MgC、CMN、IdentityCenter、Marketplace、ESM、edgesec、pEDACloud、koopage、OLCS、COST、BILLING、ENTERPRISE、VIAS、CORS、ModernBI、ORGID-MGR、Config、COC、GlobalSIMLink、APIhub、KooPhone、VSS、ACCOUNT、CodeArtsLink、AppStage、HCSS。
  • 事件文件完整性校验 在安全和事故调查中,通常由于事件文件被删除或者被私下篡改,而导致操作记录的真实性受到影响,无法对调查提供有效真实的依据。因此云审计服务适时推出了事件文件完整性校验功能,旨在帮助您确保事件文件的真实性。 事件文件完整性校验功能使用业界标准算法构建,对事件文件生成原始哈希值,当事件文件被修改或者删除时,该哈希值就会发生改变,通过对哈希值进行追踪查看就能确定事件文件是否被修改;同时采用RSA算法对摘要文件进行签名,保证摘要文件不被修改。这样任何对事件文件进行修改或者删除的蛛丝马迹都会被云审计服务完整记录下来。 启用事件文件完整性校验功能后,云审计服务会在每个小时将上一个小时内所有事件文件的哈希值生成一个摘要文件,并将该摘要文件同步存储至当前追踪器配置的OBS桶中。 云审计使用公有和私有密钥对每个摘要文件进行签名,摘要文件转储到OBS桶后,您可以使用公有密钥校验摘要文件。
  • 工作原理 云审计服务直接对接华为云平台上的其他服务,记录用户的云服务资源的操作信息,实现用户操作云服务资源动作和结果的实时记录功能。 使用云审计服务创建追踪器可以跟踪记录事件文件。如已配置事件转储至OBS服务和LTS服务,事件文件将保存在OBS桶和LTS日志组中。 用户可以对事件文件执行以下两种操作: 事件文件的创建和保存: 当用户在弹性云服务器、云硬盘服务、 镜像服务 等其它与云审计服务完成对接的服务中,进行了增加、删除、修改类型的操作时,被操作的服务会自动记录操作动作及操作结果,并按照指定的格式发送事件到云审计服务完成事件归档。 云审计服务管理控制台会保存最近7天的操作记录,如已配置OBS服务或LTS服务,云审计服务会定期将操作记录同步保存到用户定义的OBS桶或LTS日志组中进行长期保存。 云审计控制台对用户的操作事件日志保留7天,过期自动删除,不支持人工删除。 事件文件查询: 在“事件列表”页面,用户可以按照通过系统自带的条件和时间过滤功能,查询最近7天的操作记录。 若要查询7天前的操作记录且已配置OBS服务或LTS服务,可以在对应的OBS桶中下载事件文件进行查看,或在对应的LTS日志组中查看日志。 在云审计服务页面的追踪器界面,用户可以对追踪器进行启用、停用、删除、配置等操作。 以用户创建镜像为例,在用户使用镜像服务执行创建镜像的操作过程中,镜像服务会将用户操作事件上报至云审计服务,如已配置OBS服务,云审计服务将事件转存至OBS桶中。用户也可以通过云审计服务的事件列表查看事件文件。云审计服务工作原理示意如图1所示。 图1 云审计服务工作原理示意图
  • 细粒度权限说明 使用自定义细粒度策略,请使用管理员用户进入 统一身份认证 (IAM)服务,按需选择CTS的细粒度权限进行授权操作。CTS细粒度权限说明请参见表3。 表3 CTS细粒度权限说明 权限名称 权限描述 权限依赖 应用场景 cts:quota:get 查询租户追踪器配额信息 - 查询租户追踪器配额信息 cts:trace:list 查询审计事件 - 查出系统记录的7天内资源操作记录 cts:trace:listResource - cts:trace:listTraceUser - cts:notification:create 创建关键操作通知 smn:topic:listTopic iam:agencies:listAgencies iam:agencies:createAgency iam:permissions:grantRoleToAgencyOnProject iam:permissions:listRolesForAgencyOnProject iam:projects:listProjects iam:groups:listGroups iam:users:listUsers iam:users:listUsersForGroup 创建关键操作通知 cts:notification:update 修改关键操作通知 修改关键操作通知 cts:notification:delete 删除关键操作通知 - 删除关键操作通知 cts:notification:list 查询所有关键操作通知 - 查询所有关键操作通知 cts:tracker:delete 删除追踪器 - 删除已创建的追踪器 cts:tracker:update 更新追踪器 iam:agencies:listAgencies iam:agencies:createAgency iam:permissions:grantRoleToAgencyOnProject iam:permissions:listRolesForAgencyOnProject iam:projects:listProjects iam:groups:listGroups iam:users:listUsersForGroup lts:topics:list lts:topics:create lts:topics:get lts:logstreams:list lts:groups:get lts:groups:list lts:groups:create obs:bucket:CreateBucket obs:bucket:HeadBucket obs:bucket:GetLifecycleConfiguration obs:bucket:PutLifecycleConfiguration obs:bucket:GetBucketAcl obs:bucket:PutBucketAcl obs:bucket:ListAllMyBuckets kms:cmk:list kms:cmk:get eps:enterpriseProjects:list organizations:trustedServices:list organizations:organizations:get organizations:deletgatedAdministrators:list organizations:accounts:list organizations:deletgatedServices:list 修改已创建追踪器的配置项 cts:tracker:create 创建追踪器 创建一个追踪器用来关联系统记录的所有操作 cts:tracker:list 查询所有追踪器 obs:bucket:GetBucketAcl obs:bucket:ListAllMyBuckets 查看追踪器的详细信息 cts:tag:create 批量添加资源标签 - 批量添加资源标签 cts:tag:delete 批量删除资源标签 - 批量删除资源标签
  • CTS权限 默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CTS部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京4)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问CTS时,需要先切换至授权区域。 权限根据授权精细程度分为角色和策略,策略是角色的升级版。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对ECS服务,CTS管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分。 如表1所示,包括了CTS的所有系统权限。 表1 CTS系统权限 系统角色/策略名称 描述 类别 依赖关系 CTS FullAccess 云审计服务的所有权限。 系统策略 无 CTS ReadOnlyAccess 云审计服务的只读权限。 系统策略 无 CTS Administrator 云审计服务的管理员权限,拥有CTS的所有权限。 拥有该权限的用户拥有除IAM外,其他所有服务的只读权限。 系统角色 该角色有依赖,需要在同项目中勾选依赖的角色:Tenant Guest、OBS Administrator和Security Administrator。 表2列出了CTS常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表2 常用操作与系统权限的关系 操作 CTS FullAccess CTS ReadOnlyAccess CTS Administrator 查询事件列表 √ √ √ 查询配额 √ √ √ 创建追踪器 √ × √ 修改追踪器 √ × √ 停用追踪器 √ × √ 启用追踪器 √ × √ 查询追踪器 √ √ √ 删除追踪器 √ × √ 创建关键操作通知 √ × √ 修改关键操作通知 √ × √ 停用关键操作通知 √ × √ 启用关键操作通知 √ × √ 查询关键操作通知 √ √ √ 删除关键操作通知 √ × √ 批量添加标签 √ × √ 批量删除标签 √ × √
  • 操作流程 本文档将按照以下步骤介绍HE2E DevOps实践的操作流程。 图1 HE2E DevOps实践操作流程图 表1 HE2E DevOps实践操作流程说明 步骤 说明 实践准备 完成实践开始前的准备工作,包括创建项目、添加项目成员等操作。 管理项目规划 完成项目的整体规划,包括项目需求规划、迭代需求规划等。 管理项目配置 根据项目需求,对工作项变更的通知方式、工作项状态的流转方式等进行自定义设置。 开发代码 通过分支来进行代码的编写,包括创建分支、代码提交、合并分支等操作。 检查代码 对代码进行静态扫描,根据修复建议优化代码,提高代码质量。 构建应用 构建环境镜像、将代码编译打包成软件包。 部署应用 将构建好的环境镜像及软件包安装并运行在环境中,本文档提供两种环境的部署方法:CCE与ECS。 管理项目测试 为迭代创建测试计划、设计测试用例,并按照计划执行测试用例。 配置流水线 将代码检查、构建、部署等任务串联成流水线。当代码有更新时,可自动触发流水线,实现持续交付。 释放资源 实践完成,释放CodeArts、CCE等资源。 父主题: 使用CodeArts管理电子商城项目开发流程
  • 问题现象 构建失败,报错信息为“制作Docker镜像失败”,报错日志例如: too many requests: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit request canceled while wating for connection Get https://registry-1.docker.io/v2/: net/http: request canceled while wating for connection (Client.Timeout exceeded while awating headers)
  • 配置准出条件 为了控制代码的质量,代码必须经过扫描,并且错误数量控制在合理范围内,才允许发布。通过添加质量门禁可以有效地自动化控制流程。 在流水线任务“phoenix-workflow”详情页,单击“编辑”。 在阶段“代码检查”中,单击“准出条件”。 在“准出条件”窗口中,单击“标准策略准出条件”插件后的“添加”。 选择“系统策略”,单击“确定”。 单击“保存并执行”,启动流水线任务。 如果代码检查问题数未达到准出条件,流水线任务将执行失败。
  • 预置流水线简介 示例项目中预置以下5个流水线任务,可根据需要查看并使用。 表1 预置流水线任务 预置流水线任务 任务说明 phoenix-workflow 基本的流水线任务。 phoenix-workflow-test 测试环境对应的流水线任务。 phoenix-workflow-work Worker功能对应的流水线任务。 phoenix-workflow-result Result功能对应的流水线任务。 phoenix-workflow-vote Vote功能对应的流水线任务。
  • 背景信息 CodeArts结合多年研发经验与业界先进的实践提出了一套可操作可落地的敏捷开发方法论:HE2E DevOps实施框架。 图1 HE2E DevOps实施框架 规划和设计 步骤①和②是业务(或者是客户)与技术之间进行产品规划,梳理产品整体脉络,以及进行产品规划实施设计,并控制需求粒度与拆分的过程。 软件开发的本质是为了解决问题,提供用户价值的,而不仅是为了提供功能。影响地图就是用来鉴别用户需求是什么,深层的根因是什么。 用户故事就是目标和需求的载体,以用户的场景来讲故事,便于在客户、业务与开发之间进行信息的传递。在这个过程中,独立的需求条目的堆积,很容易导致只能看到各个需求条目,不能从整个解决方案思考需求。用户故事以用户使用的场景为主线,将大的阶段点,及其细分的活动,以树状的结构进行梳理和展现,既可以看到独立的需求条目,又能够看到整体需求场景。 计划和跟踪、迭代开发 步骤③~⑩是Scrum框架过程,是主要的管理实践。 Scrum定义了一个相对完整的敏捷过程管理的框架。在CodeArts中,将Scrum的框架与团队日常的开发活动,很好的融合起来。主要的过程产物包括产品故事列表、迭代故事列表、潜在可交付的产品增量、以及过程中产生的问题列表;核心的团队活动包括Sprint计划会议、团队每日站会、Sprint演示会议、Sprint回顾会议等会议、以及团队的日常更新。 同时,将Kanban方法与Scrum框架进行了结合,团队借鉴Kanban方法中的精益思想,可视化价值流,发现并解决阻塞与瓶颈,加速价值流交付,并加快反馈回路,持续进行改进。 持续交付 从步骤⑪开始,进入到工程实践,也就是通常说的CI/CD过程。 持续交付以代码配置管理为基础,除了传统意义的代码资产安全与管控、多人并行开发、版本与基线管理外,也体现了团队的协作与沟通。 代码检查(即静态扫描)、自动化的构建、各阶段的自动化测试、以及相应的自动化部署过程,都被有机的串联在流水线上。 除了代码检查、构建、测试、部署等动态的阶段与活动,还有制品管理,以及各级的环境管理,包括开发环境、测试环境、准生产环境,以及生产环境。 持续交付流水线就是将整个持续交付中,都有哪些阶段,分别运行在什么环境,每个阶段执行什么活动,准入与准出的质量门禁,以及每个阶段的输入与输出的制品进行管理。
  • 方案架构 “凤凰商城”示例程序架构 “凤凰商城”示例程序的架构图如图2所示。 图2 凤凰商城技术架构图 示例程序由表1中的5个可以独立开发、测试和部署的微服务组件构成。 表1 凤凰商城微服务组件表 微服务组件 说明 Web用户端服务器(对应样例代码中的“Vote”功能) 业务逻辑:用户可以通过浏览器访问此服务的WebUI。当用户在特定商品上单击“Like”时,服务将用户所选择物品的记录保存在Redis缓存中。 技术栈:Python、Flask框架。 应用服务器:Gunicorn。 Web管理端服务器(对应样例代码中的“Result”功能) 业务逻辑:用户可以通过浏览器访问此服务的WebUI,会动态显示用户端UI上用户单击“Like”的统计数据,此数据来自PostgreSQL数据库。 技术栈:Node.js、express框架。 应用服务器:server.js。 后台订单批处理程序(对应样例代码中的“Worker”功能) 业务逻辑:此服务为后台进程,会监控Redis缓存中物品记录,并将新纪录取出并保存在PostgreSQL数据库中,以便管理端UI可以抽取数据进行统计显示。 技术栈:.net core或者Java(此服务提供两种技术栈实现了同样的功能,可根据需要修改配置选择其中一个作为运行时进程)。 订单缓存 业务逻辑:此服务作为用户端UI服务的数据持久化服务存在。 技术栈:Redis。 订单数据库 业务逻辑:此服务作为管理端UI服务的数据源。 技术栈:PostgreSQL。 “DevOps全流程样例项目”构成 “DevOps全流程样例项目”是一个Scrum类型的模板项目,项目中预置了部分服务的使用模板。项目实践过程中涉及到的产品及服务如下表。 表2 实践涉及产品/服务列表 服务 说明 软件开发生产线 需求管理 预置3个已规划并已完成的迭代、项目的模块设置、以及若干统计报表。 代码托管 预置代码仓库“phoenix-sample”,存放项目示例代码。 代码检查 预置4个任务,任务详情介绍请参见步骤四:检查代码。 编译构建 预置5个任务,任务详情介绍请参见步骤五:构建应用并推送镜像至SWR。 制品仓库 用于存储通过构建任务生成的软件包。 部署 预置3个应用,应用详情介绍请参见步骤六:部署应用至CCE。 测试计划 功能测试用例库,预置十余个测试用例。 流水线 预置5条流水线,流水线详情介绍请参见步骤八:配置流水线,实现持续交付。 其它组件和服务 统一身份认证服务 用于管理账号。 容器镜像服务 用于存放构建任务生成的Docker镜像。 云容器引擎 用于软件包部署,与ECS部署属于两种不同的部署方式。 弹性云服务器 用于软件包部署,与CCE部署属于两种不同的部署方式。
  • 购买并配置云容器引擎 本节中使用的是云容器引擎CCE。 通过控制台可购买CCE集群。 其中集群及节点的必要配置建议参照表2与表3,表中未涉及的可根据实际情况选择。 表2 CCE集群购买配置 配置分类 配置项 配置建议 基础配置 集群类型 选择“CCE Standard 集群”。 计费模式 选择“按需计费”。 集群名称 输入自定义名称。 集群版本 根据需要选择,建议选择最新版本。 网络配置 容器网络模型 选择“容器隧道网络”。 虚拟私有云 选择已有的虚拟私有云,如果列表中没有合适的选项,单击“新建虚拟私有云”完成创建。 默认节点子网 选择已有的子网,如果列表中没有合适的选项,单击“新建子网”完成创建。 容器网段 勾选“自动设置网段”。 表3 节点配置 配置分类 配置项 配置建议 节点配置 计费模式 选择“按需计费”。 节点类型 选择“弹性云服务器-虚拟机”。 节点规格 选择2vCPUs 8GiB及以上规格即可。 操作系统 选择公共镜像中的Euler镜像。 节点名称 输入自定义名称 。 登录方式 选择“密码”。 密码 输入自定义密码 。 网络配置 节点IP 选择“自动分配”。 弹性公网IP 选择“自动创建”。
  • 设置定时执行任务 为了防止问题代码进入生产环境,确保应用总是处于可部署的状态,团队建议对应用进行持续不断地验证。 通过以下设置,可实现构建任务的定时执行。 在任务“phoenix-sample-ci”的详情页,单击“编辑”。 选择“执行计划”页签。 打开“启用定时执行”开关,根据需要选择执行日与执行时间,关闭“代码变化才执行”,保存任务。 本文档中勾选“全选”,执行时间为“12:00”(本文中使用默认时区,可以根据实际需要修改时区)。 验证配置结果:根据配置时间查看构建任务是否自动执行,本节不再赘述。
  • 设置提交代码触发自动编译 通过以下配置,可实现代码变更后自动触发构建任务的执行,从而实现项目的持续集成。 在任务“phoenix-sample-ci”的详情页,单击“编辑”。 选择“执行计划”页签。 打开“提交代码触发执行”开关,保存任务。 由于在“参数设置”页签中“codeBranch”配置的默认值为“master”,因此本次设置的结果是当master有代码变更时自动触发构建。 验证配置结果:修改项目代码并提交至master,即可查看构建任务是否自动执行。
  • 预置任务简介 样例项目中预置了以下5个构建任务。 表1 预置任务 预置任务 任务说明 phoenix-sample-ci 基本的构建任务。 phoenix-sample-ci-test 构建测试环境可用镜像的任务。 phoenix-sample-ci-worker 构建Worker功能镜像的任务。 phoenix-sample-ci-result 构建Result功能镜像的任务。 phoenix-sample-ci-vote 构建Vote功能镜像的任务。 本章节以任务“phoenix-sample-ci”为例进行讲解,此任务包含的步骤如下。 表2 构建步骤 构建步骤 说明 制作Vote镜像并推送到SWR仓库 依据代码仓库中的“vote/Dockerfile”文件制作Vote功能镜像,并将镜像推送到容器镜像服务。 制作Result镜像并推送到SWR仓库 依据代码仓库中的“result/Dockerfile”文件制作并推送Result功能镜像,并将镜像推送到容器镜像服务。 使用Maven安装Worker依赖包 使用Maven安装Worker功能所需的依赖。 制作Worker镜像并推送到SWR仓库 依据代码仓库中的“worker/Dockerfile”文件制作并推送Worker功能镜像,并将镜像推送到容器镜像服务。 生成Postgres and Redis Dockerfile 通过shell命令生成Dockerfile文件,用以制作Postgres(数据库)和Redis(缓存)镜像。 制作Postgres镜像并推送到SWR仓库 依据“生成Postgres and Redis Dockerfile”步骤中所生成的Dockerfile文件制作Postgres镜像,并将镜像推送到容器镜像服务。 制作Redis镜像并推送到SWR仓库 依据“生成Postgres and Redis Dockerfile”步骤中所生成的Dockerfile文件制作Redis镜像,并将镜像推送到容器镜像服务。 替换Docker-Compose部署文件镜像版本 为了将镜像部署到ECS时,能够可以拉取到正确的镜像,使用shell命令进行完成以下操作。 使用sed命令,依次将文件“docker-compose-standalone.yml”中的参数替换为构建任务的参数“dockerServer”、“dockerOrg”、“BUILDNUMBER”进行替换。 使用tar命令,将文件“docker-compose-standalone.yml”压缩为“docker-stack.tar.gz”,将部署所需文件进行打包,以便于后续步骤将该文件上传归档。 替换Kubernetes部署文件镜像版本 为了将镜像部署到CCE时,能够可以拉取到正确的镜像,使用shell命令进行完成以下操作。 使用sed命令,将代码仓库中目录“kompose”下所有以“deployment”结尾的文件中的参数“docker-server”、“docker-org”,替换为构建任务的参数“dockerServer”、“dockerOrg”。 使用sed命令,将代码仓库中“result-deployment.yaml”、“vote-deployment.yaml”、“worker-deployment.yaml”三个文件中的参数“image-version”用构建任务参数“BUILDNUMBER”进行替换。 上传Kubernetes部署文件到软件发布库 将“替换Kubernetes部署文件镜像版本”步骤中修改后的所有“.yaml”文件上传到软件发布库中归档。 上传docker-compose部署文件到软件发布库 将“替换Docker-Compose部署文件镜像版本”步骤中压缩好的“docker-stack.tar.gz”上传到软件发布库中归档。
  • 配置SWR服务 本节使用SWR来保存环境镜像,在执行任务前需要获取SWR登录指令、创建组织。 在CodeArts中单击导航“控制台”。在控制台单击左上角搜索并进入SWR服务。 请检查页面左上方的“区域”列表,请确保与编译构建任务所在区域相同。如果区域不同,请选择相同区域。 单击“登录指令”,页面弹框显示登录指令。 其中, “-u”之后的字符串为用户名。 “-p”之后的字符串为密码。 最后的字符串为SWR服务器地址,此地址即为后续配置并执行任务中的参数“dockerServer”。 图1 登录指令 此处生成的登录指令为临时登录指令,有效期为24小时。如果需要长期有效的登录指令,请参见获取长期有效登录指令。 单击“创建组织”,在弹框中输入组织名称“phoenix”(如果页面提示“组织已存在”,请自定义其它名称),单击“确定”。 这里的组织名称,即为后续配置并执行任务中的参数“dockerOrg”。
  • 预置任务简介 样例项目中预置了以下4个代码检查任务。 表1 预置任务 预置任务 任务说明 phoenix-codecheck-worker 检查Worker功能对应代码的任务。 phoenix-codecheck-result 检查Result功能对应代码的任务。 phoenix-codecheck-vote 检查Vote功能对应代码的任务。 phoenix-sample-javas 检查整个代码仓库对应的JavaScript代码的任务。
  • 检视代码、合并分支 开发人员发起合并请求。 开发人员Chris完成代码开发,确认无误后,即可发起合并请求,将功能分支合并到master中。 进入代码仓库,选择“合并请求”页签,单击“新建合并请求”。 源分支选择“Feature-Store”,目标分支选择“master”,单击“下一步”。 参照表3编辑合并请求详情。 表3 合并请求配置 配置项 配置建议 标题 输入“添加门店网络列表”。 合并人 单击,在弹框中勾选“Maggie”,单击“确定”。 审核人 单击,在弹框中勾选“Maggie”,单击“确定”。 单击“新建合并请求”完成合并请求的创建。 项目经理评审并完成代码合入。 本文档中,合并请求的评审人与合并人均是项目经理Maggie。因此Maggie可评审合并请求内容,并在评审通过后完成分支合入。 进入代码仓库后,选择“合并请求”页签,可找到由开发人员Chris创建的合并请求。 单击该请求,查看合并请求详情。 可在页面中留下评审意见。单击审核门禁中“通过”完成审核。 单击“合入”,将分支合入“master”。 如果发起分支合并请求时勾选了“合并后删除源分支”,分支“Feature-Store”将在分支合并完成后被删除。
  • 跟踪项目状态 每日站立会议跟踪任务进度。 迭代开始后,项目组通过每日站立会议沟通每个工作项的当前进展,并对工作项状态进行更新。 使用卡片模式能够简单直观的查看迭代中各工作项的当前状态。 进入“迭代”页面,单击图标,切换到卡片模式。页面中展示了处于每种状态下的工作项卡片,通过拖拽工作项卡片即可更新其状态。 迭代评审会议验收迭代成果。 在到达迭代的预计结束时间前,项目组召开迭代评审会议,展示当前迭代的工作成果。 “迭代”页面提供了迭代统计图表,团队可以方便的统计当前迭代的进度情况,包括需求完成情况、迭代燃尽图、工作量等。 进入“迭代”页面,单击“统计”,即可展开迭代进度视图。
共100000条
提示

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