云服务器内容精选

  • 包年/包月资源 对于包年/包月计费模式的资源,例如包年/包月的制品仓库服务、包年/包月的云硬盘等,用户在购买时会一次性付费,服务将在到期后自动停止使用。 如果在计费周期内不再使用包年/包月制品仓库服务,您可以执行退订操作。制品仓库服务套餐、资源扩展支持退订。系统将根据资源是否属于五天无理由退订、是否使用代金券和折扣券等条件返还一定金额到您的帐户。详细的退订规则请参见云服务退订规则概览。 如果您已开启“自动续费”功能,为避免继续产生费用,请在自动续费扣款日(默认为到期前7日)之前关闭自动续费。
  • 续费相关的功能 包年/包月制品仓库服务续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年/包月制品仓库服务从购买到被自动删除之前,您可以随时在制品仓库服务控制台进行续费,以延长制品仓库服务的使用时间。 自动续费 开通自动续费后,制品仓库服务会在每次到期前自动续费,避免因忘记手动续费而导致资源被自动删除。 在包年/包月制品仓库服务生命周期的不同阶段,您可以根据需要选择一种方式进行续费,具体如图1 制品仓库服务生命周期所示。 图1 制品仓库服务生命周期 制品仓库服务从购买到到期前,处于正常运行阶段,套餐状态为“正常”。 到期后,套餐状态变为“已过期”。 到期未续费时,制品仓库服务首先会进入宽限期,宽限期到期后仍未续费,套餐状态变为“保留”。 超过宽限期仍未续费将进入保留期,如果保留期内仍未续费,资源将被自动删除。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 在制品仓库服务到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝试一次,直至制品仓库服务到期或者续费成功。到期前7日自动续费扣款是系统默认配置,您也可以根据需要修改此扣款日。
  • 计费说明 制品仓库服务套餐的计费项为租户人数。具体内容如表1 制品仓库服务计费项所示。 制品仓库服务资源扩展的计费项为存储容量和流量。具体内容如表2、表3所示。 表1 制品仓库服务套餐计费项 计费项 计费项说明 计费公式 套餐数 某一Region内,开通制品仓库服务套餐数量。 单价*套数*购买时长 表2 制品仓库服务存储扩展计费项 计费项 计费项说明 计费公式 制品仓库服务存储容量 某一Region内,租户中软件发布库和私有依赖库的总容量。 单价*存储容量*购买时长 表3 制品仓库服务流量扩展计费项 计费项 计费项说明 计费公式 制品仓库服务流量 某一Region内,租户中制品仓库通过公网下载的流量。 单价*流量*购买时长
  • 包年/包月套餐说明 制品仓库服务采用包年/包月、资源扩展计费模式,提供基础版、专业版套餐,以满足不同规模用户的使用需求。 不同版本套餐中,提供的功能特性及资源规格略有不同,详情请参见表1。 您还可以购买CodeArts套餐,使用制品仓库服务,详情请参见CodeArts计费说明。 表1 套餐包详情 套餐说明 适用场景 规格 特性 包月计费 制品仓库基础版 适用于个人开发者或者小微企业。 制品仓库总容量:50GB 公网下载流量:20GB/月 发布仓构建推送大小:10GB 语言仓构建推送大小:2GB 发布仓页面上传大小:2GB 语言仓页面上传大小:100MB 单制品类型仓库数:100个 支持Maven、Docker、Npm、Rpm、Nuget等10种制品类型。 支持Maven、Npm等代理仓功能。 支持制品版本控制。 支持制品清理。 支持构建元数据。 计费模式:包周期 500元/月 制品仓库专业版 适用于中大型企业。 制品仓库总容量:1000GB 公网下载流量:500GB/月 发布仓构建推送大小:20GB 语言仓构建推送大小:2GB 发布仓页面上传大小:2GB 语言仓页面上传大小:100MB 单制品类型仓库数:不限 支持基础版所有特性。 开源 漏洞扫描 。 病毒扫描。 恶意代码扫描。 开源许可证风险扫描。 制品依赖分析。 计费模式:包周期 8300元/月
  • 到期后影响 图1 包年/包月制品仓库服务生命周期描述了包年/包月制品仓库服务各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图1 包年/包月制品仓库服务生命周期 到期预警 包年/包月制品仓库服务在到期前第15天内,系统将在服务使用界面向用户推送到期预警消息。 当制品仓库服务套餐资源用量/流量已达80%以上或100%,系统将在服务使用界面向用户推送预警消息。 到期后影响 当您的包年/包月制品仓库服务到期未续费,首先会进入宽限期,资源状态变为“已过期”。宽限期内您可以正常使用制品仓库服务。 如果您在宽限期内仍未续费包年/包月制品仓库服务,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的包年/包月资源执行任何操作。 保留期到期后,若包年/包月制品仓库服务仍未续费,那么将无法继续使用制品仓库服务。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见续费概述。
  • 适用场景 包年/包月计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。以下是一些适用于包年/包月计费模式的业务场景: 稳定业务需求:对于长期运行且资源需求相对稳定的业务,如企业官网、在线商城、博客等,包年/包月计费模式能提供较高的成本效益。 长期项目:对于周期较长的项目,如科研项目、大型活动策划等,包年/包月计费模式可以确保在整个项目周期内资源的稳定使用。 业务高峰预测:如果能预测到业务高峰期,如电商促销季、节假日等,可提前购买包年/包月资源以应对高峰期的需求,避免资源紧张。 数据安全要求高:对于对数据安全性要求较高的业务,包年/包月计费模式可确保资源的持续使用,降低因资源欠费而导致的数据安全风险。
  • 变更配置后对计费的影响 当前CodeArts Artifact套餐不满足您的业务需要时,您可以在制品仓库控制台发起变更操作。 变更操作可选择“即时变更”或“续费变更”。 即时变更:变更操作在当前的套餐周期内生效,变更时系统将按照如下规则为您计算变更费用。 资源升配:变更后的套餐价格高于变更前价格,此时您需要支付新老配置的差价。 资源降配:变更后的套餐价格低于变更前价格,此时华为云会将新老配置的差价退给您。 续费变更:即购买新套餐,在当前套餐到期后,新套餐自动生效。
  • 制品仓库流量扩展 表2 制品仓库流量扩展 计费方式 包年/包月 适用场景 当CodeArts套餐或制品仓库服务套餐中包含的下载流量不满足实际使用需求时,可购买制品仓库流量扩展。 计费项 流量大小。 购买限制 流量:10GB起购买,步长为10GB,最大购买10000GB。 购买制品仓库流量扩展前,须完成CodeArts基础版及以上规格套餐或制品仓库服务套餐的购买。 计费公式 单价*流量*购买时长 计费周期 根据购买时长确定(以GMT+8时间为准)。一个计费周期的起点是您开通或续费制品仓库流量扩展的时间(精确到秒),终点则是到期日的23:59:59。 例如,如果您在2023/03/08 15:50:04购买时长为一个月的制品仓库流量扩展,那么其计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59。 变更配置 制品仓库流量扩展支持变更配置,可以增加或减少下载流量,变更时系统将按照如下规则为您计算变更费用。 资源升配:变更后的存储空间高于变更前,此时您需要支付新老配置的差价。 资源降配:变更后的存储空间低于变更前,此时华为云会将新老配置的差价退给您。 到期后影响 制品仓库流量扩展到期未续费时,该制品仓库资源扩展将失效。
  • 制品仓库存储扩展 表1 制品仓库存储扩展 计费方式 包年/包月 适用场景 当CodeArts套餐或制品仓库服务套餐中包含的存储容量不满足实际使用需求时,可购买制品仓库存储扩展。 计费项 存储容量。 购买限制 存储容量:10GB起购买,步长为10GB,最大购买10000GB。 购买资源扩展包前,须完成CodeArts基础版及以上规格套餐或制品仓库服务套餐的购买。 计费公式 单价*存储容量*购买时长 计费周期 根据购买时长确定(以GMT+8时间为准)。一个计费周期的起点是您开通或续费制品仓库存储扩展的时间(精确到秒),终点则是到期日的23:59:59。 例如,如果您在2023/03/08 15:50:04购买时长为一个月的制品仓库存储扩展,那么其计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59。 变更配置 制品仓库存储扩展支持变更配置,可以增加或减少存储容量,变更时系统将按照如下规则为您计算变更费用。 资源升配:变更后的存储空间高于变更前,此时您需要支付新老配置的差价。 资源降配:变更后的存储空间低于变更前,此时华为云会将新老配置的差价退给您。 到期后影响 制品仓库存储扩展到期未续费时,该制品仓库资源扩展将失效。
  • 发布私有组件到Go私有依赖库 下载私有依赖库配置文件。 登录软件开发生产线,进入Go私有依赖库。单击页面右侧“操作指导”。 在弹框中单击“下载配置文件”。 配置代码仓库。 进入 代码托管服务 。创建Go语言代码仓库(操作步骤请参考创建云端仓库)。本文中使用仓库模板“Go Web Demo”创建代码仓库。 准备“go.mod”文件,并上传至代码仓库的根目录中。本文中使用的“go.mod”文件如下所示: 配置并执行编译构建任务。 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 添加步骤“Go语言构建”。 编辑步骤“Go语言构建”。 工具版本按照实际选择,本文中选择“go-1.13.1”。 删除已有命令行,打开在步骤1中下载的配置文件,将文件中的“LINUX下配置go环境变量命令”复制到命令框中。 将配置文件中go上传命令代码段复制到命令框中,并参考Go Modules打包方式简介替换命令行中的参数信息(本文打包版本为“v1.0.0”)。 单击“新建并执行”,执行构建任务。 待页面提示“构建成功”时,进入私有依赖库,可找到通过构建任务上传的Go私有组件。
  • Go Modules打包方式简介 本文采用Go Modules打包方式完成Go组件的构建与上传。 打包命令主要包括以下几部分: 在工作目录中创建源文件夹。 mkdir -p {module}@{version} 将代码源拷贝至源文件夹下。 cp -rf . {module}@{version} 压缩组件zip包。 zip -D -r [包名] [包根目录名称] 上传组件zip包与“go.mod”文件到私有依赖库中。 curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/{filePath} -T {{localFile}} 根据打包的版本不同,组件目录结构有以下几种情况: v2.0以下版本:目录结构与“go.mod”文件路径相同,无需附加特殊目录结构。 v2.0以上(包括v2.0)版本: “go.mod”文件中第一行以“/vX”结尾:目录结构需要包含“/vX”。例如,版本为v2.0.1,目录需要增加“v2”。 “go.mod”文件中第一行不以“/vN”结尾:目录结构不变,上传文件名需要增加“+incompatible”。 下面分别对不同的版本举例说明: v2.0以下版本打包。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为1.0.0。因此命令如下: mkdir -p ~/example.com/demo@v1.0.0 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo@v1.0.0/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v1.0.0.zip”,因此命令如下: zip -D -r v1.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/@v/v1.0.0.zip”,“localFile”为“v1.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v1.0.0.mod”,“localFile”为“example.com/demo@v1.0.0/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.zip -T v1.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.mod -T example.com/demo@v1.0.0/go.mod v2.0以上版本打包,且“go.mod”文件中第一行以“/vX”结尾。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo/v2”,参数“version”自定义为“2.0.0”。因此命令如下: mkdir -p ~/example.com/demo/v2@v2.0.0 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo/v2@v2.0.0/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v2.0.0.zip”,因此命令如下: zip -D -r v2.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.zip”,“localFile”为“v2.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.mod”,“localFile”为“example.com/demo/v2@v2.0.0/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.zip -T v2.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.mod -T example.com/demo/v2@v2.0.0/go.mod v2.0以上版本打包,且“go.mod”文件中第一行不以“/vX”结尾。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为“3.0.0”。因此命令如下: mkdir -p ~/example.com/demo@v3.0.0+incompatible 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo@v3.0.0+incompatible/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v3.0.0.zip”,因此命令如下: zip -D -r v3.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.zip”,“localFile”为“v3.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.mod”,“localFile”为“example.com/demo@v3.0.0+incompatible/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.zip -T v3.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.mod -T example.com/demo@v3.0.0+incompatible/go.mod
  • NPM命令简介 在编译构建任务命令行中,还可以配置如下Npm命令,以完成其它功能: 删除私有依赖库中已存在的私有组件 npm unpublish @socpe/packageName@version 获取标签列表 npm dist-tag list @scope/packageName 新增标签 npm dist-tag add @scope/packageName@version tagName --registry registryUrl --verbose 删除标签 npm dist-tag rm @scope/packageName@version tagName --registry registryUrl --verbose 命令行参数说明: scope:私有依赖库路径,查看方法请参考发布私有组件到NPM私有依赖库。 packageName:“package.json”文件中,name字段中scope之后的部分。 version:“package.json”文件中,version字段对应的值。 registryUrl:私有库配置文件中的对应scope的私有库地址url。 tagName:标签名称。 以发布私有组件到NPM私有依赖库发布的私有组件为例: scope对应的值为“test”。 packageName对应的值为“vue-demo”。 version对应的值为“1.0.0”。 因此,删除此组件的命令应为: npm unpublish @test/vue-demo@1.0.0
  • 从NPM私有依赖库获取依赖包 以发布私有组件到NPM私有依赖库中发布的Npm私有组件为例,介绍如何从Npm私有依赖库中获取依赖包。 配置代码仓库。 进入代码托管服务,创建Node.js代码仓库(操作步骤请参考创建云端仓库)。本文使用模板“nodejs Webpack Demo”创建代码仓库。 参考发布私有组件到NPM私有依赖库,获取“.npmrc”文件并上传至需要使用Npm依赖包的代码仓库根目录中。 在代码仓库中找到“package.json”文件并打开,将依赖包配置到dependencies字段中,本文中配置的值为: "@test/vue-demo": "^1.0.0" 配置并执行编译构建任务。 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 添加步骤“Npm构建”。 编辑步骤“Npm构建”。 工具版本按照实际选择,本文中选择“nodejs12.7.0”。 删除已有命令行,输入以下命令: export PATH=$PATH:/root/.npm-global/bin npm config set strict-ssl false npm install --verbose 单击“新建并执行”,启动构建任务执行。 待任务执行成功时,查看构建任务详情,在日志中找到类似如下内容,说明编译构建任务从私有依赖库完成了依赖包下载并构建成功。
  • 发布私有组件到NPM私有依赖库 下载私有依赖库配置文件。 登录软件开发生产线,进入NPM私有依赖库。单击页面右侧“设置仓库”,记录仓库的路径。 单击“取消”返回私有依赖库页面,单击页面右侧“操作指导”。 在弹框中单击“下载配置文件”。 在本地将下载的“npmrc”文件另存为“.npmrc”文件。 配置代码仓库。 进入代码托管服务,创建Node.js代码仓库(操作步骤请参考创建云端仓库)。本文使用模板“nodejs Webpack Demo”创建代码仓库。 进入代码仓库,将“.npmrc”文件上传至代码仓库的根目录中。 在代码仓库中找到“package.json”文件并打开,将在“编辑私有依赖库”页面中记录的路径信息添加到name字段对应的值中。 实际操作中,若出现name字段的值固定且不便修改的情况,则可以在“编辑私有依赖库”页面将该值配置到“添加路径”字段中。 配置并执行编译构建任务。 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 添加步骤“Npm构建”。 编辑步骤“Npm构建”。 工具版本按照实际选择,本文中选择“nodejs12.7.0”。 删除已有命令行,输入以下命令: export PATH=$PATH:/root/.npm-global/bin npm config set strict-ssl false npm publish 单击“新建并执行”,启动构建任务执行。 待任务执行成功时,进入私有依赖库,可找到通过构建任务上传的Npm私有组件。
  • 背景信息 NPM(Node Package Manager)是一个JavaScript包管理工具,NPM组件包即NPM管理的对象,而NPM私有依赖库就是管理和存储NPM组件包的一个私有仓库。 私有依赖库管理各种开发语言对应的私有组件包(开发者通俗称之为私服)。由于不同的开发语言组件通常有不同的归档格式要求,私有依赖库目的就在于管理私有开发语言组件并在企业或团队内共享给其他开发者开发使用。 本文档介绍如何通过编译构建任务发布私有组件到Npm私有依赖库、如何从Npm私有依赖库获取依赖包完成编译构建任务。