华为云用户手册

  • 验证方式 结合httpbin镜像在“x-forward-for”字段中可以看到源IP,httpbin是一个HTTP Request & Response Service,可以向他发送请求,他将会按照指定的规则将请求返回。httpbin镜像可在SWR中搜索。使用httpbin镜像进行验证时请确保集群已开通网格。 登录ASM应用服务网格控制台,选择一个可用的测试网格并单击进入。 选择左侧“网格配置”查看其关联的集群。 单击集群名称进入集群详情页,单击对应集群右上角第三个图标“工作负载”进入“工作负载”页签。 单击右上角“创建负载”按钮。 配置工作负载的信息。 基本信息 负载类型:选择无状态工作负载Deployment。 负载名称:命名工作负载为httpbin。 命名空间:选择工作负载的命名空间,默认为default。 其余参数使用默认值。 容器配置 基本信息: 容器名称:为容器自定义一个名称 镜像名称:单击后方“选择镜像”,在右上角搜索框搜索“httpbin”镜像并选择,单击“确认”。 镜像版本:选择一个镜像版本 其余参数使用默认值。 服务配置 服务(Service)是用来解决Pod访问问题的。每个Service有一个固定IP地址,Service将访问流量转发给Pod,而且Service可以给这些Pod做负载均衡。 单击服务配置参数下面的“+”进入创建服务页面。 Service名称:Service名称为工作负载名称。 访问类型:选择集群内访问。 端口设置: 协议:TCP 容器端口:80(以实际访问端口为准) 服务端口:80(以实际访问端口为准) 单击右下角“确定”完成服务创建。 单击右下角“创建工作负载”完成工作负载创建。 在集群详情页选择左侧“服务发现”页签,可在服务列表中查看到所创建的httpbin服务。 返回ASM应用服务网格,选择左侧“服务管理”页签,在服务管理中可查看到httpbin的配置诊断显示为异常。 单击此服务配置诊断中的“处理”按钮,按照弹出“配置诊断”页面对应的修复指导进行修复。 以“Service的端口名称是否符合Istio规范”为例,选择协议为“http”,单击“一键修复”。 选择左侧“网关管理”页签,单击右上角“添加网关”,在弹出“添加网关”页面输入配置信息。 配置信息 网关名称:httpbin。 集群选择:网格所关联使用的集群。 负载均衡:选择公网、选择一个elb公网。 对外协议:选择HTTP。 对外端口:自定义端口。 外部访问地址:负载均衡中所选elb公网地址。 单击“路由配置”下方的“+”在弹出“添加路由”页面添加路由。 URL:选择完全匹配并输入映射。 命名空间:服务所在命名空间。 目标服务:默认设置。 配置完成后单击“确定”。 单击“确定”完成网关添加。 选择左侧“服务管理”页签,可以在“访问地址”查看到所创建路由的外部访问地址。 在映射的外部访问地址后加上“?show_env=1”,访问添加字段后的外部访问地址,例如:http://xxx.xxx.xxx:80/get?show_env=1。可以在“x-forward-for”字段中查看网关获取的IP为容器段IP。 ... ... ... x-forward-for: xxxx 返回集群详情页,选择左侧导航栏“服务发现”,更改服务所关联的网关服务的配置。方法如下: 下拉上方“命名空间”列表选择“istio-system”。 展开服务后方“更多”选项,单击“更新”,在弹出“更新服务”页面将“服务亲和”更改为“节点级别”,勾选“我已阅读《负载均衡使用须知》”,单击“确定”。 返回13中访问的外部地址并刷新,若设置之后“x-forward-for”字段中显示的网关获取IP的结果为本机源IP,则完成验证。 ... ... ... x-forward-for: xxxx
  • 负载级别配置拦截IP网段 通过配置业务deployment文件,可以在负载级别配置IP网段拦截: 执行kubectl edit deploy –n user_namespace user_deployment 1. 在deployment.spec.template.metadata.annotations中配置IP网段拦截traffic.sidecar.istio.io/includeOutboundIPRanges: 2. 在deployment.spec.template.metadata.annotations中配置IP网段不拦截traffic.sidecar.istio.io/excludeOutboundIPRanges: 注意:上述操作会导致业务容器滚动升级。
  • 负载级别指定端口配置出入流量拦截 通过修改业务deployment文件,可以在负载级别配置端口上的出入流量拦截规则: 执行kubectl edit deploy –n user_namespace user_deployment 1. 在deployment.spec.template.metadata.annotations中配置入流量指定端口不拦截traffic.sidecar.istio.io/excludeInboundPorts: 2. 在deployment.spec.template.metadata.annotations中配置入流量指定端口拦截traffic.sidecar.istio.io/includeInboundPorts: 3. 在deployment.spec.template.metadata.annotations中配置出流量指定端口不拦截traffic.sidecar.istio.io/excludeOutboundPorts: 4. 在deployment.spec.template.metadata.annotations中配置出流量指定端口拦截traffic.sidecar.istio.io/includeOutboundPorts: 注意:上述操作完成后会导致业务容器滚动升级。
  • 原因分析 ASM服务网格对接至集群后,会在命名空间monitoring下创建一个otel-collector工作负载。创建这个工作负载的原因是需要利用其对envoy收集遥测数据(trace、log、metric),并进行处理,导出到相应的后端,实现网格的可观测性。 otel-collector架构简介 图1 otel-collector架构图 如上图的架构图所示,otel-collector包含了四个模块: Receivers 接收器Receivers是遥测数据进入otel-collector的方式,可以是推送或拉取。Receivers可以以多种格式接收遥测数据,例如上图中的OTLP、Jaeger、Prometheus格式。 Processors 处理器Processors用于处理Receivers收集到的数据,例如常用的batch处理器,用于对遥测数据进行批处理。 Exporters 导出器Exporters是将遥测数据发送到指定后端的方式,它帮助我们更好地可视化和分析遥测数据。 Extensions 扩展主要适用于不涉及处理遥测数据的任务。扩展是可选的,比如可以增加一个health_check的健康检查功能,获取有关Collector健康状况的信息。 otel-collector在ASM基础版网格中的使用 可通过以下命令获取otel-collector工作负载的配置信息: 以在基础版网格获取到的配置文件为例: receivers配置项定义了可以选择以zipkin、prometheus两种协议从envoy获取遥测数据,其中prometheus定义了以每15s的间隔从/stats/prometheus路径下抓取数据。 processors配置项定义了batch、memory_limiter两种对数据处理的方式,分别是批处理和内存限制。 exporters配置项定义了将处理过的遥测数据导出至apm服务器。 extensions配置项定义了health_check扩展,其用于获取有关otel-collector健康状况的信息。 service部分用于配置otel-collector实际会采用哪些上述定义好的配置项。 比如上述配置文件中service项,其配置了两个pipeline分别用于处理metrics数据和traces数据(注:一个pipeline是一组receivers, processors, 和exporters的集合),以及配置了logs输出级别为info及以上。其处理架构如下图所示。 图2 metrics、traces处理架构图
  • Jaeger/Zipkin OSC插件安装指导 Jaeger/Zipkin OSC插件安装方式一致,下面以Jaeger为例进行安装。 进入云原生服务中心OSC控制台,在左侧菜单中选择“服务目录”,搜索“Jaeger”,单击“订阅”。 在左侧菜单中选择“我的服务--我的订阅”页面,单击Jaeger服务中的“创建实例”。 选择实例的部署场景、区域、容器集群、命名空间,再选择所需要部署的服务实体。勾选左下角“我已知晓”复选框。 命名空间需要选择monitoring命名空间,否则需要自行配置ServiceEntry和WorkloadEntry。 单击“下一步:实例参数”,填写实例参数,支持“表单”和“yaml”两种部署模式,建议使用yaml方式进行部署。 参数填写完毕后单击“下一步:信息确认”,确认无误,单击“提交”,等待实例创建成功。 实例详情中“访问地址”即Jaeger服务接收请求信息的地址和端口。 此处的包含collector关键字的地址和端口即ASM应用服务网格在购买网格的时候“可观测性配置--调用链”选择“第三方Jaeger/Zipkin服务”时需要填入的服务地址和服务端口。 父主题: 流量监控
  • 下行带宽/流量 选择需要查看的时间、播放域名、区域及时间粒度。单击界面右侧的“带宽”或“流量”,可以切换查看带宽、流量趋势图。 带宽用量趋势呈现的是所选域名的总带宽趋势,如图1所示。其中,“下行带宽:2.00 Mbps”为所选域名在查询时间段内的下行带宽峰值。 图1 下行带宽统计详情 流量用量趋势中呈现的是所选域名的总流量趋势,如图2所示。其中,“下行流量:2.50 GB”为所选域名在查询时间段内的流量消耗。 流量趋势图中的总流量计算方式为,将每5分钟粒度统计的流量进行合计(Byte),再换算成MB后,精确到小数点后两位。 图2 下行流量统计详情
  • 鉴权方式A 鉴权方式A主要通过Key、timestamp、rand(随机数)、uid(设置为0)和URL计算鉴权串。 鉴权URL格式 原始URL?auth_key={timestamp}-{rand}-{uid}-{md5hash} md5hash的计算公式: sstring = "{URI}-{Timestamp}-{rand}-{uid}-{Key}" HashValue = md5sum(sstring) 表2 鉴权字段描述 字段 描述 timestamp 用户定义的有效访问时间起始点,值为1970年1月1日以来的当前时间秒数 。十进制或者十六进制整数。 示例:1592639100(即2020-06-20 15:45) 时长 鉴权URL有效的时间长度。 若设置的有效时间为1800s,则用户可在从timestamp开始的1800s内允许访问直播地址。超出该区间,鉴权失败。 示例:若设置的访问时间为2020-6-30 00:00:00,则链接真正失效时间为2020-6-30 00:30:00。 rand 随机数,建议使用UUID,不能包含中划线"-"。 示例:477b3bbc253f467b8def6711128c7bec uid userID。暂未使用,直接设置成0即可。 md5hash 通过md5算法计算出来的验证串,数字0-9和小写英文字母a-z混合组成,固定长度32。 sstring = "{URI}-{Timestamp}-{rand}-{uid}-{Key}" HashValue = md5sum(sstring) URI 指原始URL中从域名后开始到最后的路径。 示例:/livetest/huawei1.flv Key 在控制台设置的防盗链Key值,具体请参见开启Key防盗链。 鉴权URL示例 以生成播放鉴权地址为例,推流鉴权地址的生成与播放鉴权地址的生成方法相同。 原始URL:http://test-play.example.com/livetest/huawei1.flv timestamp:1592639100 时长:1800s Key:GCTbw44s6MPLh4GqgDpnfuFHgy25Enly rand:477b3bbc253f467b8def6711128c7bec uid:0 URI:/livetest/huawei1.flv 根据计算公式,得到md5hash。 HashValue = md5sum("/livetest/huawei1.flv-1592639100-477b3bbc253f467b8def6711128c7bec-0-GCTbw44s6MPLh4GqgDpnfuFHgy25Enly") = dd1b5ffa00cf26acec0c169ae1cfabea 则鉴权播放地址为: http://test-play.example.com/livetest/huawei1.flv?auth_key=1592639100-477b3bbc253f467b8def6711128c7bec-0-dd1b5ffa00cf26acec0c169ae1cfabea
  • 鉴权方式D 鉴权方式D主要通过Key、timestamp和StreamName计算鉴权串。 鉴权URL格式 原始URL?hwSecret=hmac_sha256(Key, StreamName + hwTime)&hwTime=hex(timestamp) 表5 鉴权字段描述 字段 描述 hwTime 播放URL的有效时间,为Unix时间戳的十六进制结果。 如果当前hwTime+时长的值大于当前请求的时间则可以正常播放,否则播放会被后台拒绝。 示例:5eed5888(即2020.06.20 08:30:00) Key 在控制台设置的防盗链Key值,具体请参见开启Key防盗链。 hwSecret URL中的加密参数。 以Key和StreamName+hwTime为参数进行HMAC-SHA256加密算法得出。 hwSecret = hmac_sha256(Key, StreamName + hwTime) 时长 鉴权URL的有效时间长度。 若hwTime设置为当前时间,有效时间设置为1249s,则播放URL过期时间为当前时间+ 1249s。 鉴权URL示例 以生成播放鉴权地址为例,推流鉴权地址的生成与播放鉴权地址的生成同理。 原始URL:http://test-play.example.com/livetest/huawei1.flv Key:GCTbw44s6MPLh4GqgDpnfuFHgy25Enly StreamName:huawei1 hwTime:5eed5888 时长:1249s 根据计算公式,得到hwSecret。 hwSecret = hmac_sha256(GCTbw44s6MPLh4GqgDpnfuFHgy25Enly, huawei15eed5888) = ce201856a0957413319e883c8ccae13602f01d3d91e21daf5161964cf708a6a8 则鉴权播放地址为: http://test-play.example.com/livetest/huawei1.flv?hwSecret=ce201856a0957413319e883c8ccae13602f01d3d91e21daf5161964cf708a6a8&hwTime=5eed5888
  • 鉴权方式B 鉴权方式B主要通过Key、timestamp和StreamName计算鉴权串。 鉴权URL格式 原始URL?txSecret=md5(Key + StreamName + txTime)&txTime=hex(timestamp) 表3 鉴权字段描述 字段 描述 txTime 播放URL的有效时间,为Unix时间戳的十六进制结果。 如果当前txTime的值大于当前请求的时间则可以正常播放,否则播放会被后台拒绝。 示例:5eed5888(即2020.06.20 08:30:00) Key 在控制台设置的防盗链Key值,具体请参见开启Key防盗链。 txSecret URL中的加密参数。 通过将key,StreamName,txTime依次拼接的字符串进行MD5加密算法得出。 txSecret = md5(Key + StreamName + txTime) 时长 鉴权URL的有效时间长度。 若txTime设置为当前时间,有效时间设置为1249s,则播放URL过期时间为当前时间+ 1249s。 鉴权URL示例 以生成播放鉴权地址为例,推流鉴权地址的生成与播放鉴权地址的生成同理。 原始URL:http://test-play.example.com/livetest/huawei1.flv Key:GCTbw44s6MPLh4GqgDpnfuFHgy25Enly StreamName:huawei1 txTime:5eed5888 时长:1249s 根据计算公式,得到txSecret。 txSecret = md5(GCTbw44s6MPLh4GqgDpnfuFHgy25Enlyhuawei15eed5888) = 5cdc845362c332a4ec3e09ac5d5571d6 则鉴权播放地址为: http://test-play.example.com/livetest/huawei1.flv?txSecret=5cdc845362c332a4ec3e09ac5d5571d6&txTime=5eed5888
  • 注意事项 该功能为可选项,默认不启用。启用该功能后,原始直播加速URL将无法使用,需要按规则生成合法的防盗链URL。 建议推流与播放鉴权使用不同的Key值,以增强安全性。若防盗链URL过期,或者签名不能通过,直播流将播放失败,并返回“403 Forbidden”信息。 针对RTMP、FLV这类长连接业务,只有服务端收到用户请求时,才进行防盗链参数校验,校验通过后可以持续播放。 针对HLS这类业务,用户播放后会携带相同的防盗链参数,持续发起请求。一旦防盗链参数过期,服务端便会因校验不通过,而拒绝访问,导致播放中断。 所以建议这类业务,适当调整鉴权过期时间,避免因时间过短,而中途就播放失败。示例:如果预估HLS播放时长每次都在1小时以内,可设置过期时间为3600秒。
  • 概述 视频直播 服务为您提供了Referer防盗链、Key防盗链和IP黑白名单鉴权机制,对访问者的身份进行识别和过滤,符合规则的才可使用直播服务。 其中,Key防盗链鉴权功能旨在保护直播源站资源不被非法下载盗用。采用Referer防盗链方法添加Referer黑、白名单方式可以解决部分盗链问题。但是,由于Referer内容可以伪造,所以Referer防盗链方式不能很好的保护直播源站的资源。因此,建议采用Key防盗链鉴权方式保护直播源站资源更为安全有效。视频直播服务鉴权机制如表1所示。 表1 直播鉴权 项目 描述 配置 Referer防盗链 您可以配置访问的Referer黑白名单,对访问者身份进行识别和过滤。 请参见Referer防盗链。 Key防盗链 您可以配置防盗链Key,通过URL鉴权方式保障直播资源的安全。 请参见Key防盗链。 IP黑白名单 您可以配置访问的IP黑白名单,对访问者身份进行识别和过滤。 请参见IP黑白名单。 父主题: 播放鉴权
  • Root CA机构颁发的证书 Root CA机构颁发的证书是一份完整的证书,配置HTTPS时,仅上传该证书即可。 通过记事本打开*.PEM格式的证书文件,可以查看到类似图1所示的全部证书信息。 PEM格式证书: 以证书链“-----BEGIN CERTIFICATE-----”开头,以证书链“-----END CERTIFICATE-----”结尾。 证书链之间的内容,要求每行64个字符,最后一行允许不足64个字符。 证书内容不包含空格。
  • RSA私钥格式要求 PEM格式的文件可以存放证书或私钥,如果*.PEM只包含私钥,一般用*.KEY代替。 通过记事本打开*.PEM或*.KEY的私钥文件,可以查看到类似图3所示的全部私钥信息。 RSA格式私钥: 以证书链“-----BEGIN RSA PRIVATE KEY-----”开头,以证书链“-----END RSA PRIVATE KEY-----”结尾。 证书链之间的内容,要求每行64个字符,最后一行允许不足64个字符。 证书内容不包含空格。
  • 中级CA机构颁发的证书 中级机构颁发的证书文件包含多份证书,配置HTTPS时,需要将所有证书拼接在一起组成一份完整的证书后再上传。拼接后的证书类似图2。 通过记事本打开所有*.PEM格式的证书文件,将服务器证书放在首位,再放置中间证书。一般情况下,机构在颁发证书的时候会有对应说明,请注意查阅相关规则。通用的规则如下: 证书之间没有空行。 证书链的格式如下: -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
  • 格式转换 配置HTTPS仅支持PEM格式的证书/私钥,其他格式均不支持。其他格式的证书/私钥需要转换成PEM格式,建议通过OpenSSL工具进行转换。下面是几种比较流行的证书格式转换为PEM格式的方法。 以下示例均假设转换前证书名为old_certificate,私钥名为old_key,转换后证书名为new_certificate,私钥文件名为new_key。 DER转换为PEM openssl x509 -inform der -in old_certificate.cer -out new_certificate.pem openssl rsa -inform DER -outform pem -in old_key.der -out new_key.pem P7B转换为PEM openssl pkcs7 -print_certs -in old_certificate.p7b -out new_certificate.cer PFX转换为PEM openssl pkcs12 -in old_certificat.pfx -nokeys -out new_certificate.pem openssl pkcs12 -in old_certificat.pfx -nocerts -out new_key.pem 若需要将PK CS 8格式私钥转换为PKCS1格式,则参考如下方法: openssl rsa -in old_certificat.pem -out pkcs1.pem
  • 功能特性 华为云媒体直播提供了创建媒体直播转码模板、 创建频道等功能,广泛地用于直播业务的PGC平台等场景。具体如表1所示。 表1 功能特性 类别 特性名称 特性说明 直播控制台 概览 支持查看直播的今日下行流量、下行带宽峰值等数据。 支持变更直播的CDN计费模式。 域名管理 支持新增、删除、停用、启用媒体直播推流域名和播放域名。 频道管理 支持创建、启用、修改、停用、删除频道。 直播转码 支持创建、修改、删除媒体直播转码模板。 业务监控 支持查看播放域名的监控信息,包括下行带宽/流量、请求响应返回的所有状态码和下行并发数。 工具库 支持获取频道回看URL,回看频道历史播放内容。
  • DNSPod配置方法 若您的DNS服务商为DNSPod,您可通过如下步骤配置CNAME记录。 登录DNSPod控制台。 在左侧菜单栏中,选择“域名解析”。 在待添加记录集的域名所在行,单击相应域名。 单击“添加记录”,弹出“添加记录”页面。 根据界面提示填写参数配置,参数信息如表1所示。 表1 参数说明 参数名 描述 取值样例 主机记录 主机记录指域名前缀。 example 记录类型 记录集的类型,此处为CNAME类型。 CNAME-Canonical name 线路类型 一般情况下,若空间商只提供了一个IP地址或域名,选择「默认」即可。其他特殊情况请咨询您的DNS服务商。 默认 记录值 需指向的域名,即CDN为您分配的CNAME域名。 example.test.com.d9235b9f.c.cdnhwc1.com 权重 无需填写。 - MX优先级 无需填写。 - TTL(秒) 记录集的有效缓存时间,以秒为单位。 保持默认即可。 单击“保存”,完成添加。 CNAME记录添加完成后实时生效。
  • 新网配置方法 若您的DNS服务商为新网,您可通过如下步骤添加CNAME记录。 登录新网域名自助管理平台。 选择“域名管理”,进入DNS解析记录管理页面。 选择待添加记录的域名,进入DNS解析记录页面。 根据界面提示填写参数配置,参数信息如表3所示。 表3 参数说明 参数名 描述 取值样例 别名 需指向的域名,即CDN为您分配的CNAME域名。 example.test.com.d9235b9f.c.cdnhwc1.com 别名主机 表示域名前缀。 example TTL(秒) 记录集的有效缓存时间,以秒为单位。 保持默认 单击“确认”,完成添加。 CNAME记录添加完成后实时生效。
  • 状态码 调用视频直播API时,可能返回的状态码如表1所示。 表1 状态码 返回值 说明 200 OK 请求正常。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 204 No Content 请求完全成功,同时HTTP响应不包含响应体。 400 Bad Request 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 Not Found 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 Method Not Allowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Timeout 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 500 Internal Server Error 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 Service Unavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 Gateway Timeout 网关超时。 父主题: 附录
  • OTT频道管理接口 表1 OTT频道管理接口 接口 说明 POST /v1/{project_id}/ott/channels 新建OTT频道 GET /v1/{project_id}/ott/channels 查询频道信息 DELETE /v1/{project_id}/ott/channels 删除频道信息 PUT /v1/{project_id}/ott/channels/endpoints 修改频道打包信息 PUT /v1/{project_id}/ott/channels/input 修改频道入流信息 PUT /v1/{project_id}/ott/channels/record-settings 修改频道录制信息 PUT /v1/{project_id}/ott/channels/general 修改频道通用信息 PUT /v1/{project_id}/ott/channels/state 修改频道状态 PUT /v1/{project_id}/ott/channels/encorder-settings 修改频道转码模板信息
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用创建的用户进行日常管理工作。 用户 由账号在 IAM 中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域 指云资源所在的物理位置,同一区域内可用区间内网互通,不同区域间内网不互通。通过在不同地区创建云资源,可以将应用程序设计的更接近特定客户的要求,或满足不同地区的法律或其他要求。 可用区 一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 父主题: 使用前必读
  • 调用API获取项目ID 您还能通过调用查询指定条件下的项目信息API获取项目ID。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects/”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "region01", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 请求示例 POST https://{endpoint}/v1/{project_id}/v2x-edges Content-Type:application/json X-Auth-Token:******** Instance-Id:******** { "name" : "v2xedgeName", "description" : "v2xedge01", "esn" : "ESN01234567", "ip" : "127.0.0.1", "port" : "8880", "hardware_type" : "ATLAS", "position_description" : "position01", "local_rsus" : [ "rsu_test_01" ], "local_segment_rsus" : [ { "segment_id" : "1", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "2", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "3", "rsu_esn" : "98238558220689235608785517764662" } ] }
  • 响应参数 状态码: 201 表7 响应Body参数 参数 参数类型 描述 v2x_edge_id String 参数说明:Edge ID,用于唯一标识一个Edge 最小长度:0 最大长度:255 name String 参数说明:名称。 取值范围:长度不低于1不超过128,只允许中文、字母、数字、下划线(_)、连接符(-)的组合。 description String 参数说明:Edge描述。 取值范围:长度不超过255,只允许中文、字母、数字、下划线(_)、中文分号(;)、中文冒号(:)、中文问号(?)、中文感叹号(!)中文逗号(,)、中文句号(。)、英文引号(;)、英文冒号(:)、英文逗号(,)、英文句号(.)、英文问号(?)、英文感叹号(!)、顿号(、)、连接符(-)的组合。 最小长度:0 最大长度:255 esn String 参数说明:设备编码,全局唯一。 取值范围:长度不超过64,只允许字母、数字、以及_等字符的组合。 ip String 参数说明:网络IP,例如127.0.0.1。 port Integer ITS800,ATLAS 端口号 最小值:0 最大值:65535 hardware_type String 参数说明:硬件类型。 取值范围:ITS800 或者 ATLAS server_protocol_type String 参数说明:v2xedge作为服务端的协议类型。 取值范围:http 或者 https 缺省值:http server_cert String 参数说明:v2xedge作为服务端,pem格式的证书。 最小长度:0 最大长度:4096 position_description String 参数说明:安装位置编码,由用户自定义。 取值范围:长度不低于1不超过128,只允许字母、数字、下划线(_)的组合。 location Location object 参数说明:经纬度坐标。 local_rsus Array of strings 参数说明:Edge关联的本地RSU列表。 最大长度:255 数组长度:0 - 32 local_segment_rsus Array of LocalSegmentRsu objects 参数说明:Edge管理的分段所关联的本地RSU列表。 数组长度:0 - 32 edge_general_config EdgeGeneralConfigInResponse object Edge通用配置。 edge_advance_config Object Edge高级配置,Json格式 最大长度:4096 status String "参数说明:状态。 取值范围: UNINSTALLED: 待部署 INSTALLED:部署中 OFFLINE:离线 ONLINE:在线: UPGRADING:升级中 DELETING:删除中 node_id String 边缘管理服务返回的node_id,用于关联EdgeManager的资源 最小长度:0 最大长度:255 created_time String 参数说明:创建时间。 格式:yyyy-MM-dd''T''HH:mm:ss''Z''。 例如 2020-09-01T01:37:01Z。 last_modified_time String 参数说明:创建时间。 格式:yyyy-MM-dd''T''HH:mm:ss''Z''。 例如 2020-09-01T01:37:01Z。 表8 Location 参数 参数类型 描述 lat Number 参数说明:定义纬度数值,北纬为正,南纬为负,单位°,精度小数点后7位。 最小值:-90 最大值:90 lon Number 参数说明:定义经度数值。东经为正,西经为负。单位°,精度小数点后7位。 最小值:-180 最大值:180 表9 LocalSegmentRsu 参数 参数类型 描述 segment_id String 参数说明:分段Id,填写雷达设备对应序号(sequence_no)。 取值范围:数字字符串。 最小长度:1 最大长度:4 rsu_esn String 参数说明:RSU的设备序列号。 取值范围:只允许长度不小于1、最大为64,字母、数字、下划线(_)的组合。 最小长度:1 最大长度:64 表10 EdgeGeneralConfigInResponse 参数 参数类型 描述 avp_enabled Boolean 参数说明:AVP场景。 rsm_enabled Boolean 参数说明:RSM上报:默认不上报。 time_compensate Boolean 参数说明:时延补偿:是否启动Edge时延补偿功能。 rsi_positioning_enabled Boolean 参数说明:RSI事件定位功能。 log_level String 参数说明:应用日志级别 取值范围:on/off,默认关闭。 缺省值:off road_detection_length Double 参数说明:道路检测长度,单位:米。 最小值:1 最大值:1000 ramp_detection_length Double 参数说明:匝道检测长度,单位:米。 最小值:1 最大值:1000 gat1400_username String 参数说明:1400接口用户名。 取值范围:长度不小于8,不大于32,只允许数字字母下划线组合,且不能以数字下划线开头,不能有中文和特殊字符,gat1400用户名不能与gat1400密码相同。 user_name String 参数说明:ITS800鉴权用的用户名。 取值范围:长度不超过255,只允许字母、数字、下划线(_)、问号(?)、反引号(')、井号(#)、左小括号(()、右小括号())、点(.)、逗号(,)、与(&)、百分号(%)、At(@)、感叹号(!)、连接符(-)的组合。
  • 响应示例 状态码: 201 Created { "v2x_edge_id" : "ab6cb4ca-bc7a-4b3d-8629-7212c5d9a6b0", "name" : "name", "description" : "test", "esn" : "ESN01234567", "ip" : "127.0.0.1", "port" : "8880", "hardware_type" : "ATLAS", "server_protocol_type" : "http", "server_cert" : null, "position_description" : "testtest", "location" : { "lat" : 22.4, "lon" : 124 }, "local_rsus" : [ "rsu_test_01" ], "local_segment_rsus" : [ { "segment_id" : "1", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "2", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "3", "rsu_esn" : "98238558220689235608785517764662" } ], "edge_general_config" : { "avp_enabled" : true, "rsm_enabled" : true, "time_compensate" : true, "log_level" : false, "road_detection_length" : 10, "ramp_detection_length" : 10, "gat1400_username" : "dris_user", "user_name" : "dris_user" }, "edge_advance_config" : { "testKey" : "testValue" }, "status" : "INSTALLED", "node_id" : "536434354358674544874543587", "created_time" : "2020-09-01T01:37:01Z", "last_modified_time" : "2020-09-01T01:37:01Z" }
  • 响应示例 状态码: 200 OK { "v2x_edge_id" : "ab6cb4ca-bc7a-4b3d-8629-7212c5d9a6b0", "name" : "NAMEMC007", "description" : "test", "esn" : "esn123", "ip" : "127.0.0.1", "port" : "65535", "hardware_type" : "ATLAS", "server_protocol_type" : "http", "server_cert" : null, "position_description" : "K08", "location" : { "lat" : 0, "lon" : 0 }, "local_rsus" : [ ], "local_segment_rsus" : [ { "segment_id" : "1", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "2", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "3", "rsu_esn" : "98238558220689235608785517764662" } ], "edge_general_config" : { "avp_enabled" : true, "rsm_enabled" : true, "time_compensate" : true, "log_level" : "off", "road_detection_length" : 10, "ramp_detection_length" : 10, "gat1400_username" : "dris_user", "user_name" : "dris_user" }, "edge_advance_config" : { "key" : "value", "key1" : { "inner_key1" : "inner_value1" } }, "status" : "INSTALLED", "node_id" : "536434354358674544874543587", "created_time" : "2020-09-01T01:37:01Z", "last_modified_time" : "2020-09-01T01:37:01Z" }
  • 请求示例 PUT https://{endpoint}/v1/{project_id}/v2x-edges/{v2x_edge_id} Content-Type:application/json X-Auth-Token:******** Instance-Id:******** { "name" : "v2xEdge001", "description" : "v2xEdge 001", "local_segment_rsus" : [ { "segment_id" : "1", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "2", "rsu_esn" : "13518098671442480164720973683901" }, { "segment_id" : "3", "rsu_esn" : "98238558220689235608785517764662" } ] }
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 v2x_edge_id String 参数说明:Edge ID,用于唯一标识一个Edge 最小长度:0 最大长度:255 name String 参数说明:名称。 取值范围:长度不低于1不超过128,只允许中文、字母、数字、下划线(_)、连接符(-)的组合。 description String 参数说明:Edge描述。 取值范围:长度不超过255,只允许中文、字母、数字、下划线(_)、中文分号(;)、中文冒号(:)、中文问号(?)、中文感叹号(!)中文逗号(,)、中文句号(。)、英文引号(;)、英文冒号(:)、英文逗号(,)、英文句号(.)、英文问号(?)、英文感叹号(!)、顿号(、)、连接符(-)的组合。 最小长度:0 最大长度:255 esn String 参数说明:设备编码,全局唯一。 取值范围:长度不超过64,只允许字母、数字、以及_等字符的组合。 ip String 参数说明:网络IP,例如127.0.0.1。 port Integer ITS800,ATLAS 端口号 最小值:0 最大值:65535 hardware_type String 参数说明:硬件类型。 取值范围:ITS800 或者 ATLAS server_protocol_type String 参数说明:v2xedge作为服务端的协议类型。 取值范围:http 或者 https 缺省值:http server_cert String 参数说明:v2xedge作为服务端,pem格式的证书。 最小长度:0 最大长度:4096 position_description String 参数说明:安装位置编码,由用户自定义。 取值范围:长度不低于1不超过128,只允许字母、数字、下划线(_)的组合。 location Location object 参数说明:经纬度坐标。 local_rsus Array of strings 参数说明:Edge关联的本地RSU列表。 最大长度:255 数组长度:0 - 32 local_segment_rsus Array of LocalSegmentRsu objects 参数说明:Edge管理的分段所关联的本地RSU列表。 数组长度:0 - 32 edge_general_config EdgeGeneralConfigInResponse object Edge通用配置。 edge_advance_config Object Edge高级配置,Json格式 最大长度:4096 status String "参数说明:状态。 取值范围: UNINSTALLED: 待部署 INSTALLED:部署中 OFFLINE:离线 ONLINE:在线: UPGRADING:升级中 DELETING:删除中 node_id String 边缘管理服务返回的node_id,用于关联EdgeManager的资源 最小长度:0 最大长度:255 created_time String 参数说明:创建时间。 格式:yyyy-MM-dd''T''HH:mm:ss''Z''。 例如 2020-09-01T01:37:01Z。 last_modified_time String 参数说明:创建时间。 格式:yyyy-MM-dd''T''HH:mm:ss''Z''。 例如 2020-09-01T01:37:01Z。 表8 Location 参数 参数类型 描述 lat Number 参数说明:定义纬度数值,北纬为正,南纬为负,单位°,精度小数点后7位。 最小值:-90 最大值:90 lon Number 参数说明:定义经度数值。东经为正,西经为负。单位°,精度小数点后7位。 最小值:-180 最大值:180 表9 LocalSegmentRsu 参数 参数类型 描述 segment_id String 参数说明:分段Id,填写雷达设备对应序号(sequence_no)。 取值范围:数字字符串。 最小长度:1 最大长度:4 rsu_esn String 参数说明:RSU的设备序列号。 取值范围:只允许长度不小于1、最大为64,字母、数字、下划线(_)的组合。 最小长度:1 最大长度:64 表10 EdgeGeneralConfigInResponse 参数 参数类型 描述 avp_enabled Boolean 参数说明:AVP场景。 rsm_enabled Boolean 参数说明:RSM上报:默认不上报。 time_compensate Boolean 参数说明:时延补偿:是否启动Edge时延补偿功能。 rsi_positioning_enabled Boolean 参数说明:RSI事件定位功能。 log_level String 参数说明:应用日志级别 取值范围:on/off,默认关闭。 缺省值:off road_detection_length Double 参数说明:道路检测长度,单位:米。 最小值:1 最大值:1000 ramp_detection_length Double 参数说明:匝道检测长度,单位:米。 最小值:1 最大值:1000 gat1400_username String 参数说明:1400接口用户名。 取值范围:长度不小于8,不大于32,只允许数字字母下划线组合,且不能以数字下划线开头,不能有中文和特殊字符,gat1400用户名不能与gat1400密码相同。 user_name String 参数说明:ITS800鉴权用的用户名。 取值范围:长度不超过255,只允许字母、数字、下划线(_)、问号(?)、反引号(')、井号(#)、左小括号(()、右小括号())、点(.)、逗号(,)、与(&)、百分号(%)、At(@)、感叹号(!)、连接符(-)的组合。
  • Message示例 { "name" : "testRsi", "content" : "{\"rsiSourceId\":\"string\",\"ack\":true,\"seqNum\":\"string\",\"rsiDatas\":[{\"id\":\"string\",\"timeStamp\":27344635,\"refPos\":{\"lat\":40.1234567,\"lon\":116.1234567,\"ele\":1000},\"rtss\":[{\"rtsId\":100,\"signType\":1,\"signPosition\":{\"lat\":40.1234567,\"lon\":116.1234567,\"ele\":1000},\"signDescription\":\"test\",\"timeDetails\":{\"startTime\":666,\"endTime\":666,\"endTimeConfidence\":10},\"signPriority\":5,\"referencePaths\":[{\"activePath\":[{\"lat\":40.1234567,\"lon\":116.1234567,\"ele\":1000}],\"pathRadius\":100}],\"description\":\"test\"}],\"rtes\":[{\"rteId\":100,\"eventType\":100,\"eventSource\":\"unknown\",\"eventPosition\":{\"lat\":40.1234567,\"lon\":116.1234567,\"ele\":1000},\"eventRadius\":100,\"eventDescription\":\"test\",\"eventPriority\":5,\"referencePaths\":[{\"activePath\":[{\"lat\":40.1234567,\"lon\":116.1234567,\"ele\":1000}],\"pathRadius\":100}],\"eventConfidence\":100,\"duration\":100}]}]}" }
  • Message参数 表1 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 参数说明:消息名称。 最小长度:1 最大长度:255 content 是 RsuReceivedRsiData object 参数说明:下发的rsi消息内容。该参数值为JSON字符串 表2 RsuReceivedRsiData 参数 是否必选 参数类型 描述 rsiSourceId 否 String 参数说明:事件来源设备的唯一ID。 最小长度:1 最大长度:64 ack 否 Boolean 参数说明:是否需要确认。true需要,不带或false不需要。 seqNum 否 String 参数说明:当需要确认时必填,用于匹配响应。 最小长度:1 最大长度:32 rsiDatas 否 Array of OpenRSURSIData objects 参数说明:道路交通标志。 数组长度:1 - 16 表3 OpenRSURSIData 参数 是否必选 参数类型 描述 id 否 String 参数说明:RSU ID。 timeStamp 否 Integer 参数说明:构造消息的分钟数时间戳,数值用来表示当前年份已经过去的总分钟数(UTC时间)。527040表示无效时间戳。 最小值:0 最大值:527040 refPos 否 ReceivedPosition3D object 参数说明:位置信息。 rtss 否 Array of RSUReceivedRTSData objects 参数说明:道路交通标志。 数组长度:1 - 16 rtes 否 Array of OpenRSURTEData objects 参数说明:道路交通事件。 数组长度:1 - 8 表4 RSUReceivedRTSData 参数 是否必选 参数类型 描述 rtsId 否 Integer 参数说明:RTS的本地id。 最小值:0 最大值:255 signType 否 Integer 参数说明:道路交通标志类型,参考国标 GB 5768.2-2009。 最小值:1 最大值:520 signPosition 否 ReceivedPosition3D object 参数说明:位置信息。 signDescription 否 String 参数说明:道路交通标志的附加说明。 最小长度:1 最大长度:255 timeDetails 否 RSUReceivedRSITimeDetails object 参数说明:定义道路交通事件和道路交通标志信息的生效时间属性。 signPriority 否 Integer 参数说明:道路交通标志紧急程度。数字越大,级别越高。 最小值:0 最大值:7 referencePaths 否 Array of RSUReceivedReferencePath objects 参数说明:道路交通事件的关联路径。 数组长度:1 - 8 description 否 String 参数说明:道路交通标志的附加说明。 最小长度:1 最大长度:255 表5 RSUReceivedRSITimeDetails 参数 是否必选 参数类型 描述 startTime 否 Integer 参数说明:开始时间。数值用来表示当前年份,已经过去的总分钟数(UTC时间)。 最小值:0 最大值:527040 endTime 否 Integer 参数说明:结束时间。数值用来表示当前年份,已经过去的总分钟数(UTC时间)。 最小值:0 最大值:527040 endTimeConfidence 否 Integer 参数说明:数值描述了95%置信水平的结束时间置信度。该精度理论上只考虑了当前计时系统本身传感器的误差。参考时间精度。 最小值:0 最大值:39 表6 OpenRSURTEData 参数 是否必选 参数类型 描述 rteId 否 Integer 参数说明:道路交通事件的本地id。 最小值:0 最大值:255 eventType 否 Integer 参数说明:GB/T 29100-2012定义的事件类型。 最小值:0 最大值:65535 eventSource 否 String 参数说明:来源的具体类型。 枚举值: unknown police government meteorological internet detection v2xServer rsu obu eventPosition 否 ReceivedPosition3D object 参数说明:位置信息。 eventRadius 否 Integer 参数说明:事件半径,如果存在的话,单位分米。 最小值:0 最大值:1000 eventDescription 否 String 参数说明:道路交通事件的描述信息。 最小长度:1 最大长度:255 eventPriority 否 Integer 参数说明:道路交通事件的紧急程度。数字越大,级别越高。 最小值:0 最大值:7 referencePaths 否 Array of RSUReceivedReferencePath objects 参数说明:道路交通事件的关联路径。 数组长度:1 - 8 eventConfidence 否 Integer 参数说明:道路交通事件的信息来源提供的事件置信度水平,帮助接收端判断是否相信该事件信息,单位为0.5%。 最小值:0 最大值:200 duration 否 Integer 参数说明:事件持续时间,单位:秒。即时事件的duration=0;长期事件的duration=(事件结束时间-事件开始时间)。 最小值:0 最大值:100000 表7 ReceivedPosition3D 参数 是否必选 参数类型 描述 lat 是 Number 参数说明:定义纬度数值,北纬为正,南纬为负,单位°,精度小数点后7位。 最小值:-90 最大值:90 lon 是 Number 参数说明:定义经度数值。东经为正,西经为负,单位°,精度小数点后7位。 最小值:-180 最大值:180 ele 否 Number 参数说明:定义海拔高程,可选,单位为分米。 最小值:-4095 最大值:61439 表8 RSUReceivedReferencePath 参数 是否必选 参数类型 描述 activePath 否 Array of ReceivedPosition3D objects 参数说明:与当前情况关联的有效点集。 数组长度:1 - 8 pathRadius 否 Integer 参数说明:单位为0.1米。用半径表示影响区域边界离中心线的垂直距离,反映该区域的宽度以覆盖实际路段。 最小值:0 最大值:1000
共100000条