华为云用户手册

  • 单个/批量导入 进入“设备-注册”界面,单击右上角“注册”或“批量注册”。 按照下方参数说明填写关键参数信息后,完成注册。 表1 注册设备关键参数列表 参数名称 说明 产品 选择设备所属的产品名称。 批量导入时,需要填写产品ID。 设备标识码 设备唯一物理标识,如IMEI、MAC地址等,用于设备在接入 物联网平台 时携带该标识信息完成接入鉴权。 设备名称 设备发放时,设备名称将作为主要的筛选条件之一,建议按照统一的规则规划不同地区的设备名称。 例如:北京地区设备,设备名称都携带Beijing;香港地区设备,设备名称都携带Hongkong。 设备ID 设备ID默认为产品ID+“_”+设备标识码,用户也可自己定义。 发放策略 根据需求选择对应的发放策略类型,注册设备成功后,设备将按照对应的策略进行发放。 导入配置(LwM2M协议设备) 仅在设备使用LwM2M协议时需要填写以下参数: 引导服务端PSK:设备初次上电时,与设备发放服务建立DTLS连接,PSK验证通过后进行设备引导。 连接服务端PSK:设备连接 设备接入服务 、与平台建立DTLS连接时用于验证。 连接服务端PSK不需要烧录在设备中,设备首次上电后启动BootStrap流程时由平台下发。 安全模式:支持安全模式DTLS/DTLS+和非安全模式。选择DTLS模式或DTLS+模式,设备将通过安全端口5684接入平台,否则将通过非安全端口5683接入。 默认生命周期:设备开机后,如果没有归属物联网平台地址,且在默认生命周期内没有收到设备发放服务下发的地址,则根据注册的设备发放服务地址,向物联网平台发起请求。平台返回连接信息后,设备覆盖本地的注册的物联网平台地址,向指定的物联网平台地址发起注册。默认值为86400秒,最大值(7*86400秒)。 导入配置(MQTT协议设备) 仅在设备使用MQTT协议时需要填写以下参数: 安全模式:支持安全模式密钥模式和X.509证书模式。 设备密钥:选择密钥模式时该参数选填,如果不填系统会返回密钥,或从设备详情获取。 选择证书:选择X.509证书模式时该参数必填,选择当前注册设备所需要的证书。 证书指纹:根据证书生成的唯一识别证书的标识。与“自注册开关”参数选填其一或都填。 自注册开关:如果支持设备自注册,在设备首次认证时不会去认证设备ID和设备证书的关系。与“证书指纹”参数选填其一或都填。
  • 参数说明 表1 设备发放参数说明列表 参数 必选/可选 类型 参数描述 clientId 必选 String(256) 注册组选择非华为云证书场景: 设备clientId由3个部分组成:设备ID、设备身份标识类型、用户标识ID(ScopeID)。通过下划线“_”分隔,设备身份标识类型固定值为0 例:5f052ac562369102d42b0fb6_0_ff5bbx7a488f 其他场景: 设备clientId由4个部分组成:设备ID、设备身份标识类型、密码签名类型、时间戳。通过下划线“_”分隔,设备身份标识类型固定值为0 密码签名类型:长度1字节,当前支持2种类型: “0”代表HMA CS HA256不校验时间戳。 “1”代表HMACSHA256校验时间戳。 时间戳:为设备连接平台时的UTC时间,格式为YYYYMMDDHH,如UTC 时间2018/7/24 17:56:20 则应表示为2018072417。 例:5f052ac562369102d42b0fb6_0_0_2019122614 Username 必选 String(256) 设备ID。 Password 必选 String(256) Password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值(secret为注册设备时平台返回的secret)。 当设备认证类型使用密钥认证接入(SECRET)需填写“Password”,证书认证接入(CERTIFICATES)不需填写“Password”。 注:ScopeID可以在设备发放页面点击注册组查询,如下图所示。 设备通过MQTT协议的connect消息进行鉴权,对于构造clientId的各个部分信息都必须包括进去,平台收到connect消息时,会判断设备的鉴权类型和密码摘要算法。 当采用“HMACSHA256”校验时间戳方式时,会先校验消息时间戳与平台时间是否一致,再判断密码是否正确。 当采用“HMACSHA256”不校验时间戳方式时,鉴权消息也必须带时间戳,但不检验时间是否准确,仅判断密码是否正确。 connect消息鉴权失败时,平台会返回错误,并自动断开MQTT链路。 访问参数生成工具,填写注册设备后生成的设备ID(DeviceId)和密钥(DeviceSecret),生成设备连接鉴权所需的参数(ClientId、Username、Password)。
  • 接口功能 设备发放平台设备侧支持MQTT协议的connect消息接口,接口规范参考MQTT标准规范,鉴权通过后建立设备与平台间的MQTT连接。 设备发放平台目前只支持MQ TTS 接入,设备通过connect消息接口和平台建立MQTT连接时,需要使用服务端CA证书验证服务端证书。服务端CA证书单击huaweicloud-iot-root-ca-list获取证书文件压缩包。 根据您使用的工具或语言取用压缩包内的证书文件: IoT Device SDK(C/C#)、MQTT.fx工具:使用压缩包中c目录下以pem或crt为后缀的文件; IoT Device SDK(Java):使用压缩包中java目录下以jks为后缀的文件; IoT Device SDK(Android):使用压缩包中android目录下以bks为后缀的文件。
  • 连接鉴权 MQTT.fx 是目前主流的MQTT桌面客户端,它支持 Windows, Mac, Linux,可以快速验证是否可以与设备发放服务进行连接并发布或订阅消息。 本文主要介绍 MQTT.fx 如何与华为设备发放交互,其中设备发放服务MQTT的南向接入地址请参考获取终端节点。 下载 MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载 MQTT.fx ),安装MQTT.fx工具。 打开 MQTT.fx 客户端程序,单击“设置”。 填写 Connection Profile 相关信息和 General 信息。其中General 信息可以用工具默认的参数配置。 填写 User Credentials 信息。 其中Username 和Password 参数参考MQTT CONNECT连接鉴权参数说明。 选择开启 SSL/TLS,勾选CA certificate file,CA Certificate File指定为物联网平台根证书(请先下载物联网平台的根证书,解压后,选择其中c或java目录下PEM后缀的文件)的本地路径。 完成以上步骤后,单击“Apply”和“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。
  • Topic说明 设备发放平台作为消息接收方时,已默认订阅了相关Topic,设备只要向对应Topic发送消息,设备发放平台就可以接收。 设备作为消息接收方时,需要先订阅相关Topic,这样设备发放平台向对应Topic发送消息时,设备才能接收到。设备需要根据具体实现的业务来决定订阅哪些Topic。 表1 设备发放Topic Topic 消息发送方 (Publisher) 消息接收方 (Subscriber) 说明 $oc/devices/{device_id}/sys/bootstrap/up 设备 设备发放平台 设备向发放服务请求对应设备接入实例的引导信息。 $oc/devices/{device_id}/sys/bootstrap/down 设备发放平台 设备 设备接收发放服务下发的引导信息。
  • 场景示例矩阵 表2 示例列表 注册/注册组 认证类型 策略类型 示例 注册 证书认证 证书策略 MQTT X.509证书认证设备使用证书策略发放示例 注册 密钥认证 静态策略 MQTT 密钥设备使用静态策略发放示例 注册组 证书认证 自定义策略 MQTT 注册组自定义策略发放示例 注册组 云证书认证 证书策略 MQTT 华为云证书注册组发放示例 注册组 证书认证 自定义策略 MQTT 注册组自定义策略发放示例 注册 密钥认证 静态策略(跨账号) MQTT 密钥设备跨账号使用静态策略发放示例
  • MQTT概述 MQTT标准规范参见《mqtt-v3.1.1-os.pdf》。 MQTT的语法和接口细节,请以此标准为准。设备发放目前仅支持MQTTS/HTTPS这种安全接入的设备进行发放,暂不支持MQTT/HTTP这种非安全接入的设备进行发放。 MQTT消息分为固定报头(Fixed header)、可变报头(Variable header)和有效载荷(Payload)部分。 固定报头(Fixed header)和可变报头(Variable header)格式的填写直接MQTT标准规范。有效载荷(Payload)部分在PUB消息中可以由应用定义,即设备和设备发放平台之间自己定义。 下面主要介绍CONNECT、SUB和PUB消息格式的填写。 CONNECT - Client requests a connection to a server 有效载荷(Payload)中的主要参数填写,具体参见MQTT CONNECT连接鉴权。 SUBSCRIBE - Subscribe to named topics 有效载荷(Payload)中的主要参数填写:Topic name,填写为设备想要订阅的主题消息,目前填写为设备自己的topic,具体参见Topic说明。 PUBLISH - Publish message 可变报头(Variable header):Topic name,设备发往设备发放平台时,为平台的Topic name,设备接收消息时,为设备的Topic name,具体参见Topic说明。 有效载荷(Payload)中的主要参数填写:为完整的数据上报和命令下发的消息内容,目前是一个JSON对象。
  • 使用 自定义镜像 创建训练作业(Ascend) 如果Ascend-Powered-Engine预置镜像无法满足您的需求,您可以构建一个自定义镜像,通过自定义镜像创建训练作业。Ascend自定义镜像训练作业创建流程与CPU/GPU一致,但是需要额外关注: Ascend HCCL RANK_TABLE_FILE文件说明 Ascend HCCL RANK_TABLE_FILE文件提供Ascend分布式训练作业的集群信息,用于Ascend芯片分布式通信,可以被HCCL集合通信库解析。该文件格式有两个版本,分别为模板一、模板二。当前ModelArts提供的是模板二格式。 ModelArts训练环境的Ascend HCCL RANK_TABLE_FILE文件名为jobstart_hccl.json。获取方式参考表1 。 ModelArts训练环境jobstart_hccl.json文件内容(模板二)示例 { "group_count": "1", "group_list": [{ "device_count": "1", "group_name": "job-trainjob", "instance_count": "1", "instance_list": [{ "devices": [{ "device_id": "4", "device_ip": "192.1.10.254" }], "pod_name": "jobxxxxxxxx-job-trainjob-0", "server_id": "192.168.0.25" }] }], "status": "completed" } jobstart_hccl.json文件中的status字段的值在训练脚本启动时,并不一定为completed状态。因此需要训练脚本等待status字段的值等于completed之后,再去读取文件的剩余内容。 如果算法开发者期望使用模板一格式的jobstart_hccl.json文件,可以使用训练脚本,在等待status字段的值等于completed之后,将模板二格式jobstart_hccl.json文件转换为模板一格式的jobstart_hccl.json文件。 转换后的jobstart_hccl.json文件格式(模板一)示例 { "server_count": "1", "server_list": [{ "device": [{ "device_id": "4", "device_ip": "192.1.10.254", "rank_id": "0" }], "server_id": "192.168.0.25" }], "status": "completed", "version": "1.0" } 转换功能的实现,可参考示例:从 0 到 1 制作自定义镜像并用于训练(MindSpore+Ascend)中所述的Ascend训练脚本的启动脚本。 RANK_TABLE_FILE环境变量 表1 RANK_TABLE_FILE环境变量说明 环境变量 说明 RANK_TABLE_FILE 该环境变量指示Ascend HCCL RANK_TABLE_FILE文件所在目录,值为/user/config。 算法开发者可通过 “${RANK_TABLE_FILE}/jobstart_hccl.json”,路径获取该文件。 父主题: 使用自定义镜像训练模型(模型训练)
  • RDS for SQL Server添加链接服务器 sql server数据库实例2创建链接服务器访问另外一个sql server数据库实例1。 开启两个实例的分布式事务,请参考开启分布式事务,并且互相加入对端的host信息。线下服务器或ECS服务器请参考远程服务器上的名称解析。 sql server数据库实例2和sql server数据库实例1已经在相同VPC内;若ECS与RDS不在相同VPC或者RDS与线下实例建立分布式请通过EIP进行连接,请参考绑定弹性公网IP为RDS实例绑定EIP。 在rds实例1中使用rdsuser创建数据库dbtest1。 在rds实例2中使用rdsuser运行如下sql创建链接服务器。 USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'TEST_SERVERNAME', @srvproduct=N'SQL Server', @provider=N'SQLOLEDB', @datasrc=N'192.168.***.***,1433' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TEST_SERVERNAME', @locallogin = NULL , @useself = N'false', @rmtuser = N'rdsuser', @rmtpassword = N'********' GO 表1 参数说明 参数 说明 @server 链接服务器名称。 @srvproduct 数据源的产品名称。使用默认值SQL Server。 @provider 使用该默认值。 @datasrc 要访问的实例IP和端口。 @rmtsrvname 链接服务器名称。 @locallogin 本地服务器上的登录名。默认值NULL即可。 @useself 是否通过模拟本地登录名或登录名和密码连接到链接服务器。此处填false,表示通过登录名和密码连接到链接服务器。 @rmtuser 用户名(rdsuser)。 @rmtpassword 用户密码。 建立dblink之后,在链接服务器中就可以看到rds实例1中建立的库。 使用如下SQL查看是否插入成功,结果如图1所示。 begin tran set xact_abort on INSERT INTO [LYNTEST].[dbtest1].[dbo].[user1] ([id],[lname],[rname]) VALUES('19','w’,'x') GO commit tran 图1 插入结果 父主题: RDS for SQL Server
  • 语法参考 发布 CREATE PUBLICATION用于创建发布,DROP PUBLICATION用于移除发布,ALTER PUBLICATION用于修改发布。 发布创建之后,可以通过ALTER PUBLICATION动态地向发布中添加或移除表,这些操作都是事务性的。 订阅 CREATE SUBSCRIPTION用于创建订阅,DROP SUBSCRIPTION用于移除订阅,ALTER SUBSCRIPTION用于修改订阅。 订阅创建之后,可以通过ALTER SUBSCRIPTION随时暂停与恢复订阅。移除并重建订阅会导致同步信息丢失,这意味着相关数据需要重新进行同步。 具体使用说明请参考以下官方文档,以PostgreSQL 13版本为例: 创建发布:https://www.postgresql.org/docs/13/sql-createpublication.html 删除发布:https://www.postgresql.org/docs/13/sql-droppublication.html 修改发布:https://www.postgresql.org/docs/13/sql-alterpublication.html
  • 订阅使用限制 为了确保使用Failover Slot,必须在发布端手工创建逻辑复制槽(Failover Slot),并通过create_slot = false关联已有复制槽,如下: CREATE SUBSCRIPTION sub1 CONNECTION 'host=192.168.0.1 port=5432 user=user1 dbname=db1' PUBLICATION pub_name with (create_slot = false,slot_name = FailoverSlot_name); 逻辑复制不会复制DDL变更,因此发布集中的表必须已经存在于订阅端上。 同一个数据库中,可以创建多个subscription,这些subscription可以来自一个或多个发布者。 订阅者的同一张表,不能接受来自同一个源的多个发布。 在创建subscription或者alter subscription时,可以使用enable来启用该订阅,或者使用disable暂停该订阅。 如果要完全删除订阅,使用DROP SUBSCRIPTION,注意,删除订阅后,本地的表不会被删除,数据也不会清除,仅仅是不在接收该订阅的上游信息。 如果订阅与复制槽相关联,就不能在事务块内部执行DROP SUBSCRIPTION。可以使用ALTER SUBSCRIPTION取消关联复制槽。 删除订阅可参考以下步骤: 在订阅端查询订阅关联的的复制槽。 select subname,subconninfo,subslotname from pg_subscription where subname = 'sub2'; subname为订阅者名称。 subconninfo为连接远程主机信息。 subslotname 为远程主机复制槽名称。 在订阅端执行ALTER SUBSCRIPTION取消关联复制槽并删除。 ALTER SUBSCRIPTION subname SET (slot_name = NONE); DROP SUBSCRIPTION subname; 在发布端删除关联的复制槽。 select pg_drop_replication_slot(' slot_name);
  • 发布使用限制 发布目前只能包含表(即:索引,序列号,物化视图这些不会被发布),每个表可以添加到多个发布中。 一个publication允许有多个订阅者。 允许使用all tables发布所有表。 在同一个数据库中,可以创建多个publication,但是不能重名。已创建的publication可以通过查询pg_publication获取。 发布可以筛选所需的变更类型:包括insert、update、delete 和truncate的任意组合,类似触发器事件,默认所有变更都会被发布。 例如:发布表t1的update和delete操作。 CREATE PUBLICATION update_delete_only FOR TABLE t1 WITH (publish = 'update, delete') ; 复制标识:当发布了表的update, delete时,表必须设置复制标识(Replica Identity),如果设置了nothing,则执行update, delete时会报错。 表上的复制标识可以通过查阅pg_class.relreplident获取。 这是一个字符类型的“枚举”,标识用于组装 “复制标识” 的列:d = default ,f = 所有的列,i 使用特定的索引,n 没有复制标识。 表上是否具有可用作复制标识的索引约束,可以通过以下查询获取: SELECT quote_ident(nspname) || '.' || quote_ident(relname) AS name, con.ri AS keys, CASE relreplident WHEN 'd' THEN 'default' WHEN 'n' THEN 'nothing' WHEN 'f' THEN 'full' WHEN 'i' THEN 'index' END AS replica_identity FROM pg_class c JOIN pg_namespace n ON c.relnamespace = n.oid, LATERAL (SELECT array_agg(contype) AS ri FROM pg_constraint WHERE conrelid = c.oid) con WHERE relkind = 'r' AND nspname NOT IN ('pg_catalog', 'information_schema', 'monitor', 'repack', 'pg_toast') ORDER BY 2,3; 复制标识配置 表到复制标识可以通过ALTER TABLE进行修改。 ALTER TABLE table_name REPLICA IDENTITY { DEFAULT | USING INDEX index_name | FULL | NOTHING }; -- 具体有四种形式 ALTER TABLE t_normal REPLICA IDENTITY DEFAULT; -- 使用主键,如果没有主键则为FULL ALTER TABLE t_normal REPLICA IDENTITY FULL; -- 使用整行作为标识 ALTER TABLE t_normal REPLICA IDENTITY USING INDEX t_normal_v_key; -- 使用唯一索引 ALTER TABLE t_normal REPLICA IDENTITY NOTHING; -- 不设置复制标识 复制标识在实际使用中的注意事项 表上有主键,使用默认的default复制标识。 表上没有主键,但是有非空唯一索引,显式配置index复制标识。 表上既没有主键,也没有非空唯一索引,显式配置full复制标识(运行效率非常低,仅能作为兜底方案)。 其他所有情况,都无法正常完成逻辑复制功能。输出的信息不足,可能会报错。 特别需要注意:如果nothing复制标识的表纳入到逻辑复制中,对其进行删改会导致发布端报错。
  • 逻辑定义 发布可以被定义在任何物理复制的主服务器上。定义有发布的节点被称为发布者。发布是从一个表或者一组表生成的改变的集合,也可以被描述为更改集合或者复制集合。每个发布都只存在于一个数据库中。 订阅是逻辑复制的下游端。订阅被定义在其中的节点被称为订阅者。一个订阅会定义到另一个数据库的连接以及它想要订阅的发布集合(一个或者多个)。逻辑订阅者的行为与一个普通的PostgreSQ L实例 (主库)无异,逻辑订阅者也可以创建自己的发布,拥有自己的订阅者。
  • 约束条件 主实例和灾备实例状态正常,主实例和灾备实例在不同云或不同区域上,且主实例为主备实例,灾备实例为单机实例。 主实例配置容灾能力成功后才能配置灾备实例容灾能力,否则容灾关系会建立失败。 灾备实例的规格要大于等于主实例的规格。 RDS for PostgreSQL 12及以上支持建立跨云或跨区域容灾关系。 不支持跨大版本建立跨云或跨区域容灾关系。 主实例和灾备实例的容灾关系已建立完成,才能进行灾备实例升主和查询容灾复制状态。 实施前确认需要搭建的主实例和灾备实例所在区域,处于云连接/虚拟专有网络服务已上线区域内。 灾备实例不支持PITR恢复和CBR快照备份功能,如需使用此功能,请在主实例上完成。
  • 实现原理 RDS for PostgreSQL跨区域容灾实现原理说明: 在两个数据中心独立部署RDS for PostgreSQL实例,通过RDS接口将生产中心RDS for PostgreSQL库中的数据同步到灾备中心RDS for PostgreSQL库中,实现RDS for PostgreSQL主实例和跨区域灾备实例之间的实时同步。使用该功能前,必须需要确认可以使用云连接服务完成跨区域网络连通。 图1 原理图
  • 操作步骤 查询带宽使用率。 查询实例在指定时段的带宽使用率。具体操作请参见查看监控数据。 通常来说,“网络瞬时输入流量”和“网络瞬时输出流量”快速上升,并持续大于实例最大带宽的80%时,需引起注意,可能流量不足。 需关注的监控指标为带宽使用率如下图。带宽使用率的计算公式:带宽使用率=(网络瞬时输入流量+网络瞬时输出流量)/(2*最大带宽限制) * 100%。 图1 带宽使用率示例 其中,带宽使用率超过100%,不一定导致限流,有没有被流控需要看流控次数指标。 带宽使用率没有超过100%,也有可能有限流,因为带宽使用率是上报周期实时值,一个上报周期检查一次。流控检查是秒级的,有可能存在上报周期间隔期间,流量有秒级冲高,然后回落,待上报带宽使用率指标时已恢复正常。 优化带宽使用率。 当业务的访问量与预期带宽消耗不匹配,例如带宽使用率的增长趋势和QPS的增长趋势明显不一致(可结合网络瞬时输入流量和网络瞬时输出流量,分析业务是读业务和还是写业务导致的流量上涨)。对于单个节点带宽使用率上涨,您可以通过缓存分析功能,发现实例中存在的大Key,具体操作请参见大key分析。对大Key(通常大于10 KB)进行优化,例如将大Key拆分、减少对大Key的访问、删除不必要的大Key等。 经过上述步骤优化后流量使用率依旧较高,可评估升级至更大内存的规格,以承载更大的网络流量。具体操作请参见变更实例规格。也可以单独购买实例带宽,请参考调整DCS实例带宽。 在正式升级实例的规格前,您可以先购买一个按需付费的实例,测试要升级到的目标规格是否能够满足业务的负载需求,测试完成后可将其释放。释放实例请参考删除实例。
  • 忘记账号密码 在华为账号登录页面,单击“忘记密码”。 图3 忘记华为账号密码 输入账号名或注册账号的手机号/邮件地址,单击“下一步”。 图4 输入信息 如果您在2输入了注册账号的账号名/手机号/邮件地址,选择获取验证码。 如果无法接收验证码,请参考无法获取验证码进行处理。 找回密码的账号手机号/邮件地址不可用时,请联系人工客服获取帮助:中国大陆+864000955988、中国香港+852800931122,或提交工单。 按照界面提示填写验证信息,单击“下一步”。 按照页面提示,输入新密码并确认密码,单击“确定”。 由于华为账号涉及多项业务领域,如华为账号无法按照以上步骤找回时,建议您参考以下链接进行找回: https://consumer.huawei.com/cn/support/content/zh-cn15774338/ 单击“立即返回”,使用新设置的密码登录华为云。
  • 上传静态网站文件 整理好待上传的静态网站文件,在OBS控制台重复执行以下步骤,直至所有的静态网站文件都上传至准备工作创建的桶中。 在支持批量上传的区域,OBS控制台每次最多支持100个文件同时上传,总大小不超过5GB,如果网站文件较多,建议使用OBS Browser+上传,具体操作步骤请参见使用OBS Browser+上传文件或文件夹。 单击待操作的桶名称,进入桶对象页面。 单击“上传对象”,系统将弹出如下所示对话框。 图1 上传对象 添加待上传的文件。 不可加密上传静态网站文件。 存储类别建议选择“标准”。如果静态网站文件的存储类别为“归档存储”,则需要先恢复才能被访问,具体恢复步骤请参见恢复归档存储文件。 网站首页文件(index.html)和404错误页面(error.html),需要存放在桶的根目录下。 单击“上传”完成文件上传。 父主题: 实施步骤
  • 创建和配置 域名 托管 为了方便对您的自定义域名和静态网站统一管理,实现业务全面云化,您可以直接在华为云提供的云解析服务(Domain Name Service,DNS)上托管您的自定义域名。托管完成后,后续域名解析的管理都可以在云解析服务上进行,包括:管理记录集、管理反向解析、设置域名泛解析等等。 您也可以直接在域名注册商域名解析中,根据是否开启 CDN加速 来添加一条别名记录。 如果绑定自定义域名时开启了CDN加速,则添加的别名记录需指向CDN提供的加速域名。例如:域名“www.example.com”开启CDN加速后的加速域名为“www.example.com.c.cdnhwc1.com”,则需要在域名注册商添加一条值为“www.example.com CNAME www.example.com.c.cdnhwc1.com”的记录。 如果绑定自定义域名时未开启CDN加速,则添加的别名记录需指向桶的访问域名。例如:桶“example”所处区域“华北-北京一”,则需要在域名注册商添加一条值为“www.example.com CNAME example.obs.cn-north-1.myhuaweicloud.com”的记录。 使用云解析服务创建和配置域名托管的操作步骤如下: 创建公网域名。 在云解析服务中创建公网域名,使用准备工作中注册的根域名“example.com”作为创建公网域名。详细的创建方法请参见配置网站解析章节中的“添加域名”部分内容。 添加别名记录。 在云解析服务中为托管域名子域名“www.example.com”添加记录集,配置该子域名别名指向OBS的静态网站托管域名。在添加别名记录时参数配置如下: 主机记录:输入“www”。 类型:选择“CNAME – 将域名指向另外一个域名”。 线路类型:选择“全网默认”。 TTL(秒):保持默认。 值:需指向的域名。如果绑定自定义域名时没有开启CDN加速,此处填写OBS的桶的静态网站托管域名;如果开启了CDN加速,此处填写CDN提供的加速域名(即CNAME)。 详细的创建方法请参见增加CNAME类型记录集。 在域名注册商处修改域名解析服务器地址。 在域名注册商处,将该根域名对应的NS记录中域名解析服务器地址修改为云解析服务(DNS)服务器的地址,具体地址为云解析服务中该公网域名记录集中NS记录的值字段内容信息。 详细的更改域名解析服务器地址的方法请参见配置网站解析章节中的“更改域名的DNS服务器”部分。 更改后的域名解析服务器地址将于48小时内生效,具体生效时间请以域名注册商处的说明为准。 父主题: 实施步骤
  • 配置自定义域名 单击桶名称进入“对象”页面,在左侧导航栏选择“域名管理”。 单击页面上方的“配置自定义域名”,如果没有绑定自定义域名也可以在页面下方的配置自定义域名卡片中单击“配置自定义域名”,在“用户域名”输入“www.example.com”,如下所示。 图1 配置自定义域名 单击“确定”。 根据页面提示,支持单击“一键解析”,或手动完成解析CNAME,单击右下角的“我已了解”,如图2所示。 华为云域名支持一键解析添加CNAME记录;非华为云域名不支持一键解析,请用户自行配置解析规则。 图2 解析CNAME (可选)配置CDN加速。 CDN加速需收费,具体请参见CDN价格说明。 在已绑定的自定义域名操作列,单击“开启加速”。 根据您的业务情况选取对应的“服务范围”和“业务类型”。 在“其他信息”栏目,勾选开启静态网站托管。 单击“确定加速”。 (可选)如果开启了CDN加速,需要按照以下步骤配置CDN加速。 在已绑定的自定义域名操作列,单击“管理CDN加速”。 在打开的CDN控制台页面,单击域名,然后再单击“高级配置”,进入域名高级配置页面。 在“高级配置”中的“HTTP header配置”中,添加“Content-Disposition”响应头,取值为“inline”。 父主题: 实施步骤
  • 创建桶 桶名没有特殊要求,您只需要按照界面提示的命名规则创建一个桶用于存储静态网站文件。此处以创建一个桶名称为example的桶为例,其具体操作步骤如下: 打开OBS管理控制台,根据页面提示进行登录。 在页面上方单击“创建桶”。 在弹出的对话框中配置以下参数。 区域:根据就近原则选择离业务较近的区域。 默认存储类别:推荐选择“标准存储”。 您也可以根据网站的访问频率以及对响应速度的要求,选择“低频访问存储”或“归档存储”。存储类别详细介绍请参见桶存储类别简介。 桶名称:输入“example”。 桶策略:选择“公共读”使桶内对象能够被任何用户访问。 服务端加密:选择“不开启加密”。 企业项目:请先创建企业项目,默认为default企业项目,然后在创建桶时选择对应企业项目。仅企业账号能够配置企业项目。 单击“立即创建”,完成桶创建。
  • 安全组规则修改(可选) 该解决方案默认只创建ping安全组规则,用户需在登录弹性云服务器前添加入方向规则。比如登录Windows弹性云服务器,指定登录端口为3389,并添加白名单IP。 安全组实际是网络流量访问策略,包括网络流量入方向规则和出方向规则,通过这些规则为安全组内具有相同保护需求并且相互信任的云服务器、云容器、云数据库等实例提供安全保护。 如果您的实例关联的安全组策略无法满足使用需求,比如需要添加、修改、删除某个TCP端口,请参考以下内容进行修改。 添加安全组规则:根据业务使用需求需要开放某个TCP端口,请参考添加安全组规则添加入方向规则,打开指定的TCP端口。 修改安全组规则:安全组规则设置不当会造成严重的安全隐患。您可以参考修改安全组规则,来修改安全组中不合理的规则,保证云服务器等实例的网络安全。 删除安全组规则:当安全组规则入方向、出方向源地址/目的地址有变化时,或者不需要开放某个端口时,您可以参考删除安全组规则进行安全组规则删除。
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 provider_code String 服务标识 缺省值:049 最小长度:3 最大长度:100000000 error_code String 请求响应代码,范围:0000~9999,正常时取值:0 缺省值:GOM.00000000,请求成功 最小长度:1 最大长度:100000000 error_msg String 请求响应描述 最小长度:0 最大长度:100000000 状态码: 400 表3 响应Body参数 参数 参数类型 描述 provider_code String 服务标识 缺省值:049 最小长度:3 最大长度:100000000 error_code String 请求响应代码,范围:0000~9999,正常时取值:0 缺省值:GOM.00000000 最小长度:1 最大长度:100000000 error_msg String 请求响应描述 最小长度:0 最大长度:100000000
  • 请求示例 GET https://IP:PORT/v1/external/incident/handle Request Headers: Content-Type: application/json X-Auth-Token: MI*******ghkgB { "incident_num":"IM202403221515060171753781", "operator":"7da46971b7e24eed90cf777cc2ff8b91", "operate_key":"confirm", "parameter":{ "virtual_confirm_result": false, "virtual_confirm_comment": "13" } }
  • 请求示例 GET https://IP:PORT/v1/external/incident/create Request Headers: Content-Type: application/json X-Auth-Token: MI*******ghkgB Request Body: { "region": [ "cn-southwest-252" ], "enterprise_project": [ "ab080d9f-6b97-4e73-8679-b6d76057f274" ], "current_cloud_service": [ "65659ae2f42bf80e5f3f0635" ], "incident_level": "level_50", "is_service_interrupt": "true", "incident_type": "inc_type_p_security_issues", "incident_title": "测试时间单号10001", "incident_description": "测试时间单号10001", "incident_source": "incident_source_manual", "incident_assignee": ["7da46971b7e24eed90cf777cc2ff8b91"], "creator": "7da46971b7e24eed90cf777cc2ff8b91", "assignee_scene": "", "assignee_role": "" }
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 provider_code String 服务标识 缺省值:049 最小长度:3 最大长度:100000000 error_code String 请求响应代码,范围:0000~9999,正常时取值:0 缺省值:GOM.00000000 最小长度:1 最大长度:100000000 error_msg String 请求响应描述 最小长度:0 最大长度:100000000 data CreateExternalIncidentResponseData object data 表3 CreateExternalIncidentResponseData 参数 参数类型 描述 incident_num String 事件单号 最小长度:0 最大长度:255 状态码: 400 表4 响应Body参数 参数 参数类型 描述 provider_code String 服务标识 缺省值:049 最小长度:3 最大长度:100000000 error_code String 请求响应代码,范围:0000~9999,正常时取值:0 缺省值:GOM.00000000 最小长度:1 最大长度:100000000 error_msg String 请求响应描述 最小长度:0 最大长度:100000000
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 region 否 Array of strings 区域Code,如果自动拉起WarRoom则为必填,现在只支持1个 最小长度:0 最大长度:255 数组长度:0 - 1 enterprise_project 否 Array of strings 企业项目ID,当前只支持1个 最小长度:0 最大长度:255 数组长度:0 - 1 current_cloud_service 是 Array of strings 归属应用ID,当前只支持1个 最小长度:0 最大长度:255 数组长度:0 - 1 incident_level 是 String 事件级别 参考:枚举 事件级别incident_level 最小长度:0 最大长度:255 is_service_interrupt 是 Boolean 业务是否中断,取值:true/false 枚举值: true false incident_type 是 String 事件类别 参考:枚举 事件类别incident_type 最小长度:0 最大长度:255 incident_title 是 String 事件标题,最大长度:200 最小长度:0 最大长度:200 incident_description 是 String 事件描述,最大长度:600 最小长度:0 最大长度:600 incident_source 是 String 单据来源 参考:枚举 事件来源incident_source 最小长度:0 最大长度:255 incident_assignee 否 Array of strings 责任人,排班场景和排班角色(排班场景和排班角色是作为组合项)不能同时为空,必须选择一个 最小长度:0 最大长度:255 数组长度:0 - 1 assignee_scene 否 String 排班场景,排班场景和排班角色(排班场景和排班角色是作为组合项)不能同时为空,必须选择一个最小长度:0 最大长度:255 assignee_role 否 String 排班角色,依赖排班场景 最小长度:0 最大长度:255 creator 是 String 创单人 最小长度:0 最大长度:255 incident_assignee(责任人)和assignee_scene(排班场景)、assignee_role(排班角色)必须填写其中一个。如果填写了incident_assignee,可不用填写assignee_scene和assignee_role,assignee_scene和assignee_role是捆绑在一起的。
  • 响应示例 { "provider_code": "049", "error_code": "GOM.00000000", "error_msg": null, "data": { "incident_num": "IM202403181322030178042608", "region": [ "" ], "enterprise_project": [ "0" ], "current_cloud_service": [ "6470681a31da2a47ed50a919" ], "incident_level": "level_50", "is_service_interrupt": true, "incident_type": "inc_type_p_function_issues", "incident_title": "tet", "incident_description": "25819b46251b46218bf6ad238ddd860c", "incident_source": "incident_source_manual", "incident_assignee": [ "25819b46251b46218bf6ad238ddd860c" ], "assignee_scene": "", "assignee_role": "", "warroom_id": "WR202403181334366050100030", "handle_time": null, "status": "INCIDENT_STATUS_ACKNOWLEDGED", "create_time": 1710739323172, "creator": "1", "enum_data_list": [ { "filed_key": "current_cloud_service_id", "enum_key": "6470681a31da2a47ed50a919", "name_zh": "COC", "name_en": "COC" }, { "filed_key": "creator", "enum_key": "25819b46251b46218bf6ad238ddd860c", "name_zh": "coc-cim-user", "name_en": "coc-cim-user" }, { "filed_key": "level_id", "enum_key": "level_50", "name_zh": "P5", "name_en": "P5" }, { "filed_key": "work_flow_status", "enum_key": "INCIDENT_STATUS_ACKNOWLEDGED", "name_zh": "已受理", "name_en": "ACKNOWLEDGED" }, { "filed_key": "mtm_type", "enum_key": "inc_type_p_function_issues", "name_zh": "功能问题", "name_en": "function issues" }, { "filed_key": "source_id", "enum_key": "incident_source_manual", "name_zh": "人工创建", "name_en": "Manual Creation" }, { "filed_key": "assignee", "enum_key": "25819b46251b46218bf6ad238ddd860c", "name_zh": "coc-cim-user", "name_en": "coc-cim-user" } ] } }
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 provider_code String 服务标识 缺省值:049 最小长度:3 最大长度:100000000 error_code String 请求响应代码,范围:0000~9999,正常时取值:0 缺省值:GOM.00000000 最小长度:1 最大长度:100000000 error_msg String 请求响应描述 最小长度:0 最大长度:100000000 data IncidentTicketInfoResponseData object data 表3 IncidentTicketInfoResponseData 参数 参数类型 描述 incident_num String 事件单号 最小长度:0 最大长度:255 region Array of strings 区域Code,如果自动拉起WarRoom则为必填,当前只支持1个 最小长度:0 最大长度:255 数组长度:0 - 1 enterprise_project Array of strings 企业项目ID,当前只支持1个 最小长度:0 最大长度:255 数组长度:0 - 1 current_cloud_service Array of strings 归属应用ID,当前只支持1个 最小长度:0 最大长度:255 数组长度:0 - 1 incident_level String 事件级别 参考:枚举 事件级别incident_level 最小长度:0 最大长度:255 is_service_interrupt Boolean 业务是否中断,取值:true/false 枚举值: true false incident_type String 事件类别 参考:枚举 事件类别incident_type 最小长度:0 最大长度:255 incident_title String 事件标题,最大长度:200 最小长度:0 最大长度:200 incident_description String 事件描述,最大长度:600 最小长度:0 最大长度:600 incident_source String 单据来源 参考:枚举 事件来源incident_source 最小长度:0 最大长度:255 incident_assignee Array of strings 责任人 最小长度:0 最大长度:255 数组长度:0 - 1 assignee_scene String 排班场景 最小长度:0 最大长度:255 assignee_role String 排班角色 最小长度:0 最大长度:255 warroom_id String warroom_id 最小长度:0 最大长度:255 handle_time Long 最后一次提交解决方案时间戳 最小值:1 最大值:9999999999 status String 状态KEY,参考:枚举 事件状态 最小长度:0 最大长度:255 create_time Long 创单时间戳 最小值:0 最大值:999999999 creator String 创单人 最小长度:0 最大长度:255 enum_data_list Array of TicketInfoEnumData objects 枚举列表 数组长度:0 - 100000000 表4 TicketInfoEnumData 参数 参数类型 描述 filed_key String 字段KEY 标识哪个字段 最小长度:0 最大长度:255 enum_key String 枚举KEY 最小长度:0 最大长度:255 name_zh String 中文名称 最小长度:0 最大长度:255 name_en String 英文名称 最小长度:0 最大长度:255 状态码: 400 表5 响应Body参数 参数 参数类型 描述 provider_code String 服务标识 缺省值:049 最小长度:3 最大长度:100000000 error_code String 请求响应代码,范围:0000~9999,正常时取值:0 缺省值:GOM.00000000 最小长度:1 最大长度:100000000 error_msg String 请求响应描述 最小长度:0 最大长度:100000000
  • 请求示例 POST https://IP:PORT/v1/external/incident/handle Request Headers: Content-Type: application/json X-Auth-Token: MI*******ghkgB Request Body: { "incident_num":"IM202403221515060171753781", "operator":"7da46971b7e24eed90cf777cc2ff8b91", "operate_key":"acceptedIncident1", "parameter":{} }
共100000条