• [热门活动] 【DevRun成长计划——Serverless专场学习笔记】
    本次学习实践,我学习了Serveless在华为云的基本操作。与此同时,我还进行了很多实践。具体说来,一共进行了三项实践:10分钟开发我的个人主页,这个项目是第一个项目,也是唯一使用nodejs的项目,可以使用serveless快速建站,十分方便快捷:第二个项目是OBS自动化文件解压,这个项目中我尝试了使用serveless自动解压obs中的文件,十分方便,而且不用担心性能。第三个项目是定时拨测场景,这个场景中我尝试了使用serveless对网站是否正常进行监控,当出现异常时及时通知我。
  • [技术干货] 华为FusionCompute详解——转载
     FusionCompute产品定位 FusionCompute是云操作系统软件,主要负责硬件资源的虚拟化,以及对虚拟资源、业务资源、用户资源的集中管理。它采用虚拟计算、虚拟存储、虚拟网络等技术,完成计算资源、存储资源、网络资源的虚拟化。同时通过统一的接口,对这些虚拟资源进行集中调度和管理,从而降低业务的运行成本,保证系统的安全性和可靠性,协助运营商和企业构筑安全、绿色、节能的云数据中心能力。  云机房  云机房是指为云数据中心运营所提供的一系列基本配套设施和空间,主要包括供电系统、消防系统、布线系统、制冷系统等。 华为基于SAFE创新理念,从智能管理(Smart)、高可用性(Availability)、灵活扩展(Flexibility)、高效节能(Efficient)四个方面持续提升数据中心机房竞争力。 硬件基础设施层  硬件资源包括服务器、存储、网络、安全等全面的云计算基础物理设备,支持用户从中小规模到大规模的新建或扩容,可运行从入门级到企业级的各种企业应用。设备类型丰富,可为客户提供灵活的部署选择。 FusionStorage Block  FusionStorage Block是一种存储与计算高度融合的分布式存储软件,在通用服务器上部署该软件后,可以把所有服务器的本地硬盘组织成一个虚拟存储资源池,提供块存储功能。 FusionSphere虚拟化套件  FusionSphere虚拟化套件通过在服务器上部署虚拟化软件,将硬件资源虚拟化,从而使一台物理服务器可以承担多台服务器的工作。通过整合现有的工作负载并利用剩余的服务器以部署新的应用程序和解决方案,可以实现较高的整合率。 FusionCompute  FusionCompute是云操作系统软件,主要负责硬件资源的虚拟化,以及对虚拟资源、业务资源、用户资源的集中管理。它采用虚拟计算、虚拟存储、虚拟网络等技术,完成计算资源、存储资源、网络资源的虚拟化。同时通过统一的接口,对这些虚拟资源进行集中调度和管理,从而降低业务的运行成本,保证系统的安全性和可靠性,协助运营商和企业构筑安全、绿色、节能的云数据中心能力。 eBackup  eBackup是虚拟化备份软件,配合FusionCompute快照功能和CBT(Changed Block Tracking)备份功能实现FusionSphere的虚拟机数据备份方案。 UltraVR  UltraVR是容灾业务管理软件,利用底层SAN存储系统提供的异步远程复制特性,提供虚拟机关键数据的数据保护和容灾恢复。 API  API(Application Programming Interface,应用程序接口),向上层应用提供接口 FusionAccess  桌面云,华为远程桌面软件 FusionCube 超融合一体机 OpenStack 开源云计算管理平台 FusionCompute产品架构  CNA:Compute Node Agent,CNA部署在需要虚拟化的服务器上。 VRM:Virtual Resource Management,VRM可以部署成VM或者部署在物理服务器上;VRM对外提供网页操作界面供管理维护人员。  FusionCompute软件逻辑组成  模块    功能 CNA    提供虚拟计算功能 管理计算节点上的虚拟机 管理计算节点上的计算、存储、网络资源 VRM    管理集群内的块存储资源 管理集群内的网络资源(IP/VLAN),为虚拟机分配IP地址 管理集群内虚拟机的生命周期以及虚拟机在计算节点上的分布和迁移 管理集群内资源的动态调整 通过对虚拟资源、用户数据的统一管理,对外提供弹性计算、存储、IP等服务 通过提供统一的操作维护管理接口,操作维护人员通过WebUI远程访问FusionCompute对整个系统进行操作维护,包含资源管理、资源监控、资源报表等。 FusionCompute产品功能 虚拟化计算 FusionCompute支持将x86服务器虚拟化为多台虚拟机,最终用户可以在这些虚拟机上安装各种软件,挂载磁盘,调整配置,调整网络,就像普通的x86服务器一样使用它。 对于最终用户,虚拟机比物理机的优势在于它可以很快速的发放,很方便的调整配置和组网。对于维护人员来讲,虚拟机复用了硬件,这样硬件更少,加上云平台的自动维护能力,维护成本显著降低。对于系统管理员,可以很直观的知道资源使用的总量及变化趋势,以便决策是否扩容。  将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理。同时硬件辅助虚拟化技术提升虚拟化效率,增加虚拟机的安全性。  虚拟化计算中如cpu、内存、I/O虚拟化将会额外单独介绍  虚拟化存储 FusionCompute支持将SAN设备、计算节点本地存储以及FusionStorage提供的虚拟存储空间统一管理,以虚拟卷的形式分配给虚拟机使用。  存储设备的能力、接口协议等差异性很大,存储虚拟化技术可以将不同存储设备进行格式化,将各种存储资源转化为统一管理的数据存储资源,可以用来存储虚拟机磁盘、虚拟机配置信息、快照等信息。用户对存储的管理更加同质化。 虚拟机磁盘、快照等内存均以文件的形式存放在数据存储上,所有业务操作均可以转化成对文件的操作,操作更加直观、便捷。 基于存储虚拟化平台提供的众多存储业务,可以提高存储利用率,更好的可靠性、可维护性、可以带来更好的业务体验和用户价值。 华为提供基于主机的存储虚拟化功能,用户不需要再关注存储设备的类型和能力。存储虚拟化可以将存储设备进行抽象,以逻辑资源的方式呈现,统一提供全面的存储服务。可以在不同的存储形态,设备类型之间提供统一的功能。 对于最终用户,就像x86服务器使用本地硬盘一样的方式使用,可以格式化,安装文件系统,安装操作系统,读写。同时,虚拟化的存储还具备快照能力,可以调整大小,这是物理硬盘不能实现的。 对于管理员来说,虚拟存储卷并不一对一映射到某块具体的磁盘,而是收敛到几台SAN设备。由于SAN设备已经有了可靠性保障,所以更换硬盘的工作量大规模下降。同时,虚拟存储具备瘦分配,灵活调整,QoS可限制,可迁移等等比物理盘强的特性,在整体成本方面优势很明显。  虚拟化网络 FusionCompute具备支持分布式虚拟交换,可以向虚拟机提供独立的网络平面。像物理交换机一样,不同的网络平面间通过VLAN进行隔离。  分布式虚拟交换机  分布式交换机的功能类似于普通的物理交换机,每台主机都连接到分布式交换机中。分布式交换机的一端是与虚拟机相连的虚拟端口,另一端是与虚拟机所在主机上的物理以太网适配器相连的上行链路。通过它可以连接主机和虚拟机,实现系统网络互通。另外,分布式交换机在所有关联主机之间作为单个虚拟交换机使用。此功能可使虚拟机在跨主机进行迁移时确保其网络配置保持一致。 FusionCompute带来的价值 提高资源利用率 资源共享 分时共享  提高业务可靠性 故障或维护时可以迁移到其他节点,不影响虚拟机其他业务。 FusionCompute规划部署 注意事项 安装FusionCompute时,需要满足一定的要求,才能保证正确安装。  要求 CPU支持硬件虚拟化技术,如Intel的VT-x,并已在BIOS中开启CPU虚拟化功能 内存 > 8G 硬盘 > 70G(VRM最小需求140G) 建议使用1、2号硬盘组RAID 1,用于安装主机操作系统,以提高可靠性 注意事项 安装过程不允许修改本地PC或便携的IP地址 安装FusionCompute时,要求已关闭本地PC的防火墙; 文件夹路径中不能包含中文字符,完整路径长度不超过256位; 环境搭建过程,不要随意对主机进行重启操作。 网络规划  BMC平面 主机BMC网口所使用的平面。通过BMC平面可远程访问服务器的BMC系统。 管理平面 用于管理系统统一管理所有节点,以及节点间内部通信所使用的平面。使用管理平面的IP地址包括: 所有主机的管理IP地址,即主机管理网口使用的IP地址。 管理节点虚拟机的IP地址。 存储设备控制器的IP地址。 存储平面 主机与存储设备的存储单元互通所使用的平面。使用存储平面的IP地址包括:  所有主机的存储IP地址,即主机存储网口使用的IP地址。 存储设备的存储IP地址。 业务平面 用户虚拟机业务数据在网络中使用的平面。 安装流程 安装CNA主机   1. 通过PXE方式批量安装主机  2. 通过ISO挂载手动安装单台主机 安装VRM   1. 可以使用FusionCompute安装工具虚拟化部署VRM  2. 可以在物理主机上挂载ISO方式手动安装VRM,过程同ISO手动安主机  虚拟化部署VRM逻辑视图  VRM主备部署在不同的CNA上,部署后VRM不能迁移  物理部署VRM逻辑视图  VRM部署在不同的物理服务器上 原文链接:https://blog.csdn.net/qq_46254436/article/details/105810195 
  • [技术干货] FunctionGraph+OBS+FRS+IVS实现人证核身
    FunctionGraph+OBS+FRS+IVS实现人证核身目录场景设计方案架构图方案设计云服务介绍环境准备开发流程1.客户端开发——上传图片/视频到OBS2.FunctionGraph函数代码开发3.下载OBS对象+Base64编码4.FRS活体检测5.IVS人证核身6.SMN发布结果消息7.客户端开发——SMN之HTTP(S)终端接口开发8.FunctionGraph函数整合实现效果部署测试示例工程一、场景设计客户通过页面上传人物照片、视频到OBS并触发FunctionGraph函数,函数调用FRS人脸识别服务判断是否为真人,如果是真人继续调用IVS人证核身服务校验身份真实性,最后通过SMN将结果消息发布出去。方案架构图![方案架构图]二、方案设计创建FunctionGraph函数,并为该函数配置OBS触发器,上传图片或视频到OBS后触发FunctionGraph函数,函数下载OBS对象并调用FRS进行活体检测,活体检测通过后函数再调用IVS进行人证核身,最后函数通过SMN发布人证核身结果消息。云产品提供服务作用OBS对象操作实现上传/下载 图片/视频FunctionGraph配置OBS触发器实现OBS上传时触发函数FunctionGraph创建Java函数创建Java语言的函数FRS活体检测对图片或视频进行动作/静默活体检测IVS认证核身标准版实现对上传的人脸图片进行身份验证SMN发送HTTP(S)消息实现将结果发送到HTTP(S)终端三、云服务介绍华为云OBS: 对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,使用时无需考虑容量限制,并且提供多种存储类型供选择,满足客户各类业务场景诉求。产品页面华为云FunctionGraph:函数工作流(FunctionGraph)是一项基于事件驱动的函数托管计算服务。通过函数工作流,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。产品页面华为云FRS:人脸识别服务(Face Recognition Service),能够在图像中快速检测人脸、分析人脸关键点信息、获取人脸属性、实现人脸的精确比对和检索。该服务可应用于身份验证、电子考勤、客流分析等场景。产品页面华为云IVS:人证核身服务(Identity Verification Solution)将用户本人与身份证信息关联起来,应用人脸识别与文字识别等技术,对接权威数据库,支持基于二要素(姓名、身份证)认证或三要素(人脸、姓名、身份证)认证,实现对身份真实性的精准核验。产品页面华为云SMN:消息通知服务(Simple Message Notification)为用户提供快速简便、稳定可靠、简化运维、高可扩展、安全可信的消息通知能力。最终用户可以通过HTTP、HTTPS、邮件、短信、触发函数执行、即时通讯工具等方式接收通知信息。华为云用户也可以在应用之间通过消息通知服务实现应用的功能集成,降低系统的复杂性。产品页面四、环境准备| 开发语言:Java| 开发环境:jdk1.8 maven3.6.3| 华为云环境:注册云账号,并完成实名认证五、开发流程| 分为客户端开发和FunctionGraph的Java函数开发。1、客户端开发--上传图片/视频到OBS华为云OBS服务控制台创建桶用来存储人脸图片或视频 如果涉及视频需要压缩上传,需要配置在线解压策略(具体桶中->数据处理>在线解压) 拿到OBS的maven依赖坐标,使用SDK开发上传OBS对象客户端,这里文件传到固定的文件夹下,并使用固定对象名命名,比如face。帮助文档上传对象方法代码参考public void uploadFile(MultipartFile multipartFile){ String endPoint = "https://终端节点"; String ak = "ak"; String sk = "sk"; //1.创建OBS客户端对象 ObsClient obsClient = new ObsClient(ak, sk, endPoint); //2.获取文件输入流 InputStream in = null; try { in = multipartFile.getInputStream(); //3.上传对象,后面根据该对象名下载对象,保持上传下载一致 PutObjectResult putObjectResult = obsClient.putObject("桶名", "对象名", in); System.out.println(putObjectResult); } catch (IOException e) { throw new RuntimeException(e); }finally { if (in!=null){ try { in.close(); } catch (IOException e) { throw new RuntimeException(e); } } } }2、FunctionGraph函数代码开发(1)FunctionGraph函数时序图(2)Java函数环境搭建创建maven项目,导入FunctionGraph提供的Runtime依赖 操作指导创建FunctionGraph Java函数,并配置OBS触发器。 3、下载OBS对象+Base64编码| 终端节点查询 | ak、sk获取从OBS下载对象并进行Base64编码,后面使用该Base64编码结果进行活体检测。导入OBS的Maven依赖。可以从SDK中心查询依赖坐标下载对象+Base64编码示例代码:public static String download() { //1.相关配置数据 String endPoint = "https://终端节点"; String ak = "ak"; String sk = "sk"; //2.创建ObsClient实例 final ObsClient obsClient = new ObsClient(ak, sk, endPoint); //对象名保持和上传对象名一致 ObsObject obsObject = obsClient.getObject("桶名", "对象名"); //3.读取对象内容 ByteArrayOutputStream bos = null; InputStream input = null; String imageStr = null; try { System.out.println("Object content:"); input = obsObject.getObjectContent(); byte[] b = new byte[1024]; bos = new ByteArrayOutputStream(); int len; while ((len = input.read(b)) != -1) { bos.write(b, 0, len); } //4.Base64编码 byte[] data = new byte[bos.size()]; data = bos.toByteArray(); imageStr = new String(Base64.encodeBase64(data)); System.out.println(imageStr); } catch (Exception e) { e.printStackTrace(); } finally { try { bos.close(); } catch (IOException e) { throw new RuntimeException(e); } try { input.close(); } catch (IOException e) { throw new RuntimeException(e); } } return imageStr; }4、FRS活体检测活体检测,判断图片或视频中的人物是否为真人活体。对Base64编码后的结果进行活体检测,图片使用静默活体检测,视频使用动作活体检测。以图片对应的静默活体检测为例,使用SDK开发。开通活体检测服务控制台 导入FRS的Maven依赖。可以从SDK中心查询依赖坐标静默活体检测示例代码://方法参数imageStr:人像图片Base64编码 public static DetectLiveFaceByBase64Response detectLive(String imageStr) { //1.配置基本信息 ICredential credential = new BasicCredentials().withAk("ak").withSk("sk"); FrsClient client = FrsClient.newBuilder() .withCredential(credential) .withRegion(FrsRegion.valueOf("区域")) // 选择服务所在区域,如华北-北京四: FrsRegion.valueOf("cn-north-4") .build(); //2.通过base64编码进行活体检测 DetectLiveFaceByBase64Request request = new DetectLiveFaceByBase64Request(); LiveDetectFaceBase64Req body = new LiveDetectFaceBase64Req(); body.withImageBase64(imageStr); request.withBody(body); DetectLiveFaceByBase64Response response = null; try { response = client.detectLiveFaceByBase64(request); System.out.println(response.toString()); } catch (Exception e) { e.printStackTrace(); } return response; }5、IVS人证核身这里用到IVS标准版(三要素)对图片中人物进行身份认证,这里用到的图片Base64是FRS活体检测返回的结果中的图片Base64编码。开通人证核身服务控制台 导入IVS的Maven依赖。可以从SDK中心查询依赖坐标人证核身标准版:使用身份证图片Base64、人像图片Base64进行认证,示例代码://方法参数imageStr:人像图片Base64编码 public static String ivsVerify(String imageStr) { //1.配置基本信息 ICredential credential = new BasicCredentials().withAk("ak").withSk("sk"); IvsClient client = IvsClient.newBuilder() .withCredential(credential) .withRegion(IvsRegion.valueOf("区域"))// 选择服务所在区域,如华北-北京四就是 FrsRegion.valueOf("cn-north-4") .build(); DetectStandardByIdCardImageRequest request = new DetectStandardByIdCardImageRequest(); IvsStandardByIdCardImageRequestBody body = new IvsStandardByIdCardImageRequestBody(); List listIvsStandardByIdCardImageRequestBodyDataReqData = new ArrayList<>(); listIvsStandardByIdCardImageRequestBodyDataReqData.add( new ReqDataByIdCardImage() .withIdcardImage1("身份证人像面图片Base64") .withFaceImage(imageStr) ); IvsStandardByIdCardImageRequestBodyData databody = new IvsStandardByIdCardImageRequestBodyData(); databody.withReqData(listIvsStandardByIdCardImageRequestBodyDataReqData); Meta metabody = new Meta(); //唯一标识此次请求的ID,用户自定义,不超过64位 metabody.withUuid(UUID.randomUUID().toString()); body.withData(databody); body.withMeta(metabody); request.withBody(body); String result = null; try { //2.调用服务 DetectStandardByIdCardImageResponse response = client.detectStandardByIdCardImage(request); System.out.println(response.toString()); //result取值:valid-成功;invalid-失败 result = response.getResult().getRespData().get(0).getVerificationResult(); } catch (Exception e) { e.printStackTrace(); } //3.返回人证核身结果 return result; }6、SMN发布结果消息这里用SMN向HTTP(S)终端发送消息,将人证核身结果发布到指定的URL地址。开通服务(创建主题+创建订阅)控制台 导入IVS的Maven依赖。可以从SDK中心查询依赖坐标SMN发布消息示例代码://方法请求参数msgContent:消息内容 public static void sendMsg(String msgContent){ String ak = "ak"; String sk = "sk"; //创建SMN客户端 ICredential credential = new BasicCredentials().withAk(ak).withSk(sk); SmnClient client = SmnClient.newBuilder() .withCredential(credential) .withRegion(区域)//如华北-北京四:SmnRegion.CN_NORTH_4 .build(); //创建请求 PublishMessageRequest publishMessageRequest = new PublishMessageRequest(); //创建请求体 PublishMessageRequestBody body = new PublishMessageRequestBody(); body.withMessage(msgContent); body.withSubject("主题"); publishMessageRequest.withTopicUrn("主题URN,可在控制台获取"); publishMessageRequest.withBody(body); //执行请求 PublishMessageResponse response = client.publishMessage(publishMessageRequest); System.out.println(response); }7、客户端开发--SMN之HTTP(S)终端接口开发HTTP(S)终端对应的URL接口需要根据type参数判断是确定订阅、消息或是取消订阅。接口示例代码:@PostMapping("/smn") //该接口完整地址就是创建时配置的终端地址 public void subscriptionConfirmation2(@RequestBody SubscriptionReq subscriptionReq,HttpServletRequest request,HttpServletResponse response){ System.out.println(subscriptionReq); try{ //1.获取参数,封装到MAP中 Map parameterMap = BeanUtils.describe(subscriptionReq); String signing_cert_url = parameterMap.get("signing_cert_url"); String signature = parameterMap.get("signature"); //2.检验消息签名 boolean flag = SmnUtil.isMessageValid(signing_cert_url, signature, parameterMap); //3.判断是订阅还是发布消息 String type = parameterMap.get("type"); if ("SubscriptionConfirmation".equals(type)){ //4.访问订阅确认页面 String map = restTemplate.getForObject(parameterMap.get("subscribe_url"), String.class); System.out.println(map); }else if ("Notification".equals(type)){ //5.消息,打印消息 System.out.println(parameterMap); }else{ //6.取消订阅 } }catch (Exception e){ e.printStackTrace(); } }接口接收请求参数实体类可参考:@Data //Lombok注解 public class SubscriptionReq { private String type; private String signature; private String subject; private String topic_urn; private String message_id; private String signature_version; private String message; private String subscribe_url; private String signing_cert_url; private String timestamp; }8、FunctionGraph函数整合在触发函数对应的方法中调用上面服务方法,实现认证核身认证流程。即在搭建的FunctionGraph Java函数项目中的TriggerTests.java中的apiTest方法中编写人证核身业务逻辑。TriggerTests代码:import java.util.HashMap; import java.util.Map; import com.huawei.services.runtime.Context; import com.huawei.services.runtime.entity.apig.APIGTriggerEvent; import com.huawei.services.runtime.entity.apig.APIGTriggerResponse; import com.huawei.utils.FrsUtils; import com.huawei.utils.IvsUtils; import com.huawei.utils.ObsUtils; import com.huawei.utils.SmnUtils; import com.huaweicloud.sdk.frs.v1.model.DetectLiveFaceByBase64Response; public class TriggerTests { //functionGraph函数触发方法 public APIGTriggerResponse apigTest(APIGTriggerEvent event, Context context) { //1.下载对象,并得到base64编码后结果 String imageBase64 = ObsUtils.download(); //2.活体检测 DetectLiveFaceByBase64Response response = FrsUtils.detectLive(imageBase64); Boolean alive = response.getResult().getAlive(); //3.人证核身 String msg = null; if (alive) { //活体检测成功 String result = IvsUtils.ivsVerify(response.getResult().getPicture()); //result取值:valid-成功;invalid-失败 msg = "valid".equals(result) ? "人证核身成功!是XXX本人。" : "人证核身失败!"; System.out.println(result+"--"+msg); //4.发送结果信息 SmnUtils.sendMsg(msg); } else { msg = "活体检测失败!"; System.out.println(msg); //发送结果消息 SmnUtils.sendMsg(msg); } Map headers = new HashMap(); headers.put("Content-Type", "application/json"); return new APIGTriggerResponse(200, headers, msg); } }六、实现效果1、部署测试将FunctionGraph Java函数对应项目打成jar包。参照帮助文档FunctionGraph创建Java函数,并配置OBS触发器(对应:开发流程->二、FunctionGraph函数代码开发->1、Java函数环境搭建)。FunctionGraph上传项目jar包到函数。通过开发的客户端上传图片或视频到OBS。在客户端刷新接收SMN消息的HTTP(S)终端接口,查看结果信息;查看FunctionGraph日志。 2、示例工程示例代码附件,待补充……
  • [公告] abcd这个那位ceshiceshiceshi
    ceshiceshiceshiceshiceshiceshiceshi
  • [热门活动] 未来云计算范式!快来Serverless函数速成班掌握前沿技能,Demo实操搞定小应用
    Serverless被誉为未来云计算范式各大厂商纷纷下场 人才缺口十分可观顺势而为掌握技能才是打工人的生存王道!所以,它来了!华为云DevRun-Serverless函数速成班活动已开启本次活动将通过开发者亲自动手实践场景化体验开发语音识别、数据处理、建站等助您快速熟悉和掌握Serverless核心技能和应用场景含金量多多、干货满满赶快动手提升自己吧>>>点我立即参与活动<<<一、此次速成班会做什么?Serverless对开发者有何价值?此次实战营会通过“场景化实操”的形式,通过学习Serverless和Function Graph赋能类课程、练习相关实践、开发Demo等,从应用开发场景出发、从基础到高阶实操,开发者动手实操体验Serverless开发全流程,侧重实操+案例开发,形成可视化的学习成果,可作为作品展示。Serverless是下一代默认的计算范式,将在未来5-10年内成为云的首要交付模式Serverless的价值:能够为应用屏蔽基础设施,提供自动化运行环境、随时按实际用量计费、免运维的能力随着云计算的发展,Serverless已被业界认定为下一代云计算范式,各厂商纷纷布局Serverless,开发者的关注度持续上升。在此背景下,针对华为云FunctionGraph函数计算服务,推出面向开发者的低中高阶课程,理论与实操结合,吸引开发者动手完成函数创建、测试、调用、debug调试,对FunctionGraph有进一步了解,完成函数应用的构建,场景化掌握核心技能。二、参加Serverless速成班需要准备什么?报名后,需首先实名认证(创建函数的必需条件哦)和领取云资源。(记得取消自动付费哦~)>>>实名认证并领取云资源,点击此处立即领取0元套餐(5人版)<<<<>>>实名认证并领取云资源,点击此处立即领取1.98元套餐(6人版)<<<<三、实战营内容本次Serverless函数速成班活动的学习和操作指导,都在这里哦~一站式学习和操作手册,加入即可立即学习~>>点我立即开始学习和实操<<四、Serverless速成班奖励1、总积分大于100分可获得华为云提供的个人专属结营证书(电子版)2、用户通过实战营获得学习积分,积分超过200者,可领取499元华为云考试代金券(限量200张,先到先得;账号需实名认证通过),自己只需支付1元即考取,原价500元的官方认证。活动须知 1、活动费用事宜(1)本次实战营中,请参与用户按照提示开通云资源,以免出现不必要的经济损失;(2)最终考试认证环节,考试费500元/人,对达到领取要求的用户,将发放499元/人的考试代金券,用户仅需支付1元即可参与华为云认证考试。2、开奖及奖品发放事宜(1)本次活动获奖名单届时将在本活动帖中公示,届时敬请关注相关信息。(2)您理解并同意,在适用的法律法规允许范围内,为确保奖品顺利发放,受限于奖品当时的库存状况等,华为有权对上述事项进行调整(如奖品以实际发放为准,价格不低于示例奖品)并向您提前告知。3、每位参加活动的用户理解并同意,活动主办方收集该等个人信息会转移给礼品发放的快递供应商公司负责具体执行礼品的邮递服务。收集的该等个人信息会自奖品寄出及发放结束后(为防止奖品遗失等突发情况)保留30个自然日用于邮寄快递服务、通过邮箱发放考券等,自该期限届满后,该等所有数据会被删除或者销毁,在主办方持有该个人数据期间,用户可以联系华为云按照法律规定履行数据主体的权利,包括但不限于撤销同意、请求删除、访问、查阅或者复制、更正或者补充、删除、知情权、决定权、您有权要求我们对您的个人信息处理规则进行解释说明。若需行使上述权利,联系方式请见《隐私政策声明》。4、为保证活动的公平公正,华为云有权对恶意刷活动资源(“恶意”是指为获取资源而异常注册账号等**活动公平性的行为),利用资源从事违法违规行为的用户收回奖励资格。本活动规则由华为云在法律规定范围内进行解释。华为云保留不时更新、修改或删除本活动规则的权利。上述更新、修改或删除于公布时即时生效,用户应当主动查阅本活动规则的最新内容;所有参加本活动的用户,均视为认可并自觉遵守《华为云用户协议》、《可接受的使用政策》、《隐私政策声明》、《华为云开发者生态隐私政策声明(补充华为云开发者学堂活动特别说明)》。相关服务等级协议(SLA),以及华为云服务网站规定的其他协议和政策(统称为“云服务协议”)的约束。云服务协议链接的网址:http://www.huaweicloud.com/declaration/sa_cua.html如果您不同意本活动规则和云服务协议的条款,请勿参加本活动。
  • [问题求助] cmake指定毕晟编译器,当make时候,出现F90-S-0038-Symbol, iargc, has not been explicitly declared
    F90-S-0038-符号,iargc,尚未明确声明
  • [存储] 发个帖测试一下会不会有积分
    发个帖测试一下会不会有积分
  • [热门活动] msame可以输出推理结果吗,如何看推理的top5准确率
    msame可以输出推理结果吗,如何看推理的top5准确率
  • [问题求助] 请问鲲鹏数学库的kml_blas的单线程不加锁版本和单线程加锁版本有什么区别呢?哪一个性能强一些?
    请问鲲鹏数学库的kml_blas的单线程不加锁版本和单线程加锁版本有什么区别呢?哪一个性能强一些?– 单线程不加锁版本:-L /usr/local/kml/lib/kblas/nolocking -lkblas – 单线程加锁版本:-L /usr/local/kml/lib/kblas/locking -lkblas 
  • [知识分享] 我用开天平台做了一个字符串检查API,hin 简单~~
    摘要:本文使用了工作台的API全生命周期管理和函数管理功能,编写字符串检查的函数,实现了API的快速创建和发布。本文分享自华为云社区《【我用开天平台做了一个字符串检查API》,作者:人类群星闪耀时。1 开天集成工作台概述根据华为官方文档的介绍,所谓的华为云开天集成工作台是基于华为在数字化转型中积累的丰富经验,为企业开发者提供基于元数据的可扩展的集成框架,降低了应用间集成工作量,并沉淀多种集成资产如连接器、业务模型、行业API等。它可以帮助客户快速建立SaaS应用之间的连接通道,打破信息孤岛与“烟囱式”架构,从而实现应用的快速构建和上线,持续提升用户体验。产品官方网址为 : cid:link_2 . 开天集成工作台总体架构示意图如下图所示:开天集成工作台使能伙伴的SaaS高效上云,与伙伴共建行业方案,共同沉淀和分享行业经验。开天集成工作台提供如下核心能力特征:(01)标准的数据模型管理:领域信息模型的采集、定义、管理能力,支撑在行业建立标准的领域信息模型库,行业内各厂家应用依托标准的领域信息模型进行互联互通。(02)灵活的API生命周期管理:支持合作伙伴的API设计、实施、测试、发布、运维、消费和运营,并可封装为便于编排的连接器和流。(03)可扩展的连接器管理:它是集成工作台流编排能力扩展的唯一方式,提供了丰富的预置连接器,用户还可以基于API自定义连接器。(04)可视化流管理:基于连接器,通过可视化的方式进行流式组合,实现集成流编排。扩展支持多种形式编排如流程编排,事件编排等。开天集成工作台产品优势如下:(01)丰富的行业经验:面向行业的业务模型库,拉通管理者、业务人员和IT人员。行业能力API化,覆盖工业、城市治理、教育、办公、Message、Map、移动应用等领域。SaaS应用间集成资产多样化,开箱即用,降低交付复杂度。(02)灵活易用地集成:基于标准业务模型的集成模式,每个应用只需集成一次,实现XYZ变成X+Y+Z。开放的连接框架,可灵活定义各种连接器和流,适配企业的业务逻辑。2 开天集成工作台用户和应用场景开天集成工作台是一个“开放、共生、智能、协同”的平台,它是搭建开发者、系统集成商、客户之间的“桥梁”和“纽带” 。具体来说,用户可以分为如下几种类型:(01)面向行业API开发者:一站式完成行业API设计、编排、测试、发布和消费,打造API商业经济。(02)面向行业应用开发者:以低代码或者零代码的方式,轻松构建面向行业的SaaS应用,加速业务创新。(03)面向系统集成商:和客户无缝对接,进行集成开发,交付项目和运维支持。同时,沉淀云上项目的集成资产,提升交付效率。(04)面向客户:企业集成资产的使用和管理,并联合生态资源如系统集成商等,完成企业数字平台建设。开天集成工作台的应用场景也非常丰富,主要可以分为三类应用场景:(01)行业能力开放场景,企业把自身能力以API服务的形式开放出来,通过API连接应用开发者、系统集成商等,服务更多的商业场景,快速形成产业链,从而让企业以最小代价满足客户碎片化且日益增长的需求。(02)使能行业应用创新场景,合作伙伴通过集成工作台提供的低代码/零代码的方式,可以方便使用各种资产如行业API、业务模型、连接器等,完成应用的开发和部署;它使能不同层级的开发者,极大增强企业应用的供给能力。(03)SaaS应用互联场景,企业应用建设随着业务发展逐步展开,势必要解决企业存量应用与新应用之间的协同,通过建立应用间的水管,让价值信息在企业内部及企业间流动。通过集成工作台,实现云上应用间、云上应用与企业内部应用间集成。具体可以用如下几张图来说明:3 字符串检查API快速构建先进入集成工作台的API生命周期管理的API分组,点击右上角新建分组,输入名称,描述。创建分组完成之后,点击API管理,进入我们刚才新建的分组下的API管理页面。进入API管理页面之后,我们可以先在右上角新建API,进入API创建页面。输入各项信息,按自己需要来。这里的认证模式可以按照自己需求来,这里为了简便选择了无认证(并不推荐),.之后点击下一步,自定义访问API的路径,以及请求方法,是否支持跨域,最底部的参数定义也非常重要,根据需要选择参数位置,名称,类型,可选项等。定义完参数之后如下图类似。点击下一步,定义后端服务,这里有三种选项,一种是后端服务也就是API接口,一种是在华为云定义的函数流图,一种是mock(本人并不太了解),这里我使用了华为云的函数流图。可以看到这里需要选择函数,但我们此时还没有函数可以选择,所以这里需要先创建函数。点击添加选项的弹出页的左上角创建函数,进入到函数创建页面。这里我们选择相关信息,选择事件函数,这里暂时使用不到委托,所以选择不使用任何委托,以及python3.x的环境运行时。当然这里我们可以看到按用量收费的提示,根据华为云的规则,在月请求次数在百万以上在进行收费,所以这里只是我们个人开发尝鲜使用还是不需要担心收费问题的。创建之后进入函数管理页面,在下方我们可以进行函数的编写,可以写上一个简单的字符串检查的函数。# -- coding:utf-8 --import jsonfrom collections import Counter#自定义函数def is_anagram(s1, s2):return Counter(s1) == Counter(s2)def handler (event, context):query=event.get(“queryStringParameters”)s1 = str(query[“word1”])s2 = str(query[“word2”])res = ‘%s and %s is an anagram of %s’ % (s1, s2, is_anagram(s1, s2))return {“statusCode”: 200,“isBase64Encoded”: False,“body”: res,“headers”: {“Content-Type”: “application/json”}}在这个handler这个预定义的函数中,以及它的两个定义形参,其中event是表示请求的各项信息,如body,headers等。(context暂时了解不多)。而至于其中的 queryStringParameters 这个键名,是根据华为云的文档中找到的,这个地方也是琢磨了许久,之前一直拿不到之前定义的query中的数据。可参看这里之后点击,设置,选择触发器,新建触发器。根据需要定义,只不过为了简便依旧选择了无认证。创建完成之后,可以得到一个调用url 的地址。复制该url,在浏览器中测试。得到结果。和我们定义的预料结果一致。此时函数工作流创建完成,我们回到之前的API创建页面。在urn选择页我们选择刚刚定义的函数流。并且在底部定义前后端函数映射。点击下一步,我们定义API相应成功还是失败的示例。到这里,API就创建完成了,我们可以直接点击发布API,并进入API的管理页面,可以查看到API的url,同理,我们可以在浏览器中测试使用。结果依旧没问题。
  • [高校开发者专区] nice
    通过这次HCSD集训营活动,我了解到DevOps这种开发模式能够通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。DevStar服务的“智 能OCR图像文字识别”模板站式生成应用代码井部署到函数工作流FunctionGraph,实现识别指定图片中的文字信息并显示在页面上,极大方便了我们地工作。VSS 键自动化扫描软件 包/固件,能够快速排查其中的开源软件, 安全配置等风险,使产品安全现状清晰明了。华为云DevCloud整个实验流程很顺利,在本次实验中使用了弹性云服务器,多种购买方式,多种计费方式适应了不同目标人群。在平台中添加服务器检查及代码检查功能十分便利,部署和构建时具有灵活的可视化操作。流水线的构建大大减少修改代码所需成本,节约人力与时间。通过本次实验,我对服务器建立,维护有了更深的了解。
  • [问题求助] haw-回收站发帖1111
    haw-回收站发帖1111haw-回收站发帖1111haw-回收站发帖1111
  • [问题求助] Java 调用APIG触发器的URL 怎么传参数(对象/类)
    Java 调用APIG触发器的URL 怎么传参数(对象/类)
  • [知识分享] CNCF Serverless工作流社区携手华为云FunctionGraph,开拓Serverless编排新时代
    本文分享自华为云开发者社区《[CNCF Serverless工作流社区携手华为云FunctionGraph,开拓Serverless编排新时代](https://blog.csdn.net/devcloud/article/details/123323056?spm=1001.2014.3001.5501)》,作者: 技术交流。 企业应用从微服务架构向Serverless(无服务器)架构演进,开启了无服务器时代,面向无服务器计算领域的Workflow也应运而生。CNCF为了给业界提供一种标准方法,建立100%由社区贡献者驱动的Serverless Workflow开源社区,携手社区伙伴,以更全面的规范、更丰富的元素,赋能企业产品化,并有效解决厂商锁定等问题,推进无服务器计算领域的发展。 华为云作为CNCF Serverless Workflow社区的官方合作伙伴,联合2012实验室华为元戎团队在函数工作流优化、版本兼容等多方面提供了优质高效的改进建议。在2021年10月的KubeCon NA 2021(North America)活动中,Tihomir Surdilovic社区领导人介绍了CNCF Serverless Workflow的开源合作伙伴,华为是2021年度CNCF Serverless Workflow 社区贡献排名榜前五中唯一的国内厂商。 # 工欲善其事,必先利其器 许多Serverless应用程序是由系列函数组成,这些函数可能会根据不同的事件触发器依次执行、并行执行或在分支中执行,我们称之为函数工作流。为了使Serverless 平台正确执行 Serverless 应用程序的函数工作流,应用程序开发人员需要对系列函数进行编排,如何支持应用开发人员简单快速进行函数编排,需要定义一套完整、易用的工作流规范。 就像在微服务架构中,只需要编写Workflow定义的JSON,就可以完成对不同业务流程的调度、编排与自动化,同时国际工作流管理联盟(Workflow Management Coalition,WfMC)还对微服务的Workflow定义了一套完整的参考规范,以使不同厂商的微服务工作流产品之间可以平滑地交换工作单元。 当下,Serverless大行其道,各个大厂纷纷下场布局。Workflow作为其工具链中的一部分,每个厂商都有一套自己的服务接口,当某一厂商暂停服务或者用户想要更换厂商时,这种各自为政的模式导致用户陷入被厂商锁定、移植困难、成本高甚至需要重构系统的艰难境地。 因此,如同WfMC为微服务的Workflow定义参考规范一样,Serverless Workflow也急需一种完整的标准方法和参考规范来打破各大厂商闭门造车的局限。 # 集众人之长,成Serverless之利 为了给业界提供一种标准方法,CNCF在2020年7月成立了Serverless Workflow 社区,与社区贡献者一起共同构建、完善Serverless Workflow 规范,以促进Serverless应用程序在不同厂商平台之间的可移植性。该社区的开源项目包括:基于DSL的工作流规范、为编程语言提供SDK等,同时与CNCF其他项目也有深度的合作,比如CloudEvents, OpenAPI等。 CNCF Serverless Workflow规范针对无服务技术领域,所以关注点会在事件驱动应用、函数或微服务。CNCF Serverless Workflow规范是一种用于微服务、事件和函数编排的工作流语言规范,可以通过YAML或JSON的格式描述和定义工作流,具有以下优势: **基于通用的、声明式的思想提炼语言,更容易表达** 目前,工作流语言分为四个类型(如下图所示),CNCF Serverless Workflow 规范是一种基于通用的、声明性的思路提炼出的工作流规范,且支持通过YAML或JSON的格式描述和定义工作流,更容易表达像functions, events, retries这些无服务器技术领域的元素。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/11/1646965859396789931.png) 四类工作流语言 **支持强大的、业界通用的控制流逻辑** CNCF Serverless Workflow规范本身提供了非常强大的控制流逻辑,包括了大多数业界支持的核心功能,如顺序执行,以便用户可以定义流水线。在顺序执行的基础上,用户也可以定义并行的执行,如并行调用函数或微服务。另外,也支持使用不同种类的循环结构执行数据库循环调用之类的工作流。此外,重试、错误处理、工作流的手工干预,还有诸如等待和恢复之类的标准能力都被CNCF Serverless Workflow的规范所支持。 为解决实践中业务级的问题,CNCF Serverless Workflow规范增强了诸多重要功能: - 自动重试、密钥和常量; - 定义可插拔的表达语言,以便用户可以插入自己选择的表达语言; - 不同类型的超时,如全局超时或分支超时等; - 短时和长时工作流的支持; - 工作流执行期间的补偿处理,如撤销已经成功完成的工作或状态; - 休眠,如等待某种事件或状态。 此外,CNCF Serverless Workflow规范还提供了继续属性的功能,针对工作流在达到云平台运行限制后被迫停止,用户可以编排继续属性,停止当前工作流实例,启动新的工作流实例执行停止前的状态。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/11/1646965893608337803.png) 工作流逻辑说明图示 **提供自定义拓展能力** 除了上述核心的控制流逻辑,CNCF Serverless Workflow规范也提供了自定义扩展能力。目前社区规范提供两个拓展:关键性能指标和限流。 用户可以通过关键性能指标的扩展能力(如工作流的整体指标、事件的消费与生产指标、函数使用指标、工作流状态指标等)定义工作流,使用自定义指标衡量工作流的性能,对性能和成本进行增强。此外,用户也能够通过限流的拓展能力对调用进行速率的限制,这在无服务器领域尤为重要,比如函数调用并发的限制、调用事件数量的限制、工作流状态总数的限制、工作流执行期间转换的限制等。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/11/1646965910661213058.png) 拓展能力说明图示 **功能更全面,能支持更多复杂场景** CNCF Serverless Workflow Specification支持更多元素,比如:CloudEvent、OpenAPI、AsyncAPI、GraphQL、gRPC等开源事件和服务标准的集成。 - **在功能方面**,支持建模人工决策、定义超时和重试、定义并行执行逻辑和循环、做出基于数据或事件的决策、定义回调、编写强大的表达式、设置秘密和常量等。 - **在应用方面**,支持广泛的复杂场景,比如:网上车辆拍卖、网上订餐、付款处理、数据分析、错误通知、持续集成和部署等。 所以CNCF Serverless工作流规范更加全面,能支持更多复杂场景,也具备产品化更多新特性的潜力。基于CNCF Serverless Workflow 规范本身的优势,不仅能有效避免厂商锁定,也能助力企业创新。目前,已有国内外企业关注并使用此规范产品化。 # CNCF群策群力,华为云竭诚尽智 从KubeCon NA 2021大会发布的各项数据可以看出,当前社区处于初期快速的成长阶段。2021年全年,10多家不同公司参与社区贡献,社区整体取得了显著的成就,工作流规范也已更新至0.8版本。 社区在2021全年总共有500合入的PR、2K commits, CNCF Serverless Workflow Specification有超过200个新星关注的增长,去年实现了新星关注的100%增长,同时,社区的各类社交平台也受到广泛关注。在2021年KubeCon EU大会中,共计300+人参与CNCF Serverless Workflow项目的办公时间;190+人参加了2021年KubeCon NA北美大会社区项目的办公时间。 作为社区官方合作伙伴,以及CNCF Serverless Workflow的开源合作伙伴,华为云联合2012实验室华为元戎团队,提供持续的技术能力支撑,主要贡献包括: 1. Action支持重试和错误处理已合并到0.7版本; 2. 支持分支内部进行编排的想法,已被社区采纳,并规划在0.9版本中实现; 3. 发现并提出规范版本之间兼容性不足的问题,社区确认从0.8版本之后会确保向后兼容; 4. 帮助社区在0.7和0.8版本的发布做出了贡献,包括审查与规范相关的设计文档,审阅社区新提交的PR(拉取请求)和Issue. 作为 CNCF Serverless Workflow 社区官方合作伙伴,华为云与社区伙伴携手并进,共同推动无服务器计算领域的发展。 # FunctionGraph Workflow——更上一层楼 在繁荣向上的社区生态中,华为云以CNCF Serverless Workflow 规范为标准,联合2012实验室华为元戎团队共同打造了华为云FunctionGraph Workflow,为用户提供函数流管理功能,并支持可视化拖拽式的函数编排。 在使用FunctionGraph Workflow时,用户无需进行二次开发,只要通过可视化拖拽的方式,即可将多个独立的无服务器函数用顺序、分支、并行等方式轻松快速地编排一个完整的应用。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/11/1646965964800553157.png) FunctionGraph Workflow 可视化编排示意图 同时,FunctionGraph Workflow提供监控和管理平台,用于诊断和调试应用,支持跟踪每次执行的状态,执行中的输入输出等,快速定位故障,用户可以轻松配置重试,处理异常分支。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/11/1646965988447346390.png) FunctionGraph Workflow 监控管理平台示意图 目前,FunctionGraph Workflow 已应用于事务型业务流程编排、多媒体文件处理、数据处理流水线等场景。面向未来,华为云期望通过不断的技术突破,将华为云开源引擎打造为 CNCF Serverless Workflow 社区的默认实现,形成应用社区 Serverless Workflow规范产品化案例,并在社区内部共享。
  • [热门活动] 【华为伙伴暨开发者大会·技术宝典】云上开发图片压缩神器
    参与活动前请先报名华为伙伴暨开发者大会技术前瞻【点击报名】 活动奖励:奖励一:勇往直前进阶等级 LV+1 级奖励二:在所有完成技术宝典任一任务的用户中抽取40个幸运奖,奖品为文件收纳包。 活动时间:5月23日-6月30日 参与方式:开发者需按照>>操作指导手册<<完成实验,将实验结果截图回复至活动帖内,视为完成任务。注:1、截图务必将右上角华为云账号截进去;2、须同时提交输入桶和输出桶两张桶对象信息的截图。 活动规则:回复非示例要求图片或其他无效信息,视为无效楼层,并取消抽奖资格。全部活动结束后,将符合抽奖条件的用户名单导入至巨公摇号平台(https://www.jugong.wang/random-portal/)内,抽取40个幸运奖,并截屏公示抽奖过程。如您不同意此抽奖规则,请勿参加本次活动。 Tips:1、请务必使用个人账号参与活动(IAM、企业账号等账号参与无效)。2、所有获得奖项的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。3、收货信息填写说明:1)为保证您顺利领取活动奖品,请您提前填写奖品收货信息,如您没有填写,视为放弃奖励。收货信息请【点击此处填写】2)填写时间截至2022年7月10日3)在华为伙伴暨开发者社区活动中完成一次填写即可。我们最终将会按照您填写的信息发放奖励。4、活动规则请戳https://bbs.huaweicloud.com/forum/thread-180208-1-1.html
总条数:237 到第
上滑加载中