华为云用户手册

  • ServiceStage核心概念 ServiceStage也存在几个对应的概念,在实际使用过程中容易发生混淆,包括: 应用:ServiceStage的应用和微服务引擎的应用在含义上类似。ServiceStage的应用名称是部署环节指定的,微服务引擎的应用是微服务开发环节指定的,两者没有必然联系,可以不同。微服务开发框架都提供了环境变量映射的功能,通过环境变量映射的功能,开发者可以使用ServiceStage的应用名称作为微服务的应用名称。 组件:ServiceStage的组件对应于微服务引擎的微服务。和应用一样,名称分别是部署环节指定和开发环节指定,通过环境变量映射,微服务引擎可以使用ServiceStage的组件名称。 实例:ServiceStage的实例对应于微服务引擎的实例。只要部署成功,ServiceStage就有实例了。微服务引擎要求必须成功注册到服务中心,才会有实例。在服务正常注册的情况下,两者实例数是一样的,注册失败的情况下,微服务引擎没有实例,而ServiceStage有实例。 环境:ServiceStage的环境和微服务引擎的环境概念不同。ServiceStage的环境是一系列资源组成的运行环境,环境里面包含了微服务引擎、云容器引擎(CCE)等资源。
  • 开发流程说明 开发微服务应用 如果您已经完成了微服务应用的开发,可以跳过本流程,进入准备环境。 进行微服务应用开发,首先需要进行技术选型。技术选型是一个复杂的问题,技术决策者需要考虑使用的技术是否容易被团队成员掌握,技术能否满足项目对于功能、性能、可靠性方面的要求,还需要考虑商业服务等多方面的因素。本文档不探讨技术选型,假设技术团队已经选择了适合自己的开发框架。大部分技术团队都会选择开源框架来构建业务。 开发微服务应用的具体内容,请参考开发微服务应用。 使用Java Chassis,通常会使用下面的技术进行本地微服务开发: 使用Spring Cloud,通常会使用下面的技术进行本地微服务开发: 准备环境 创建云上环境,以支持微服务引擎接入调试、云上应用部署和使用微服务引擎功能。一般情况下,会创建一个测试环境和一个生产环境。通过ServiceStage,能够非常方便的管理云上环境,详细内容请参考准备环境。 对接微服务应用 用于微服务应用对接微服务引擎,涉及到对已经开发好的应用的配置文件、构建脚本的修改。修改完成后,需要对应用重新编译、打包,通过ServiceStage将应用包部署到微服务引擎,详细内容请参考对接微服务应用。 部署微服务应用 开发完成的微服务应用,通过ServiceStage部署到微服务引擎,详细内容请参考部署微服务应用。 使用微服务引擎功能 对于持续发展的应用系统,都会持续完善和迭代,每个迭代可能需要对微服务应用进行更新升级,需要使用更多的微服务引擎功能。持续迭代的功能演进,会重复上面的应用开发、编译、打包和部署环节。详细内容请参考使用微服务引擎功能。
  • 微服务引擎核心概念 应用:可以将应用理解为完成某项完整业务场景的软件系统。应用一般由多个微服务组成,应用里面的微服务能够相互发现和调用。 微服务:完成某项具体业务功能的软件系统。微服务是独立开发、部署的单元。 微服务实例:将微服务采用部署系统部署到运行环境,就产生了实例。可以将实例理解为一个进程,一个微服务可以部署若干实例。 微服务环境:服务中心建立的一个逻辑概念,比如development、production等。不同环境里面的微服务实例逻辑隔离、无法相互发现和调用。
  • 操作步骤 修改微服务调用的URL,将URL中的${IP:Port}修改为服务名。 例如调用一个名为“provider”的微服务,API为“/hello”,则调用URL通常为:http://${IP:Port}/hello。例如: http://127.0.0.1:80/hello 您需要将调用的URL修改为: http://provider/hello 为微服务调用请求设置http proxy,proxy的地址为:http://${IP:Port}。例如: http://127.0.0.1:30101 若一个微服务被其他微服务调用,则该微服务的监听地址中必须包含127.0.0.1(监听端口和其他监听地址不做限制)。 在ServiceStage平台创建Mesher组件,请参考创建微服务组件。 Mesher组件名称必须和微服务名称一致。
  • 常用环境变量说明 通过ServiceStage管理环境和部署应用,能够简化用户的配置。ServiceStage会设置一些环境变量,供应用使用,常用的环境变量包括下表所示内容: 表1 常用环境变量 环境变量名称 含义 PAAS_ CS E_ENDPOINT CSE注册中心、配置中心等服务的地址信息。这个环境变量在微服务引擎专业版通过APIG访问的时候使用,上述服务的外部访问地址是统一的域名。 说明: 不建议使用这个环境变量,而是使用具体服务的环境变量,避免在微服务引擎专享版的场景下存在歧义,需要修改应用程序。 PAAS_CSE_SC_ENDPOINT CSE服务注册发现地址信息。 PAAS_CSE_CC_ENDPOINT CSE配置中心地址信息。 PAAS_PROJECT_NAME 项目名称。 CAS_APPLICATION_NAME ServiceStage的应用名称。 CAS_COMPONENT_NAME ServiceStage的组件名称。 CAS_INSTANCE_VERSION ServiceStage的部署版本号。 您可以结合不同微服务开发框架的机制,比如Spring Cloud提供的Place Holder机制、Java Chassis提供的“mapping.yaml”机制等来合理使用这些变量,减少部署需要手工输入的内容。 ServiceStage创建应用过程中,可以绑定中间件(如DCS、RDS)。应用绑定的中间件配置信息可以通过以下环境变量获取。
  • 服务治理概述 服务治理是一个非常宽泛的概念,一般指独立于业务逻辑之外,给系统提供一些可靠运行的系统保障措施。针对微服务场景下的常用故障模式,提供的保障措施包括: 负载均衡管理:提供多实例情况下的负载均衡策略管理,比如采用轮询的方式保障流量在不同实例均衡。当一个实例发生故障的时候,能够暂时隔离这个实例,防止访问这个实例造成请求超时等。 流控:流控的主要目的是提供负载保护,防止外部流量超过系统处理能力,导致系统崩溃。流控还被用于平滑请求,让请求以均匀分布的方式到达服务,防止突发的流量对系统造成冲击。 重试:重试的主要目的是保障随机失败对业务造成影响。随机失败在微服务系统经常发生,产生随机失败的原因非常多。以Java微服务应用为例,造成请求超时这种随机失败的原因包括:网络波动和软硬件升级,可能造成随机的几秒中断;JVM垃圾回收、线程调度导致的时延增加;流量并不是均匀的,同时到来的1000个请求和1秒内平均来的1000个请求对系统的冲击是不同的,前者更容易导致超时;应用程序、系统、网络的综合影响,一个应用程序突然的大流量可能会对带宽产生影响,从而影响到其他应用程序运行;其他应用程序相关的场景,比如SSL需要获取操作系统熵,如果熵值过低,会有几秒钟的延迟。 系统不可避免地面临随机故障,必须具备一定的随机故障保护能力。 隔离仓:隔离仓通常针对系统资源占用比较多的业务进行保护。比如一个业务非常耗时,如果这个业务和其他业务共享线程池,当这个业务被大量突发访问时,其他业务都会等待,造成整个系统性能下降。隔离仓通过给资源占用比较多的业务分配独立的资源池(一般通过信号量或者线程池实现),避免对其他业务造成影响。 服务治理的复杂性在于没有任何治理措施是适用于所有场景的。对于一个应用场景工作良好的治理手段,在另外一个场景可能成为问题。在业务运行周期,根据业务运行状态和指标,动态的更新治理策略非常重要。 在业务系统中使用服务治理,通常包括下面几个步骤: 开发业务。这个过程一般比较少关注服务治理的内容,以交付业务功能为重心。微服务开发框架针对常用的系统故障,一般都默认提供了保障措施,选择合适的微服务开发框架,可以节省DFx的时间。 性能测试和故障演练。这个过程中会发现非常多的系统不稳定问题,服务治理的策略会在解决这些问题的过程中应用,并写入配置文件作为应用程序缺省值。 业务上线运行。上线运行的过程中碰到未考虑的场景,需要采用配置中心动态调整治理参数,以保障业务平稳运行。 上面的3个步骤在整个软件生命周期会不断迭代完善。描述如何使用所有的治理能力是复杂的,微服务引擎针对不同的微服务开发框架,提供了一个统一的基于流量特征的服务治理能力。 如果使用微服务框架开发应用,在应用托管后启动应用,微服务会自动注册到对应的微服务引擎,您可以到微服务引擎控制台进行服务治理的相关操作。请参考服务治理。 本章节重点介绍如何使用基于流量特征的服务治理能力。 父主题: 使用服务治理
  • 前提条件 已基于Java Chassis开发好了微服务应用。 Java Chass框架下的微服务应用开发,请参考https://servicecomb.apache.org/references/java-chassis/zh_CN/。 版本要求,请参见微服务开发框架版本要求。 本文假设您的项目使用了maven管理打包,您熟悉maven的依赖管理机制,能够正确的修改“pom.xml”文件中的dependencyManagement和dependency。 Java Chassis支持和不同的技术进行组合使用,配置文件的名称和实际使用的技术有关。如果您采用Spring方式使用Java Chassis,配置文件的名称一般为“microservice.yaml”,如果您采用Spring Boot方式使用Java Chassis, 配置文件名称一般为“application.yaml”。本文统一使用“microservice.yaml”表示配置文件,请结合实际项目进行区分。
  • 方法一 为微服务的“bootstrap.yml”文件增加以下配置,若已配置请忽略。 AK/SK与项目名称获取方法,请参考获取AK/SK与项目名称。 spring: cloud: servicecomb: credentials: enabled: true accessKey: AK #结合用户实际值配置 secretKey: SK #结合用户实际值配置 project: 项目名称 #结合用户实际值配置 akskCustomCipher: default
  • 微服务引擎 微服务引擎使用config-center作为配置中心。微服务默认会读取配置中心全局配置、服务配置。全局配置指环境和微服务相同的配置;服务配置指环境、应用、微服务名称和微服务相同的配置。 微服务引擎只支持key-value的配置项。如果用户需要使用yaml格式的配置文件,可以使用具体SDK提供的fileSource功能。通过在配置文件中指定fileSource的key列表,SDK会将这些key对应的value全部当成yaml解析。以Spring Cloud为例,在bootstrap.yml中增加配置项:
  • 方法二 为微服务添加如表1所示环境变量。 添加环境变量,请参考设置应用环境变量。 AK/SK获取方法,请参考获取AK/SK与项目名称。 表1 环境变量 环境变量 说明 spring_cloud_servicecomb_credentials_accessKey AK,结合用户实际值配置。 spring_cloud_servicecomb_credentials_secretKey SK,结合用户实际值配置。
  • 开发微服务应用 如您已经完成了微服务应用的开发,请跳过本章节。 开源社区提供了丰富的开发资料和帮助渠道帮助您使用微服务开发框架。如您需深入了解具体微服务框架下的微服务应用开发,请参考本章节给出的参考资料链接。 体验微服务引擎最快捷的方式是使用“微服务引擎推荐示例”里面的例子。下载示例,修改配置文件中的微服务引擎地址,AK/SK信息,在本地运行例子,这些例子可以注册到微服务引擎。 Spring Cloud 源码仓库:https://github.com/spring-cloud 问题咨询:参考源码仓库的各个代码仓库下的issues 开发指南:https://spring.io/projects/spring-cloud Spring Cloud Huawei项目:https://github.com/huaweicloud/spring-cloud-huawei 微服务引擎推荐示例:https://github.com/huaweicloud/spring-cloud-huawei-samples/tree/master/basic Java Chassis 源码仓库:https://github.com/apache/servicecomb-java-chassis 问题咨询:https://github.com/apache/servicecomb-java-chassis/issues 开发指南:https://servicecomb.apache.org/references/java-chassis/zh_CN/ 微服务引擎推荐示例:https://github.com/apache/servicecomb-samples/tree/master/basic 父主题: 微服务开发指南
  • 微服务开发框架版本要求 微服务开发框架推荐版本如下表所示。 如果已经使用低版本的微服务开发框架构建应用,建议升级到推荐版本,以获取最稳定和丰富的功能体验。 如果已使用Spring Cloud微服务开发框架开发了应用,推荐使用Spring Cloud Huawei接入应用。 如果基于开源开放和业界生态组件新开发微服务应用,可选择Spring Cloud框架。 如果希望使用微服务引擎提供的开箱即用的治理能力和高性能的RPC框架,可选择Java Chassis框架。 框架 推荐版本 说明 Java Chassis 2.6.0及以上 可以直接使用开源项目提供的软件包接入,不需要引用其他第三方软件包。 Java Chassis微服务开发框架的版本说明请参见:https://github.com/apache/servicecomb-java-chassis/releases。 Spring Cloud 1.8.0-2020.0.x及以上 采用Spring Cloud Huawei项目提供接入支持。推荐版本为Spring Cloud Huawei的版本号,对应的Spring Cloud版本为2020.0.x。 Spring Cloud微服务开发框架的版本说明请参见:https://github.com/huaweicloud/spring-cloud-huawei/releases。 Spring Cloud 1.8.0-Hoxton及以上 采用Spring Cloud Huawei项目提供接入支持。推荐版本为Spring Cloud Huawei的版本号,对应的Spring Cloud版本为Hoxton。 Spring Cloud微服务开发框架的版本说明请参见:https://github.com/huaweicloud/spring-cloud-huawei/releases。
  • 安全认证概述 开启了“安全认证”的微服务引擎专享版,通过微服务控制台提供了基于RBAC(Role-Based Access Control,基于角色的访问控制)的系统管理功能。权限与角色相关联,您可以使用关联了admin角色权限的帐号创建新帐号,根据实际业务需求把合适的角色同帐号关联。使用该帐号的用户则具有对该微服务引擎的相应的访问和操作权限。 微服务引擎专享版开启了安全认证之后,所有调用的API都需要先获取token才能调用,认证流程请参考服务中心RBAC说明。 开启了安全认证的微服务引擎专享版,在使用安全认证前需要完成以下工作: 创建安全认证帐号名和密码 配置微服务安全认证的帐号名和密码 框架支持安全认证功能的版本要求:Spring Cloud需要集成Spring Cloud Huawei 1.6.1及以上版本,Java Chassis需要2.3.5及以上版本。 老版本未开启安全认证的微服务引擎专享版,升级到新版本并开启安全认证的场景,请参考开启微服务引擎专享版安全认证。 父主题: 使用安全认证
  • 什么是Mesher Mesher是Service Mesh的一个具体的实现,是一个轻量的代理服务以Sidecar的方式与微服务一起运行。 Service Mesh是由William Morgan定义: Service Mesh是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,Service Mesh保证请求可以在这些拓扑中可靠地传输。在实际应用当中,Service Mesh通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但应用程序不需要知道它们的存在。 随着云原生应用的崛起,Service Mesh逐渐成为一个独立的基础设施层。在云原生模型里,一个应用可以由数百个服务组成,每个服务可能有数千个实例,而每个实例可能会持续地发生变化。服务间通信不仅异常复杂,而且也是运行时行为的基础。管理好服务间通信对于保证端到端的性能和可靠性来说是非常重要的。 Service Mesh实际上就是处于TCP/IP之上的一个抽象层,假设底层的L3/L4网络能够点对点地传输字节(同时,也假设网络环境是不可靠的,所以Service Mesh必须具备处理网络故障的能力)。 从某种程度上说,Service Mesh有点类似TCP/IP。TCP对网络端点间传输字节的机制进行了抽象,而Service Mesh则是对服务节点间请求的路由机制进行了抽象。Service Mesh不关心消息体是什么,也不关心它们是如何编码的。应用程序的目标是“将某些东西从A传送到B”,而Service Mesh所要做的就是实现这个目标,并处理传送过程中可能出现的任何故障。 与TCP不同的是,Service Mesh有着更高的目标:为应用运行时提供统一的、应用层面的可见性和可控性。Service Mesh将服务间通信从底层的基础设施中分离出来,让它成为整个生态系统的一等公民——它因此可以被监控、托管和控制。
  • 前提条件 通过ServiceStage部署,可以将.Net应用变为云原生应用,需要符合以下条件: 如果使用微服务引擎专业版,需要首先创建Mesher所需的配置,具体操作请参考为Mesher框架微服务应用配置AK/SK。推荐使用微服务引擎专享版,无需配置。 待接入的程序必须支持标准http_proxy环境变量。 本指南讲述的是.Net Core的接入方法,当前支持的.Net Core的版本为:2.0.9版本及以上,3.0版本以下。 其他语言,如Python、PHP接入,仅需满足前置条件即可。
  • ServiceStage部署 部署应用组件前,需要: 已经参考创建应用创建应用。 已经参考创建环境创建环境,环境包含CCE集群、ELB及微服务引擎等资源。 确保order配置文件中payment地址正确。 将payment service命名为“payment” 以代替本地127.0.0.1的寻址方式,端口需要保留,输入以下命令。 vim order/src/appsettings.json { "ServiceEndpoints": { "PaymentServiceEndpoint": "http://payment:8080" }, ....} 打包payment和order的镜像。 首先选择上传到某个Region的SWR软件仓库,比如swr.cn-north-1.myhuaweicloud.com,在该Region的软件中心创建组织,比如demo,具体参考创建组织。 打包镜像命令示例如下: cd order/src/ sudo docker build . -t swr.cn-north-1.myhuaweicloud.com/demo/ordernet:1.0 cd payment/src/ sudo docker build . -t swr.cn-north-1.myhuaweicloud.com/demo/paymentnet:1.0 上传镜像。 通过界面上传,请参考上传镜像。 通过命令push,示例如下: docker push swr.cn-north-1.myhuaweicloud.com/demo/ordernet:1.0 docker push swr.cn-north-1.myhuaweicloud.com/demo/paymentnet:1.0 创建payment应用组件,请参考创建微服务组件。 “选择运行时”:选择“Docker”。 “选择框架/服务网格”:选择“Mesher”。 “组件名称”:输入“payment”。 应用组件名字要跟1中order配置文件中的地址保持完全一致,所以名字为payment。 部署payment组件,请参考部署组件。 “实例数量”:设置为1。 “镜像”:单击“选择镜像”,选择3中上传的payment组件镜像。 其他参数使用默认配置。 创建order组件,请参考创建微服务组件。 “选择运行时”:选择“Docker”。 “选择框架/服务网格”:选择“Mesher”。 “组件名称”:输入“order”。 部署order组件,请参考部署组件。 “实例数量”:设置为1。 “镜像”:单击“选择镜像”,选择3中上传的order组件镜像。 “公网访问”:开启公网访问,“监听端口”设置为80。 其他参数使用默认配置。
  • 示例流程 图1 给用户授权NAT网关权限流程 创建用户组并授权 在 IAM 控制台创建用户组,并授予NAT网关服务权限“NAT ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1.创建用户组并授权中创建的用户组。 用户登录并验证权限。 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择NAT网关,进入NAT网关主界面,单击右上角“购买NAT网关”,如果无法购买NAT网关(假设当前权限仅包含NAT ReadOnlyAccess),表示“NAT ReadOnlyAccess”已生效。 在“服务列表”中选择除NAT网关外(假设当前策略仅包含NAT ReadOnlyAccess)的任一服务,若提示权限不足,表示“NAT ReadOnlyAccess”已生效。
  • 策略样例 示例1:授权用户创建和删除NAT网关 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "nat:natGateways:create", "nat:natGateways:delete" ] } ]} 示例2:拒绝用户删除NAT网关 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先。 如果您给用户授予NAT FullAccess的系统策略,但不希望用户拥有NAT FullAccess中定义的删除NAT网关权限,您可以创建一条拒绝删除NAT网关的策略,然后同时将NAT FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对NAT网关执行除了删除NAT网关外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Action": [ "nat:natGateways:delete" ], "Effect": "Deny" } ] } 示例3:多个授权项策略 一个自定义策略中可以包含多个授权项,且除了可以包含本服务的授权项外,还可以包含其他服务的授权项,可以包含的其他服务必须跟本服务同属性,即都是项目级服务或都是全局级服务。多个授权语句策略描述如下: { "Version": "1.1", "Statement": [ { "Action": [ "nat:natGateways:update", "nat:natGateways:create" ], "Effect": "Allow" }, { "Action": [ "vpc:vpcs:update" ], "Effect": "Allow" } ]}
  • 什么是 私网NAT网关 ? 私网NAT网关(Private NAT Gateway),能够为虚拟私有云内的云主机(弹性云服务器、裸金属服务器)提供私网地址转换服务。您可以在私网NAT网关上配置SNAT、DNAT规则,可将源、目的网段地址转换为中转IP,通过使用中转IP实现VPC内的云主机与其他VPC、云下IDC互访。 私网NAT网关分为SNAT和DNAT两个功能: SNAT功能通过绑定中转IP,可实现VPC内跨可用区的多个云主机共享中转IP,访问外部数据中心或其他VPC。 DNAT功能通过绑定中转IP,可实现IP映射或端口映射,使VPC内跨可用区的多个云主机共享中转IP,为外部私网提供服务。 中转子网 中转子网相当于一个中转网络,您可以在中转子网中创建私网IP,即中转IP,使本端VPC中的云主机可以共享该中转IP访问用户IDC或其他远端VPC。 中转VPC 中转子网所在VPC。 图1 私网NAT网关 如图1所示: 重叠网段的VPC互访 两个本端VPC网段重叠,使用两个私网NAT网关,配置SNAT、DNAT规则,将本端VPC私网地址转换为中转IP地址,实现两个本端VPC中云主机利用中转IP互访,解决了VPC间网段重叠互访的问题。 指定IP接入远端私网 访问远端私网中的用户数据中心(IDC)和VPC被要求指定IP地址接入,远端私网中的IDC通过云专线/VPN接入中转VPC,远端私网中的VPC通过对等连接接入中转VPC。本端VPC1使用私网NAT网关,配置SNAT规则,将本端VPC私网地址转换为指定IP地址,实现本端VPC1中的云主机以指定IP地址接入远端私网。 私网NAT网关目前在“华东-上海二”、“中国-香港”、“拉美-圣保罗一”、“非洲-约翰内斯堡”、“拉美-墨西哥城一”限时免费。 私网NAT网关目前在“华南-广州-友好用户环境”、“华南-广州”、“华东-上海一”、“华北-北京四”、“华北-乌兰察布一”、“亚太-曼谷”、“亚太-新加坡”、“西南-贵阳一”已开始计费。
  • 产品优势 简规划 企业从线下IDC迁移部分业务上云后,希望保持原先企业内部网络通信方式,私网NAT可将业务VPC下云主机的IP转换为中转VPC下的中转IP,并与远端IDC或其他VPC进行三层通信,助力企业业务零改造、简化网络规划。 零冲突 利用两个私网NAT网关,可将两重叠网段的VPC进行地址转换,实现两个VPC下的云主机互访,解决网段重叠互访问题。 高安全 私网NAT网关提供私网IP地址映射为满足企业安全规范的IP地址,接入指定部门,提升安全性。
  • 应用场景 重叠网段VPC间互通 私网NAT网关提供私网地址转换服务,利用两个私网NAT网关,配置SNAT、DNAT规则,可同时将源、目的网段地址转换为中转IP,通过使用中转IP实现两VPC间互通。私网NAT网关解决了两个重叠网段虚拟私有云中的云主机互相访问的问题。 如下图所示,创建一个中转VPC,然后使用两个私网NAT网关将VPC A中IP地址为192.168.0.1的弹性云服务器地址转化为10.0.0.11、将VPC B中IP地址为192.168.0.1的弹性云服务器地址转化为10.0.0.22,通过转化后的IP地址相互访问。 图2 重叠网段VPC间互通 企业网络上云及指定IP接入 大企业等机构上云,希望迁移上云保持组网不变,使用私网NAT网关无需对网络做任何更改即可保持原有方式互通。同时,行业监管部门要求指定地址接入,使用私网NAT网关将各部门的IP地址映射为指定地址接入行业监管部门,满足企业安全规范。 如下图所示,企业部门间存在网段重叠,使用私网NAT网关,实现企业各部门迁移上云后组网不变,部门间保持原有方式互通,简化了IDC上云的网络规划;使用私网NAT网关,配置SNAT规则,将各部门的IP地址映射为符合要求的10.0.0.33地址接入行业监管部门,提升企业的安全性。 图3 企业网络上云及指定IP接入
  • 公网NAT网关与私网NAT网关对比 公网NAT网关通过配置SNAT规则将私有IP映射为弹性公网IP,实现VPC内的云主机通过共享弹性公网IP访问互联网;配置DNAT规则共享弹性公网IP为公网提供服务。 私网NAT网关通过配置SNAT规则将私有IP映射为中转IP,实现VPC内的云主机访问私网中的用户数据中心或其他VPC;配置DNAT规则共享中转IP为私网提供服务。 表1概括了公网NAT网关和私网NAT网关间的差异: 表1 公网NAT网关与私网NAT网关对比 功能项 公网NAT网关 私网NAT网关 功能 私网和公网间互通 私网和私网间互通 SNAT功能 访问公网 访问私网中的IDC或其他VPC DNAT功能 为公网提供服务 为私网中的IDC或其他VPC提供服务 互通媒介 弹性公网IP 中转IP
  • 支持审计的关键操作列表 通过 云审计 服务,您可以记录与NAT网关相关的操作事件,便于日后的查询、审计和回溯。 云审计支持的公网NAT网关操作事件列表如表1所示。 云审计支持的私网NAT网关操作事件列表如表2所示。 表1 云审计服务支持的公网NAT网关操作列表 操作名称 资源类型 事件名称 创建公网NAT网关 natgateway createNatGateway 修改公网NAT网关 natgateway updateNatGateway 删除公网NAT网关 natgateway deleteNatGateway 创建公网NAT网关DNAT规则 dnatrule createDnatRule 修改公网NAT网关DNAT规则 dnatrule updateDnatRule 删除公网NAT网关DNAT规则 dnatrule deleteDnatRule 创建公网NAT网关SNAT规则 snatrule createSnatRule 修改公网NAT网关SNAT规则 snatrule updateSnatRule 删除公网NAT网关SNAT规则 snatrule deleteSnatRule 表2 云审计服务支持的私网NAT网关操作列表 操作名称 资源类型 事件名称 创建私网NAT网关 privateNat createPrivateNat 修改私网NAT网关 privateNat updatePrivateNat 删除私网NAT网关 privateNat deletePrivateNat 创建私网NAT网关DNAT规则 privateDnatRule createPrivateDnatRule 修改私网NAT网关DNAT规则 privateDnatRule updatePrivateDnatRule 删除私网NAT网关DNAT规则 privateDnatRule deletePrivateDnatRule 创建私网NAT网关SNAT规则 privateSnatRule createPrivateSnatRule 修改私网NAT网关SNAT规则 privateSnatRule updatePrivateSnatRule 删除私网NAT网关SNAT规则 privateSnatRule deletePrivateSnatRule 创建中转子网 transitSubnet createTransitSubnet 修改中转子网 transitSubnet updateTransitSubnet 删除中转子网 transitSubnet deleteTransitSubnet 创建中转IP transitIp createTransitIp 删除中转IP transitip deleteTransitIp 父主题: 审计
  • 操作场景 公网NAT网关创建后,如果您在使用过程中发现当前的公网NAT网关规格不能满足自己的需求,可以修改公网NAT网关规格、名称和描述。 提升公网NAT网关规格不影响业务;降低公网NAT网关规格取决于当前的业务量是否超过降档后规格的上限。 包年/包月的公网NAT网关不支持规格降级。 包年/包月的公网NAT网关转按需,需包年/包月资费模式到期后,按需的资费模式才会生效;按需的公网NAT网关可以随时转包年/包月。
  • 准备工作 安装Git for Windows ModelBox中有些脚本的执行依赖bash,使用Git bash也可以让开发者在Windows上获得与Linux相同的执行环境,因此需要安装Git for Windows。 安装后打开Git bash,可以使用Linux命令执行某些操作。 安装Python3.8.10 ModelBox技能的开发运行需要Python3.8.10环境(目前Python版本必须为3.8.10,且无法使用Anaconda环境中的Python)。 安装Python第一步,需要勾选“将Python3.8加到环境变量PATH中”。 图1 安装Python 安装Visual Studio Code 与使用ModelBox的其他套件一样,推荐使用Visual Studio Code进行技能开发,请登录Visual Studio Code官网下载安装Windows x64版本的编辑器。 图2 安装Visual Studio Code
  • 步骤1:注册设备 登录华为HiLens管理控制台,单击“专业版”,切换至专业版控制台。 单击左侧导航栏“设备管理”,进入“设备管理”页面。 单击注册设备,进入注册设备页面。 填写注册信息,单击右下角的“确认”。 基本信息 图3 基本信息 表1 注册设备基础信息 参数 说明 设备名称 设备注册时使用的名称,批量注册时使用该名称作为前缀。仅允许中文字符、英文字母、数字、下划线、中划线且长度不超过64。 描述 设备描述。不允许输入*~#等特殊字符且长度为0-255。 标签 设备标签。 单击“创建标签”,添加标签,在输入框中依次填写标签键和标签值。 只允许大小写字母、数字、下划线和中划线,不允许为空。标签键不允许重复,最大长度为36个字符,标签值最大长度为43个字符。 最多可添加20组标签。 单击,删除标签。 部署方式 当前仅支持注册“HiLens”类型设备。 设备类型 选择待注册的设备类型,包括“Atlas 500”、“Atlas 800”、“通用ARM设备”、“通用x86设备” 等设备类型。 本样例选择“Windows”。 高级设置 图4 高级设置 参数 说明 开启AI加速卡 AI加速卡开关,开启后AI加速卡类型当前仅支持“Nvidia GPU”。 批量注册 批量注册开关。如果开启,选择注册设备的数量。 输入值范围必须在1~100000。 IAM用户名 由帐号在IAM中创建的用户,如果没有IAM账户时,填写华为云帐号名。相关概念请参见IAM基本概念。 工作空间 选择设备注册的工作空间。默认帐号的默认工作空间,可自定义选择。 事件有效时间 若您在设备离线时进行操作,则操作将保留在待执行的事件列表中,待设备上线后执行。 日志设置 配置日志的“日志存储时间”、“日志等级”,设置“LTS日志上传”开关。 图5 应用日志 表2 注册设备日志设置 参数 说明 日志存储时间 日志存储时长,单位为天。输入值范围必须在1~30。 日志等级 选择日志等级,可选“Error(错误)”、“Warning(警告)”、“Info(信息)”、“Debug(调试)”。 本地日志设置 大小限制 对该注册设备的日志大小限制,默认为50MB,不可自定义。 日志滚动数量 每隔 {0} 天,对本地日志根据数量对日志进行一次日志滚动,删除最旧的日志文件。每个日志文件固定10M。 LTS 云日志 设置 日志上传 日志上传开关。系统日志与应用日志默认在本地存储,如果要上传至云日志服务(LTS),可开启“日志上传”开关。 开关开启后,选择日志等级,仅对应等级的日志上传至LTS。 填写完注册设备的基本信息,在“完成,下载固件”页面,单击操作列的“下载”,下载对应的固件和配置文件至本地。 图6 下载固件和证书文件 设备故障和离线状态时,可尝试重新下载证书并再次执行注册命令,设备激活状态、部署等信息不变。同一设备下,证书总共最多可下载10次。 解压上一步下载的“HiLens_Device_Agent”,得到可执行文件“hdad.exe”。 双击“hdad.exe”,保持窗口开启。 打开PC命令提示符窗口,执行如下命令注册设备: [固件文件夹路径]\hdad.exe hdactl bind -p [证书路径]\win10.tar.gz 注册命令示例如下: HiLens_Device_Agent\hdad.exe hdactl bind -p Device-20221031151022.tar.gz 在专业版管理控制台左侧菜单栏单击“设备管理”,默认设备列表展现所有设备,查看到您所注册的设备列表,且设备状态处于“运行中”状态,则说明您的设备成功注册。 图7 控制台查看设备
  • 步骤1:准备数据 华为HiLens在公共OBS桶中提供了人脸检测技能的示例模型,命名为“face_detection_model”,因此本文的操作示例使用此示例模型进行技能开发。您需要执行如下操作,将模型文件上传至您的OBS目录下,即准备工作中您创建的OBS目录“hilens-test1/face-detection”。 单击模型下载链接,将人脸检测案例示例模型“face_detection_model”下载至本地,在文件存放目录完成签名校验(Windows系统推荐使用Git工具),验证成功将返回OK。执行命令如下: echo ec5160c48f5ba6025dac696d7ff8b827f1902f6aa712b6969609cb5f290d149a face_detection_model.zip | sha256sum -c 在本地,将“face_detection_model”压缩包解压。例如解压至本地“face_detection_model”文件夹下,包括两个子文件夹“caffemodel+transfer”和“logic_code”。 参考上传文件,将“caffemodel+transfer”文件夹下的3个文件上传至“hilens-test1/face-detection”OBS路径下,包含caffe模型文件“.caffemodel”和“.prototxt”和配置文件“.cfg”。
  • 准备工作 已注册华为云帐号,且在使用华为HiLens前检查帐号状态,帐号不能处于欠费或冻结状态。 已购买HiLens Kit设备,并准备好网线,电脑,路由器,HDMI线,显示屏。 成功注册设备HiLens Kit设备至华为HiLens控制台,详情请参见注册HiLens Kit。 登录OBS服务,创建桶和文件夹,用于存放样例的模型数据。创建名称为“hilens-test1”OBS桶,创建名称为“face-detection”文件夹和名称为“face-detection-output”的文件夹。 创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。为保证模型数据能正常访问,请务必保证创建的OBS桶与华为HiLens在同一区域。 占用OBS资源的操作均会收取一定费用,收费规则请参见 对象存储服务 OBS。
  • 环境要求 安装边缘节点的服务器需要与设备在同一网域,因此您可以 局域网:使用两台电脑(一台Windows,一台Linux),或者在一台Windows电脑上使用虚拟化软件安装Linux(网卡需要设置为桥接模式)。 公网:分别使用两台拥有公网的Window和Linux电脑,推荐购买两台ECS服务器。 其他要求: 安装边缘节点的电脑需为Linux,推荐使用CentOS 7(不推荐CentOS 8,因CentOS 8缺少边缘软件依赖组件)。 安装边缘节点的电脑需要安装docker且内存不小于1G,docker要求版本大于17.06.0,推荐18.06.3,不推荐18.09.0(该版本有多处bug)。 开放7883端口。
  • 安装MQTT设备模拟器 访问MQTT.fx下载页面,下载并安装最新版本的MQTT.fx工具。 MQTT.fx 1.7.0及旧版本对带有$的主题(Topic)处理存在问题,请使用最新版本进行测试。 在设备对接边缘节点场景中,需要在设备侧集成相应证书。 证书类型,证书格式,以及用途详见下表。 证书名称 证书类型 证书格式 说明 下载 plt-device-ca 设备侧证书 pem 用于设备校验边缘节点的身份。 证书文件 父主题: 前提条件
共100000条