华为云用户手册

  • 原因分析 由提示信息可知,解决方案中引入了程序集“Microsoft.Office.Interop.Word”,但构建时环境中不具备此程序集,导致编译告警,如果项目代码中使用了此引用,甚至会直接导致失败。 通常情况下,此类程序集默认安装于本地系统,无需指定程序集位置,VS构建时会从默认配置的几个程序集路径查找,可以构建成功;而云端构建环境对应目录无此程序集,进而导致本地与云端构建不一致。 为解决此类场景,Msbuild集成了NuGet,可以在构建时从远程仓库下载对应程序集,此时只需于项目中指定“packages.config”,并于其中声明依赖的程序集即可。 特殊情况下,项目引用的程序集可能无法在远程仓库找到,此时需要手工保存程序集至代码仓库中,并显示指定程序集路径。
  • 问题现象 构建告警: warning MSB3245: 未能解析此引用。 未能找到程序集“Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL”。请检查磁盘上是否存在该程序集。 如果您的代码需要此引用,则可能出现编译错误。
  • Gradle Wrapper使用教程 在本地环境中,进入代码根目录,执行gradle wrapper命令。命令执行完毕后,可以发现代码仓库中新增了以下文件: gradlew (Unix Shell 脚本) gradlew.bat (Windows批处理文件) gradle/wrapper/gradle-wrapper.jar (Wrapper JAR文件) gradle/wrapper/gradle-wrapper.properties (Wrapper属性文件) 提交代码到代码仓库。 修改构建任务中命令行里的语句,将gradle替换成./gradlew,如将gradle build替换为./gradlew build。
  • 处理方法 网络异常导致,可以通过以下方法处理: 重试确认是否能解决,如果拉取失败的镜像是dockerHub镜像且重试无法解决,可参考拉取dockerHub镜像超时或失败。 如频繁出现或重试仍然失败请联系客服。 镜像不存在:请确保镜像已经上传至镜像仓,且镜像名称、镜像版本正确。 镜像为私有镜像:请将镜像设置为公开,或者先执行 docker login 鉴权通过后再执行 docker pull 操作。
  • 处理方法 避免javadoc的检查,在项目根目录下的Gradle下面就要添加如下配置: allprojects { repositories { jcenter() } tasks.withType(Javadoc) { options.addStringOption('Xdoclint:none', '-quiet') options.addStringOption('encoding', 'UTF-8') } }
  • 处理方法 可以在命令行中的gradle命令后加上-xlint参数,跳过lint检查。如: /bin/bash ./gradlew assembleDebug -Dorg.gradle.daemon=false -d --stacktrace -xlint 或 gradle assembleDebug -Dorg.gradle.daemon=false -d --stacktrace --init-script /root/.gradle/init.gradle -xlint
  • 问题现象 执行过构建任务日志报错信息如下: Caused by: org.gradle.internal.resource.transport.http.HttpErrorStatusCodeException: Could not GET 'https://jcenter.bintray.com/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.pom'. Received status code 504 from server: Gateway Time-out
  • 原因分析 分析日志可知,项目中引用了“com.sun.jersey.api.client.config”包下面的内容,但构建时无法从项目中以及所有解析出的依赖包中找到此包导致。导致此结果的原因一般有两大类: 代码问题:代码中包引用不正确,此类问题较易排查,如有遇到可优先排查代码。 环境/组件问题:依赖包损坏或不一致,此类问题常表现为本地可编译而云端构建失败;此章节主要为此类问题提供一些可能的解决方案。其中可能的环境/组件问题有: 依赖包冲突 依赖范围错误 使用GAV模式上传依赖包 依赖包损坏 其他
  • 依赖包损坏 依赖包损坏可能会导致依赖包中某些文件缺失,此时构建可以找到相应依赖包,但无法找到其中的class文件或者package,导致此类问题。此场景下可按包类型分不同方式处理: 第三方依赖包:直接联系技术支持处理。 自研(手动上传到Maven私有仓库)的依赖包,按如下步骤排查: 从Maven私有依赖仓库下载依赖包。 解压缩并查看依赖包内容是否正常。 若依赖包内容异常,再分两种情况排查: 如果是第三方提供的包手动上传到maven私有依赖仓库,确认包文件无误并尝试重新上传(注意同时上传pom与jar文件)。 如果是自己构建(本地/云端构建)的依赖包,且已确认代码无误,则检查是否是多任务同时构建导致构建生成jar包内容缺失。
  • 依赖范围错误 使用Maven管理依赖时,Maven坐标中scope属性定义了依赖的有效范围。错误地指定依赖范围会导致该依赖在compile时无效,如果此时在项目主代码中使用了此依赖中的包,则会导致编译错误。处理步骤: 使用mvn dependency:tree查看项目使用的依赖及依赖范围。 对比依赖范围以及项目中使用依赖的位置。 若在主代码中使用了依赖中的包,且要求依赖在编译时有效,则依赖的范围需要为以下之一: compile provided system:系统依赖范围必须通过systemPath指定依赖文件位置,且依赖文件必须存在于指定目录。
  • 问题现象 异常信息如下: 1 [ERROR] The goal you specified requires a project to execute but there is no POM in this directory (/xxx/slavespace/slave3/workspace/job_4a1d5be4-b273-4ac8-8d5d-2ee583e71832_1544498089095). Please verify you invoked Maven from the correct directory.
  • 处理方法 配置“Maven构建”构建步骤,展开“发布依赖包到CodeArts私有依赖库”,选择“配置所有pom”。 不配置pom:表示无需发布私有依赖包到CodeArts私有依赖库。 配置所有pom:表示在项目下所有“pom.xml”文件增加deploy配置,使用mvn deploy命令将构建出的依赖包上传到私有依赖仓库。 在命令窗口,使用“#”注释掉第8行的默认命令,并删除第18行命令前的“#”。 配置完成后执行构建任务。执行成功后即可将依赖包发布到私有依赖库。
  • 问题现象 使用Maven等工具构建时,通常会依赖特定的构建文件,如:pom.xml文件等。如果工具找不到相应的构建文件,则会失败并报“xxx工程找不到xxx文件”此类错误,常见的错误信息如下: 工具 构建文件 错误信息 Maven pom.xml The goal you specified requires a project to execute but there is no POM in this directory (). Please verify you invoked Maven from the correct directory Ant build.xml Buildfile: build.xml does not exist! NPM package.json npm ERR! enoent ENOENT: no such file or directory, open '/package.json' Yarn package.json error Couldn't find a package.json file in ""
  • 处理方法 确定target目录下有war包,只是名字可能不是“bb.war”。 这种情况下修改构建包路径为“**/target/*.war”,正则匹配war包。 无法确定target目录下有哪些文件。 在构建执行的步骤shell里最后增加“ls -al target”,再次执行构建,就会打印出target目录下的所有文件。找到需要的文件位置后,再重写构建包路径配置。 如果构建结果不在workspace目录(构建命令在workspace目录或其子目录下执行),则在下一个Action中将丢失此构建包,因此需要提前拷贝构建包到workspace目录,如: mv /usr/bin/nginx ./。 相关构建步骤:上传软件包到软件发布库。
  • 如何使用构建并发包 本节以用户当前使用X86/ARM 2U8G规格的执行机,且购买的套餐中默认单个构建任务并发执行数为5个为例。 当用户购买5个X86/ARM 2U8G并发包后,可以扩展租户下同时执行构建任务的并发数量到10个。无需任何配置,在达到默认执行资源上限后,自动使用已购买的4U8G并发包资源。 当用户购买5个X86/ARM 8U16G并发包后,可以扩展租户下同时执行构建任务的并发数量到10个,因执行机规格不同,需要进行配置方可使用,使用场景及配置方法见下方说明: 场景一:用户仅使用图形化构建,购买8U16G规格的并发包后,即可在“构建环境配置”中配置使用高规格执行机。操作步骤如下: 参考配置构建环境配置执行主机。 参考图1进行配置,其中需要在“选择配置”下拉框,选择购买的执行机。 图1 配置高规格执行机 场景二:BuildFlow中共配置了10个子任务,默认单个构建任务并发执行数为5个,为了追求更高的执行效率,用户选择购买5个8U16G并发包,即使用5个默认执行资源,使用5个并发包资源。用户在使用并发资源的这5个任务的yaml文件中配置资源池即可。执行机代码配置示例如下: env: resource: type:docker # 资源池类型:配置docker arch:X86 # 构建环境主机类型:X86 class:8U16G # 购买的执行机规格 pool:Mydocker #资源池名称 用户使用自定义执行机执行构建任务,单个构建任务并发执行数为10个,若想提升并发执行数,只需购买所需数量的自定义执行机并发包。 父主题: 通用构建问题
  • 问题现象 执行构建任务时,拉取dockerhub镜像超时/次数限制,日志报如下异常信息: Error response from daemon: Get https://registry.docker-cn.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 或 toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
  • 处理方法 进入编译构建服务首页。 选择对应的构建任务,单击任务所在行的,单击“编辑”。 在“构建步骤”页面编辑“制作镜像并推送到SWR仓库”。 单击“管理 IAM 账号”。 单击“新建扩展服务点”,选择“IAM账户”。 在弹出的窗口中填写参数信息。 Access Key Id和Secret Access Key获取方式如下: 单击页面左上角“控制台”。 单击页面右上角账号名称,选择“我的凭证”。 单击“访问密钥”。 单击“新增访问密钥”,填写相关描述,单击“确定”。 在弹出的窗口中单击“立即下载”,可将密钥信息下载到本地。 步骤4中的IAM账号选择步骤6中新建的服务扩展点。
  • 处理方法 进入编译构建服务首页。 选择对应的构建任务,单击任务所在行的,单击“编辑”。 在“构建步骤”页面编辑“NPM构建”。 在NPM构建步骤里,添加如下命令,修改Npm镜像仓地址: 1 npm config set registry https://repo.xxcloud.com/repository/npm/ 或 npm config set registry https://registry.npm.taobao.org 单击“保存并执行”,重新执行构建任务。
  • 问题现象 执行Npm构建任务时,日志报如下异常信息: Downloading binary from https://github.com/sass/node-sass/releases/download/v4.14.1/linux-x64-72_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.14.1/linux-x64-72_binding.node": read ECONNRESET ... npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-sass@4.14.1 postinstall: `node scripts/build.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-sass@4.14.1 postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
  • 问题现象 执行Npm构建任务时,日志报如下异常信息: Module Error (from ./node_modules/@vue/cli-plugin-eslint/node_modules/eslint-loader/index.js): ***//public/LodopFuncs.js 79:25 error 'getCLodop' is not defined no-undef 80:27 error Empty block statement no-empty 89:21 error 'CLODOP' is not defined no-undef
  • 各服务支持的DDoS攻击类型 表2 DDoS防护支持的业务类型 DDoS攻击类型 DDoS原生基础防护(Anti-DDoS流量清洗) DDoS原生高级防护 DDoS高防 畸形报文 √ √ √ 传输层DDoS攻击 √ SYN Flood攻击(小包攻击)防御效果一般,推荐使用DDoS原生高级防护或DDoS高防。 √ √ DNS DDoS攻击 × × √ 连接型DDoS攻击 × 仅全力防高级版支持 √ Web应用层DDoS攻击 × × 推荐使用华为云“DDoS原生高级防护+云模式WAF(ELB接入)”联动防护。 √ √:表示支持。 ×:表示不支持。
  • 功能特性 DDoS原生高级防护支持以下防护功能: 透明接入 无需修改 域名 解析、设置源站保护,可以直接对华为云上公网IP资源进行防护。 全力防护 华为云根据当前区域下DDoS本地清洗中心的网络和资源能力,尽可能帮助您防御DDoS攻击。全力防护的防护能力随着华为云网络能力的不断提升而相应提升。 联动防护 开启联动防护后,可自动联动调度DDoS高防对DDoS原生高级防护对象中的云资源进行防护。 IPv4/IPv6双协议防护 支持同时为IPv6和IPv4两种类型的IP提供防护,满足您对IPv6类型业务防护需求。 流量清洗 DDoS原生高级防护检测到IP的入流量超过设置的阈值时,触发流量清洗。 IP黑白名单 通过配置IP黑名单或IP白名单来封禁或者放行访问DDoS原生高级防护的源IP,从而限制访问您业务资源的用户。 协议封禁 根据协议类型一键封禁访问DDoS原生高级防护的源流量。例如,访问DDoS原生高级防护的源流量如果没有UDP(User Datagram Protocol,用户数据报协议)业务,建议封禁UDP协议。
  • 什么是DDoS原生高级防护? DDoS原生高级防护(Cloud Native Anti-DDoS,CNAD)是华为云推出的针对华为云E CS 、ELB、WAF、EIP等云服务直接提升其DDoS防御能力的安全服务。DDoS原生高级防护对华为云弹性公网IP生效,通过简单的配置,DDoS原生高级防护提供的安全能力就可以直接加载到云服务上,提升云服务的安全防护能力,确保云服务上的业务安全、可靠。 DDoS原生防护-全力防高级版只能防护专属EIP。 您可以提交工单联系DDoS防护团队开通专属EIP购买权限。
  • 业务规格 各版本每个实例支持的业务规格说明如表1所示。 表1 DDoS原生高级防护业务规格 规格 DDoS原生标准版 DDoS原生防护-全力防基础版 DDoS原生防护-全力防高级版 原生防护2.0 计费模式 包年包月 包年包月 包年包月 包年包月+按需计费 带宽类型 云原生网络,多线BGP。 云原生网络,全动态BGP(不支持静态BGP)。 云原生网络,多线BGP。 云原生网络,全动态BGP(不支持静态BGP)。 防护能力 20G 共享全力防护,不低于20G。 共享全力防护,最高可达1T。 中国大陆:共享全力防护,不低于20G。 中国大陆外:运营商跨境防护。 防护IP数 1个 范围为50~500,且防护IP数必须设置为5的倍数。 范围为50~500,且防护IP数必须设置为5的倍数。 50-1000个,且防护IP数必须设置为50的倍数。 防护次数 10次(超过10次后将不再防护)。 不限次数 不限次数 不限次数 IP更换次数 5次,防护包中IP每天可以更换一次,每月更换5次。 不支持 不支持 不支持 业务带宽 默认提供100Mbps业务带宽。 最低100M,最大支持上限20,000Mbps。 最大支持10,000Mbps。 最大支持20,000Mbps。
  • 防护配额限制 DDoS原生高级防护 标准版:每个实例支持防护1个EIP,防护10次,IP支持更换5次,业务带宽100Mbps。 全力防基础版:每个实例最大支持防护500个全动态BGP EIP,业务带宽最大支持20000Mbps。 全力防高级版:每个实例最大支持防护500个DDoS防护专属EIP,业务带宽最大支持10000Mbps。 原生防护2.0:中国大陆每个实例最大支持防护1000个EIP,业务带宽最大支持20000Mbps(也可按需计费);中国大陆外每个实例最大支持防护500个EIP。 DDoS高防 DDoS高防 防护区域为中国大陆:域名接入模式下每个实例最大支持防护200个域名,业务带宽最大支持2000Mbps,最大防护带宽1000Gbps;IP接入模式下每个实例最大支持500个转发规则,最大防护带宽1000Gbps,业务带宽最大支持2000Mbps。 防护区域为中国大陆外:域名接入模式下每个实例最大支持防护200个域名,业务带宽最大支持2000Mbps;IP接入模式下每个实例最大支持200个转发规则,业务带宽最大支持2000Mbps。 DDoS高防国际版:每个实例最大支持防护50个域名和50个转发规则,业务带宽最大支持5000Mbps。 DDoS调度中心:每个调度规则支持10个IP调度,每个用户最大支持500个调度规则。 DDoS解封中心:最大支持3Gbps带宽的业务,每月最大支持100次解封配额(每天分配4个),购买配额后不能升级规格,不能重复购买。
  • 防护对象限制 子服务 服务版本 防护对象 防护区域 DDoS原生基础防护(Anti-DDoS) 免费使用 支持防护华为云EIP。 EIP所在区域。 DDoS原生高级防护 标准版 支持防护华为云EIP。 云资源所在区域,不支持多区域(Region)防护。 全力防基础版 支持防护华为云全动态BGP EIP。 云资源所在区域,不支持多区域(Region)防护。 全力防高级版 支持防护华为云DDoS防护专属EIP。 云资源所在区域,不支持多区域(Region)防护。 原生防护2.0 防护区域为中国大陆:支持防护华为云全动态BGP EIP和DDoS防护专属EIP。 防护区域为中国大陆外:支持防护华为云优选BGP EIP和DDoS防护专属EIP。 防护区域为中国大陆:支持多区域(Region)防护。 防护区域为中国大陆外:当前仅支持香港、新加坡。 DDoS高防 DDoS高防 支持防护域名和独享高防IP。 无区域限制。 DDoS高防国际版 支持防护域名。 无区域限制。
  • 黑洞解封限制 黑洞是指服务器(云主机)流量超出基础防御阈值时,华为云将屏蔽服务器(云主机)的外网访问。 对进入封堵状态的防护IP,您可以使用自助解封功能提前解封黑洞,具体解封方法请参考自助解封封堵IP。 对于同一防护IP,当日首次解封时间必须大于封堵时间30分钟以上才能解封。解封时间=2(n-1)*30分钟(n表示解封次数)。 对于同一防护IP,如果上次解封时间和本次封堵时间间隔小于30分钟,则本次解封时间的间隔=2n*30分钟(n表示解封次数)。 如果您在30分钟内解封过其他任一IP,即使满足以上条件,也不能对该IP进行解封。 DDoS防护会根据风控自动调整自助解封次数和间隔时长。 仅支持100次/月解封配额,每天分配4个配额。
  • 服务版本差异 表1 服务版本差异 产品 DDoS原生基础防护 DDoS原生高级防护 DDoS高防 计费类型 免费 包年包月,支持干净流量按需计费。 包年包月,支持“保底+弹性”防护带宽。 防护对象 华为云内EIP 华为云内EIP 中国大陆:互联网可访问域名 中国大陆外:互联网可访问域名或IP端口 接入模式 透明接入,华为云原生网络防护,时延低。 透明接入,华为云原生网络防护,时延低。 DNS牵引接入或IP接入,多线BGP,防护能力强。 防护能力 中国大陆:不高于5Gbps 中国大陆外:不高于500Mbps 20Gbps到1Tbps,不同实例规格防护能力不同。具体请参见表2。 1TBps 不同接入类型实例不可混用,具体请参见表3。 防护攻击类型 畸形报文、SYN Flood攻击等传输层DDoS攻击。 畸形报文、SYN Flood攻击等传输层DDoS攻击、 连接型DDoS攻击(仅全力防高级版支持)。 畸形报文、SYN Flood攻击等传输层DDoS攻击、 连接型DDoS攻击、DNS DDoS攻击、Web应用层DDoS攻击。
  • 实例规格差异 表2 DDoS原生高级防护实例规格 项目 标准版 全力防基础版 全力防高级版 原生防护2.0 计费类型 包年包月 包年包月 包年包月 实例为包年包月计费。 业务带宽支持包年包月和按需计费。 防护对象 华为云EIP 华为云EIP DDoS防护专属EIP 中国大陆:全动态BGP EIP、DDoS防护专属EIP 中国大陆外:优选BGP EIP、DDoS防护专属EIP 防护区域 单区域防护 单区域防护 单区域防护 中国大陆:支持多区域防护。 中国大陆外:当前仅支持香港、新加坡。 支持协议 IPv4、IPv6 IPv4、IPv6 IPv4 IPv4、IPv6 对象数量(每个实例) 1个 50-500个 50-500个 50-1000个 业务带宽 100Mbps 100Mbps-20Gbps 100Mbps-10Gbps 100Mbps-20Gbps 防护能力 20Gbps 共享全力防护,不低于20Gbps,最高可达数百Gbps。 共享全力防护,最高可达1Tbps。 中国大陆:共享全力防护,不低于20Gbps。 中国大陆外:运营商跨境防护。 表3 DDoS高防实例规格 项目 DDoS高防-网站类 DDoS高防-IP接入 DDoS高防-国际版 计费类型 包年包月 包年包月 包年包月 防护对象 互联网可访问的域名 互联网可访问的IP端口 互联网可访问的域名或IP端口 防护区域 中国大陆、中国大陆外 中国大陆、中国大陆外 海外 支持协议 中国大陆:IPv4、IPv6 中国大陆外:IPv4 中国大陆:IPv4、IPv6 中国大陆外:IPv4 IPv4、IPv6 对象数量(每个实例) 最大200个域名 最大500个转发规则 最大50个域名和50个转发规则 业务带宽 最大2000Mbps 最大2000Mbps 最大5000Mbps 弹性业务带宽 支持 支持 不支持 防护能力 1Tbps 1Tbps 50Gbps-无上限全力防护 QPS 最大100000QPS - -
  • 计费示例 假如您在2024/05/22 9:59:30购买了1个中国大陆区域原生防护2.0实例并选择了流量按需计费,除购买时需要支付原生防护2.0基础费用外,次日还会生成按需计费的干净流量账单。 干净流量计费周期为2024/05/22 9:59:30到2024/05/23 01:00:00。 您需要为该计费周期内产生的干净流量付费。 干净流量费用=干净流量×流量单价 具体流量单价请参见价格计算器。 例如,上述计费周期内产生了200TB干净流量,则干净流量费用计算过程如下。 图1 费用计算示例 图中价格仅供参考,实际计算请以实际价格为准。
共100000条
提示

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