华为云用户手册

  • 请求示例 创建镜像元数据,其中,镜像操作系统为“Ubuntu 14.04 server 64bit”,容器格式为“bare”、镜像格式为“vhd”、镜像运行需要的最小磁盘为100GB、镜像运行需要的最小内存为1024MB。 POST https://{Endpoint}/v2/images { "__os_version": "Ubuntu 14.04 server 64bit", "container_format": "bare", "disk_format": "vhd", "min_disk": 100, "min_ram": 1024, "name": "test", "tags": [ "test=testvalue", "image=imagevalue" ], "visibility": "private", "protected": false }
  • 响应消息 响应参数 参数 参数类型 描述 visibility String 其他租户是否可见。取值为private。 name String 镜像名称,如果未指定name的取值,则默认为空,但是使用该镜像创建虚拟机会失败。名称的长度为1~128位。name参数说明请参考镜像属性。 protected Boolean 镜像是否被保护,保护后的镜像不可删除。取值为false。 container_format String 容器格式。 取值为bare。 disk_format String 镜像格式,目前支持zvhd2、vhd、raw、qcow2、iso。非iso格式时默认值是zvhd2。。 tags Array of strings 镜像标签列表。长度为1~255位。 min_ram Integer 镜像运行最小内存,单位为MB。取值参考E CS 规格限制,一般设置为0。 云服务器的规格限制,请参见规格清单。 min_disk Integer 镜像运行需要的最小磁盘容量,单位为GB 。取值为40~1024GB。必须大于镜像系统盘容量,否则创建云服务器可能失败。 status String 镜像状态。取值如下: queued:表示镜像元数据已经创建成功,等待上传镜像文件。 saving:表示镜像正在上传文件到后端存储。 deleted:表示镜像已经删除。 killed:表示镜像上传错误。 active:表示镜像可以正常使用。 created_at String 创建时间。格式为UTC时间。 updated_at String 更新时间。格式为UTC时间。 self String 本镜像链接。 id String 镜像ID。用户调用创建镜像接口后,需保存该镜像的ID,用来调用上传镜像接口完成镜像上传。 file String 上传下载镜像文件的地址链接。 schema String 视图链接。 __image_source_type String 镜像后端存储类型,目前支持uds。 __image_size String 镜像大小。单位为字节。 __isregistered String 镜像是否注册。只有已注册的镜像才能在Portal界面上查询到。取值为true。 __os_version String 镜像的操作系统具体版本,取值范围见相关参数取值列表。 __os_type String 镜像的操作系统类型,取值由__os_version确定。支持Windows、Linux、other。 __platform String 表示镜像支持的操作系统平台。取值由__os_version确定。 __os_bit String 表示操作系统位数。取值由__os_version确定,取值为32或64。 __imagetype String 镜像类型。取值为private,表示私有镜像。 virtual_env_type String 平台类型。 镜像使用环境类型:FusionCompute、Ironic、DataImage、IsoImage。 如果是云服务器镜像,则取值为FusionCompute。 如果是数据盘镜像,则取值为DataImage。 如果是裸金属服务器镜像,则取值为Ironic。 如果是ISO镜像,则取值是IsoImage。 owner String 镜像所属项目ID。 __root_origin String 表示当前镜像来源是从外部导入。取值:file。 checksum String 镜像文件md5值。 size Long 目前暂时不使用。 virtual_size Integer 镜像虚拟大小。单位为字节。 properties Properties object 镜像属性的集合,不表示具体的镜像属性。 响应样例 STATUS CODE 201 { "schema": "/v2/schemas/image", "min_disk": 100, "created_at": "2016-06-02T07:49:48Z", "__image_source_type": "uds", "container_format": "bare", "__image_size": "0", "file": "/v2/images/4ca46bf1-5c61-48ff-b4f3-0ad4e5e3ba86/file", "updated_at": "2016-06-02T07:49:49Z", "protected": false, "id": "4ca46bf1-5c61-48ff-b4f3-0ad4e5e3ba86", "__isregistered": "true", "min_ram": 1024, "owner": "b912fb4a4c464b568ecfca1071b21b10", "__os_type": "Linux", "__imagetype": "private", "visibility": "private", "virtual_env_type": "FusionCompute", "tags": [ "test=testvalue", "image=imagevalue" ], "__platform": "Ubuntu", "__os_bit": "64", "__os_version": "Ubuntu 14.04 server 64bit", "name": "test", "self": "/v2/images/4ca46bf1-5c61-48ff-b4f3-0ad4e5e3ba86", "disk_format": "vhd", "status": "queued" }
  • 响应消息 响应参数 参数 参数类型 描述 resources Array of resource objects 镜像信息列表 total_count Integer 总记录数 表7 resource字段数据结构说明 参数 参数类型 描述 resource_id String 镜像ID resource_detail ResourceDetail object 镜像详情 tags Array of Tags objects 镜像的标签列表 resource_name String 镜像名称 表8 ResourceDetail object 名称 类型 必选 描述 status string 是 镜像状态 表9 resource_tag字段数据结构说明 参数 参数类型 描述 key String 标签的键 value String 标签的值 响应样例 action为count时的响应示例 STATUS CODE 200 1 2 3 { "total_count": 36 } action为filter时的响应示例 STATUS CODE 200 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 { "total_count": 36, "resources": [{ "resource_name": "test10002", "resource_detail": {"status": "active"}, "tags": [{ "value": "value4", "key": "key4" }, { "value": "valueXX", "key": "key3" }, { "value": "value2", "key": "key2" }, { "value": "value5", "key": "key5" }, { "value": "value8", "key": "key8" }, { "value": "valueXX", "key": "key6" }, { "value": "valueXX", "key": "key0" }, { "value": "value1", "key": "key1" }, { "value": "value7", "key": "key7" }, { "value": "valueXX", "key": "key9" }], "resource_id": "8693187d-1590-4f9f-ae34-eb9e3037cf68" }] }
  • 请求示例 按照标签和总条数返回查询条件,查询镜像。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/resource_instances/action { "action": "count", "matches": [{ "key": "resource_name", "value": "test100" }], "tags": [ { "key": "key3", "values": ["valueXX"] }], "tags_any": [ { "key": "key0", "values": ["valueXX"] }], "not_tags": [ { "key": "key9", "values": ["value9"] }], "not_tags_any": [{ "key": "key7", "values": ["value7"] }] } 按照标签和分页查询条件,查询镜像。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/resource_instances/action { "action": "filter", "limit": "1", "offset": "0", "matches": [{ "key": "resource_name", "value": "test100" }], "tags": [ { "key": "key3", "values": ["valueXX"] }], "tags_any": [ { "key": "key0", "values": ["valueXX"] }], "not_tags": [ { "key": "key9", "values": ["value9"] }], "not_tags_any": [{ "key": "key7", "values": ["value7"] }] }
  • 请求消息 请求参数 参数 是否必选 参数类型 描述 action 是 String 操作标识(区分大小写),支持filter、count。filter就是分页查询;count是只需按照条件将总条数返回即可。 tags 否 Array of objects 包含标签,最多包含10个key,每个key对应的values最多包含10个值,且key和values都不能重复。不能为空列表。 详情请参见表2。 tags_any 否 Array of objects 包含任意标签,最多包含10个key,每个key对应的values最多包含10个值,且key和values都不能重复。不允许为空列表,但可以不传递参数。 详情请参见表3。 not_tags 否 Array of objects 不包含标签,最多包含10个key,每个key对应的values最多包含10个值,且key和values都不能重复。不能为空列表。 详情请参见表4。 not_tags_any 否 Array of objects 不包含任意标签,最多包含10个key,每个key对应的values最多包含10个值,且key和values都不能重复。不能为空列表。 详情请参见表5。 without_any_tag 否 Boolean 不包含任意一个标签,该字段为true时查询所有不带标签的资源,此时忽略tag、not_tags、tags_any、not_tags_any字段。 limit 否 String 最大查询记录数(action为count时,此参数无效)。如果action为filter,则limit默认为10,最多为1000,不能为负数,最小值为1。 offset 否 String 索引位置, 从offset指定的下一条数据开始查询。 查询第一页数据时,不需要传入此参数(action为count时,此参数无效),如果action为filter,offset默认为0,不能为负数。 matches 否 Array of objects 搜索字段,key为要匹配的字段,如resource_name、resource_id等。value为匹配的值。多个matches的key不允许重复。不允许为空列表,但可以不传递参数。 详情请参见表6。 表2 tags字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键。最大长度127个unicode字符,key不能为空。 values 是 Array of strings 标签的值列表。每个值最大长度255个unicode字符,如果values为空列表,则标签的值可以是任意值。值列表中的值之间为或的关系。 表3 tags_any字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键。最大长度127个unicode字符,key不能为空。 values 是 Array of strings 标签的值列表。每个值最大长度255个unicode字符,如果values为空列表,则标签的值可以是任意值。值列表中的值之间为或的关系。 表4 not_tags字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键。最大长度127个unicode字符,key不能为空。 values 是 Array of strings 标签的值列表。每个值最大长度255个unicode字符,如果values为空列表,则标签的值可以是任意值。值列表中的值之间为或的关系。 表5 not_tags_any字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键。最大长度127个unicode字符,key不能为空。 values 是 Array of strings 标签的值列表。每个值最大长度255个unicode字符,如果values为空列表,则标签的值可以是任意值。值列表中的值之间为或的关系。 表6 matches字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 搜索的字段名称。合法值为resource_name、resource_id。 当字段名称为resource_name时,如果value为空字符串,做精确查询,否则按镜像名称全模糊查询。当字段名称为resource_id时,按镜像ID精确查询。 value 是 String 搜索的字段名称的对应值,不允许为空。每个值最大长度255个unicode字符。
  • 响应消息 响应参数 参数 参数类型 描述 status String 共享状态。 created_at String 共享时间,格式为UTC时间。 updated_at String 更新时间,格式为UTC时间。 image_id String 镜像ID member_id String 成员ID,即接受镜像用户的项目ID。 schema String 共享视图 响应样例 STATUS CODE 200 1 2 3 4 5 6 7 8 { "status": "pending", "created_at": "2016-09-01T02:05:14Z", "updated_at": "2016-09-01T02:05:14Z", "image_id": "d164b5df-1bc3-4c3f-893e-3e471fd16e64", "member_id": "edc89b490d7d4392898e19b2deb34797", "schema": "/v2/schemas/member" }
  • 请求示例 使用云服务器制作系统盘镜像,其中,镜像标签数据格式为tags,虚拟机ID为“877a2cda-ba63-4e1e-b95f-e67e48b6129a”。 POST https://{Endpoint}/v2/cloudimages/action { "name": "ims_test", "description": "云服务器制作系统盘镜像", "instance_id": "877a2cda-ba63-4e1e-b95f-e67e48b6129a", "tags": [ "aaa.111", "bbb.333", "ccc.444" ] } 使用云服务器数据盘制作数据盘镜像,其中,镜像标签数据格式为tags,卷ID为“c5dfbd0c-bf0a-4798-a453-61dc6b54aa30”。 1 2 3 4 5 6 7 8 9 10 11 12 POST https://{Endpoint}/v2/cloudimages/action { "data_images": [{"name": "ims_data_image_test", "description": "云服务器数据盘制作数据盘镜像", "volume_id": "c5dfbd0c-bf0a-4798-a453-61dc6b54aa30", "tags": [ "aaa.111", "bbb.333", "ccc.444" ] }] } 使用上传至OBS桶中的外部镜像文件制作镜像,其中,镜像标签数据格式为tags,OBS桶中外部镜像文件地址为“ims-image:centos70.qcow2”。 1 2 3 4 5 6 7 8 9 10 11 12 13 POST https://{Endpoint}/v2/cloudimages/action { "name": "ims_test_file", "description": "OBS文件制作镜像", "image_url": "ims-image:centos70.qcow2", "os_version": "CentOS 7.0 64bit", "min_disk": 40, "tags": [ "aaa.111", "bbb.333", "ccc.444" ] } 使用云服务器制作系统盘镜像,其中,镜像标签数据格式为image_tags,虚拟机ID为“877a2cda-ba63-4e1e-b95f-e67e48b6129a”。 POST https://{Endpoint}/v2/cloudimages/action { "name": "ims_test", "description": "云服务器制作系统盘镜像", "instance_id": "877a2cda-ba63-4e1e-b95f-e67e48b6129a", "image_tags": [ { "key": "key2", "value": "value2" }, { "key": "key1", "value": "value1" } ] } 使用云服务器数据盘制作数据盘镜像,其中,镜像标签数据格式为image_tags,卷ID为“c5dfbd0c-bf0a-4798-a453-61dc6b54aa30”。 1 2 3 4 5 6 7 8 POST /v2/cloudimages/action { "data_images": [{"name": "ims_data_image_test", "description": "云服务器数据盘制作数据盘镜像", "volume_id": "c5dfbd0c-bf0a-4798-a453-61dc6b54aa30", "image_tags": [{"key":"key2","value":"value2"},{"key":"key1","value":"value1"}] }] } 使用上传至OBS桶中的外部镜像文件制作镜像,其中,镜像标签数据格式为image_tags,OBS桶中外部镜像文件地址为“ims-image:centos70.qcow2”。 1 2 3 4 5 6 7 8 9 POST https://{Endpoint}/v2/cloudimages/action { "name": "ims_test_file", "description": "OBS文件制作镜像", "image_url": "ims-image:centos70.qcow2", "os_version": "CentOS 7.0 64bit", "min_disk": 40, "image_tags": [{"key":"key2","value":"value2"},{"key":"key1","value":"value1"}] } 使用数据盘制作系统盘镜像,其中,镜像标签数据格式为tags,卷ID为 "877a2cda-ba63-4e1e-b95f-e67e48b6129a"。 1 2 3 4 5 6 7 8 9 10 11 12 13 POST https://{Endpoint}/v2/cloudimages/action { "name": "ims_test", "description": "数据盘制作系统盘镜像", "volume_id": "877a2cda-ba63-4e1e-b95f-e67e48b6129a", "type": "ECS", "os_version": "CentOS 7.0 64bit", "tags": [ "aaa.111", "bbb.333", "ccc.444" ] } 使用数据盘制作系统盘镜像,其中,镜像标签数据格式为image_tags,卷ID为“877a2cda-ba63-4e1e-b95f-e67e48b6129a”。 1 2 3 4 5 6 7 8 9 POST https://{Endpoint}/v2/cloudimages/action { "name": "ims_test", "description": "数据盘制作系统盘镜像", "volume_id": "877a2cda-ba63-4e1e-b95f-e67e48b6129a", "type": "ECS", "os_version": "CentOS 7.0 64bit", "image_tags": [{"key":"key2","value":"value2"},{"key":"key1","value":"value1"}] }
  • 约束与限制 使用外部镜像文件制作镜像 外部镜像文件的限制请参见“准备镜像文件(Windows)”或“准备镜像文件(Linux)”。 使用数据盘创建系统盘镜像 使用数据盘制作系统盘镜像时,需确保该数据盘中有操作系统,且操作系统已提前完成优化步骤。如何优化,请参见优化私有镜像(Windows)和优化私有镜像(Linux)。 由于系统无法校验您在调用该接口时指定的卷是否存在操作系统,因此制作系统盘镜像时,请务必确保您输入的os_version(操作系统版本)值合法,具体请参见相关参数取值列表。
  • 请求示例 批量添加镜像成员,其中,镜像ID为“d164b5df-1bc3-4c3f-893e-3e471fd16e64”、“0b680482-acaa-4045-b14c-9a8c7dfe9c70”,项目ID为"9c61004714024f9586705d090530f9fa", "edc89b490d7d4392898e19b2deb34797"。 1 2 3 4 5 6 7 8 9 10 11 POST https://{Endpoint}/v1/cloudimages/members { "images": [ "d164b5df-1bc3-4c3f-893e-3e471fd16e64", "0b680482-acaa-4045-b14c-9a8c7dfe9c70" ], "projects": [ "9c61004714024f9586705d090530f9fa", "edc89b490d7d4392898e19b2deb34797" ] }
  • 请求示例 导出镜像,其中,镜像文件格式为“qcow2”,目的文件的URL为“ims-image:centos7_5.qcow2” 1 2 3 4 5 6 POST https://{Endpoint}/v1/cloudimages/d164b5df-1bc3-4c3f-893e-3e471fd16e64/file { "bucket_url": "ims-image:centos7_5.qcow2", "file_format": "qcow2", "is_quick_export": false }
  • 请求消息 请求参数 参数 是否必选 参数类型 描述 status 是 String 镜像成员的状态。 取值如下: accepted:表示接受共享镜像。接受后,该镜像在用户镜像列表中可见,用户可以使用该镜像创建云服务器。 rejected:表示拒绝共享镜像。拒绝后,该镜像在用户镜像列表中不可见,但是,用户仍然可以使用该镜像创建云服务器。 vault_id 否 String 存储库ID。 如果是CBR创建的整机镜像,则在接受该共享镜像时,为必选参数,需传入该值。 存储库ID可以从云备份服务控制台获取,或者参考“查询存储库列表”查询。
  • 请求示例 更新镜像成员状态,其中,镜像状态为“接受共享镜像”。 1 2 3 4 PUT https://{Endpoint}/v2/images/d164b5df-1bc3-4c3f-893e-3e471fd16e64/members/edc89b490d7d4392898e19b2deb34797 { "status": "accepted" } 更新通过CBR创建的整机镜像成员状态,其中,镜像状态为“接受共享镜像”,存储库ID为“6yhtb5df-1bc3-4c3f-893e-3e4716yhgt61”。 1 2 3 4 5 PUT https://{Endpoint}/v2/images/d164b5df-1bc3-4c3f-893e-3e471fd16e64/members/edc89b490d7d4392898e19b2deb34797 { "status": "accepted", "vault_id": "6yhtb5df-1bc3-4c3f-893e-3e4716yhgt61" }
  • 响应消息 响应参数 参数 参数类型 描述 status String 共享状态 created_at String 共享时间,格式为UTC时间 updated_at String 更新时间,格式为UTC时间 image_id String 镜像ID member_id String 成员ID schema String 共享视图 响应样例 STATUS CODE 200 1 2 3 4 5 6 7 8 { "status": "accepted", "created_at": "2016-09-01T02:05:14Z", "updated_at": "2016-09-01T02:37:11Z", "image_id": "d164b5df-1bc3-4c3f-893e-3e471fd16e64", "member_id": "edc89b490d7d4392898e19b2deb34797", "schema": "/v2/schemas/member" }
  • 请求示例 Region内复制镜像,其中,镜像名称为“ims_encrypted_copy3”。 1 2 3 4 5 6 POST https://{Endpoint}/v1/cloudimages/465076de-dc36-4aec-80f5-ef9d8009428f/copy { "name": "ims_encrypted_copy3", "description": "test copy", "cmk_id": "bd66288c-9081-460a-8227-4cbd0c814cb4" }
  • 错误码说明 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 HTTP状态码 返回值 说明 Error Message 处理措施 400 BMS.0001 请求数据错误。 Fail to parse request, reason: %s. 请参考返回的Error Message信息检查请求体。 400 BMS.0002 裸金属服务器还未上线。 The BMS service is unavailable. 服务当前不可用,请选择合适可用的Region。 400 BMS.0003 请求数据错误。 Create BareMetal Server error, request is null. 请参考返回的Error Message信息检查请求体。 400 BMS.0004 权限不足。 Role check fail, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0005 权限不足。 Role check fail, reason: You do not have permission or your balance is insufficient. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0008 规格查询失败。 Fail to query flavor [%s], reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0006 创建Job失败。 Fail to operate baremetal server. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0009 规格相关属性查询失败。 Fail to query flavor extra specs[%s], reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0010 镜像查询失败。 Fail to query image [%s], reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0011 此镜像属性不支持裸金属服务器。 The selected images cannot be used to apply for BMSs, %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0012 所选子网中的IP地址数目不足。 The number of IP addresses in the selected subnet[%s] is insufficient. 请检查子网的IP是否已经被使用完。 400 BMS.0013 Port查询失败。 Fail to query ports by subnet [%s], reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0014 指定的IP地址冲突。 The specified IP address conflicts with an existing IP address in subnet[%s]. 请修改网卡IP。 400 BMS.0015 网卡查询失败。 Fail to query subnet, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0017 弹性公网IP配额不足。 The number[%d] of EIPs has reached the maximum[%d] allowed. Apply for a higher quota and try again. EIP配额不足,请申请扩大EIP配额。 400 BMS.0218 创建订单失败。 Fail to create order, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0219 修改裸金属服务器名称失败。 OpenStack nova change ServerName fail. 请联系技术支持。 400 BMS.0018 请求参数不合法。 Request parameter is invalid. 请参考返回的Error Message修改请求。 400 BMS.0019 网卡参数不合法。 publicIp parameter is illegal, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0020 计费模式检验异常。 Fail to check chargingMode, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0021 所选规格不能创建裸金属服务器,请重新选择。 Flavor parameter is illegal, reason: %s. 请选择合适的规格。 400 BMS.0022 请求参数不合法。 Request parameter is invalid. 请参考返回的Error Message修改请求。 400 BMS.0023 查询配额失败。 Fail to query limits, reason: %s 请参考返回的Error Message,或者联系技术支持。 400 BMS.0025 裸金属服务器的个数超过配额。 The number of cloud servers has reached the maximum allowed. 请申请扩大配额。 400 BMS.0026 裸金属服务器的CPU个数超过配额。 The number of CPU cores used by all cloud servers has reached the maximum allowed. 请申请扩大配额。 400 BMS.0027 裸金属服务器的内存超过配额。 The memory space used by all cloud servers has reached the maximum allowed. 请申请扩大配额。 400 BMS.0028 裸金属服务器的个数和CPU个数超过配额。 The number of CPU cores used by all cloud servers and that of cloud servers have reached the maximum allowed. 请申请扩大配额。 400 BMS.0029 裸金属服务器的个数和内存超过配额。 The memory space used by all cloud servers and the number of cloud servers have reached the maximum allowed. 请申请扩大配额。 400 BMS.0030 裸金属服务器的内存和CPU个数超过配额。 The memory space and number of CPU cores used by all cloud servers have reached the maximum allowed. 请申请扩大配额。 400 BMS.0031 裸金属服务器的个数、CPU个数和内存超过配额。 The number of cloud servers, the memory space used by all cloud servers, and the number of CPU cores used by all cloud servers have reached the maximum allowed. 请申请扩大配额。 400 BMS.0032 请联系技术支持申请裸金属服务器。 Token check fail. 请参考返回的Error Message,或者联系技术支持。 403 BMS.0033 您暂时没有操作权限,请联系技术支持。 Fail to check roles, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0034 暂时不支持自动化发放裸金属服务器。 Not support create Bare Metal Server. 当前不支持此操作。 400 BMS.0047 系统盘参数异常。 Root volume is illegal, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0049 key_name查询失败。 Query keypair fail, reason is: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0089 tag policy合规性校验不通过。 The tag policy does not allow the specified value for the following tag key: %s. 请检查tag policy策略,或者联系技术支持。 400 BMS.0102 此镜像暂不支持挂载卷。 The image does not support attach volume. 请联系技术支持。 400 BMS.0103 该卷不存在。 Attach volume %s fail, volume info is null. 请核对卷信息是否正确。 400 BMS.0104 数据卷不能挂载在系统盘挂载点上。 Attach volume %s fail, data volume can not attach in root volume device. 请选择其他挂载点。 400 BMS.0105 挂载点不合法。 Attach volume %s fail, device is illegal. 检查挂载点是否合法。 400 BMS.0106 数据卷可用区和裸金属服务器可用区不一致。 Attach volume %s fail, volume's az is not equal with server's az. 请确保数据卷和裸金属服务器的可用区一致。 400 BMS.0108 系统盘和裸金属服务器不匹配。 Attach volume %s fail, root volume does not match the VM, do not change image. 系统盘和裸金属服务器不匹配,请确认后再挂载。 400 BMS.1001 只有当裸金属服务器处于运行中或者关机状态,才能进行此操作。 Volume can only be attached when server %s stopped or active. 请稍候重试或联系技术支持。 400 BMS.1002 裸金属服务器可挂载数据卷数量超过配额。 Attach volume fail, server %s attchment num over limit. 请联系技术支持。 400 BMS.1003 卷状态无效。 Attach shareable volume %s fail, volume status is %s, not available or inuse. 请检查该卷的状态是否为已挂卷状态或其他不可用状态。 400 BMS.1004 裸金属服务器可挂载的共享数据卷数量超过配额。 Attach shareable volume %s fail, volume status is %s, not available or inuse. 请联系技术支持。 400 BMS.1006 暂时无法获取该裸金属服务器的运行状态。 Server %s info is null or its status or its metadata is null. 请稍候重试或联系技术支持。 400 BMS.1007 调用接口失败。 Calling interface failed 请参考返回的Error Message,或者联系技术支持。 400 BMS.1008 卷类型不匹配。 The server[%s] is not HANA server, volume[%s] does not match the server. 请检查卷类型是否匹配,或者联系技术支持。 400 BMS.1009 该数据卷已经挂载在这台裸金属服务器上面。 Attach shareable volume %s fail, volume status is %s, the volume has been attached to the server. 请重新选择数据卷。 400 BMS.1011 该数据卷正在挂载。 Attach shareable volume %s fail, volume status is %s, not available or inuse. 请不要重复操作。 400 BMS.3001 查询Security Group或者Subnet失败。 Query security group failed: %s. or Query vpcId for subnet failed: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.3011 系统错误。 Decoded token is null. 请参考返回的Error Message,或者联系技术支持。 400 BMS.3025 云硬盘类型错误。 Not support create shareable data volumes. 请参考返回的Error Message,或者联系技术支持。 400 BMS.3035 此裸金属服务器没有匹配的卷。 Attach volume fail: the bmsid [%s] in volume metadata is not the same with bmsid [%s] in url. 请确保此卷和裸金属服务器匹配,或者联系技术支持。 400 BMS.3039 密码复杂度校验失败。 The password is illegal, reason: %s. 请参考密码规则。 400 BMS.0246 VPC查询失败。 The vpcId[%s] is invalid or not-existing. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0201 创建裸金属服务器参数不正确。 Fail to check the baremetal server params, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0202 数据盘类型不合法。 All volumes must be in same type. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0203 Volume参数不合法。 Volume is illegal, %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0204 数据盘超过最大允许值。 The num of datavolume is illegal, the num is %d, max num allow is %d. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0205 裸金属服务器数量不合法。 The number of baremetal servers is out of range for one quest. 请修改创建或者删除裸金属服务器的数量。 400 BMS.0206 名称含有非法字符。 The baremetal server name [%s] is include invalid char. 请按要求修改名称。 400 BMS.0207 批量创建裸金属服务器不允许指定IP。 VPC is illegal, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0208 AZ查询失败。 Fail to get RegionInfo by tenant [%s], reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0210 注入数据超过最大长度。 The size of userdata [%d] is over quota limits [%d]. 请修改注入数据。 400 BMS.0211 密钥不合法。 The image platform is [%s], support publicKey, reason: the publicKey is illegal, null is not allowed. 请选择合适的密钥。 400 BMS.0114 卸载卷不在该裸金属服务器的卷列表中。 Volume %s is not in server %s attach volume list. 请确定该卷是否存在。 400 BMS.0212 系统过载。 System is overloaded, please try again later. 请稍后重试。 400 BMS.0213 权限不足。 OBTAZ role verify fail: not allowed role. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0214 网卡查询失败。 Query subnet[%s] failed: response is null. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0215 创建订单失败。 The response of inquiry order info is null or invalid. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0216 提交订单失败。 Submit order[%s] failed: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0217 Metadata校验失败。 Create server fail, reason: metaData is illegal. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0222 主网卡不允许删除。 primary port can not be deleted. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0223 目前只支持SCSI磁盘模式。 Only SCSI disks are supported. 目前只支持SCSI磁盘模式,请选择该模式。 400 BMS.0039 裸金属服务器已经关机。 Server is stopped, not allow to stop. 请勿重复关机。 400 BMS.0040 裸金属服务器不存在。 The server does not exist. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0035 裸金属服务器已经上电,不允许进行其他操作。 Server is powering on, not allow to %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0036 裸金属服务器已经下电,不允许进行其他操作。 Server is powering off, not allow to %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0038 裸金属服务器正在运行中,不允许启动。 Server is running, not allow to start. 请勿重复开机。 400 BMS.0037 裸金属服务器正在重启,不允许进行其他操作。 Server is rebooting, not allow to %s. 请参考返回的Error Message,或者联系技术支持。 403 BMS.0288 无操作权限。 Policy doesn't allow %s to be performed. 请参考返回的Error Message,或者联系技术支持 400 BMS.0290 该卷不是共享卷,不支持批量挂载。 Batch attach volume type must be sharable. 请选择共享卷。 400 BMS.0291 企业项目ID不能为空。 enterprise_project_id can not be empty. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0294 调用EPS查询项目失败。 Query enterprise_project_id[%s] failed %. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0293 查询项目信息失败。 Query enterprise_project_id[%s] failed: response is null. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0292 企业项目已经停用。 enterprise_project_id[%s] is deactive. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0071 指定EIP创建裸金属服务器时,不能创建新的EIP。 Using an existing EIP and creating a new EIP can't be used at the same time. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0072 不能用一个指定的EIP批量创建多个裸金属服务器。 An existing EIP cannot be assigned to the ECSs created in batches. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0073 带宽参数为空。 Bandwidth info in eip is null. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0074 EIP扩展参数不可用。 Parameter exetendparam or chargingMode is null. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0075 带宽ID为空。 Bandwidth info in eip is null. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0076 EIP计费模式不可用。 Parameter chargingMode only supports postPaid when shared type is whole. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0077 带宽大小不合法。 PublicIp parameter is illegal, reason: %s. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0078 EIP配额不足。 Shared bandwidth has been bound to %d EIPs, quota is %d. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0079 EIP带宽类型不可用。 Specifies the bandwidth of the shared type and the id cannot be empty. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0080 子网状态不可用。 Check subnet status failed. 请检查子网是否存在,或者是否是ACTIVE状态。 400 BMS.0297 云硬盘提交订单且未支付,不允许挂载/卸载。 Fail to attach volume[%s]: volume is locked. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0054 容量校验失败。 Check capacity fail, the number of capacity is: [%d], and req num is: [%d]. 规格容量不足,请联系技术支持。 400 BMS.0055 查询配额失败。 Query capacity fail, Flavor id is [%s], reason: [%s]. 请参考返回的Error Message,或者联系技术支持。 400 BMS.2005 Network查询失败。 Network could not be found. 请检查Network信息,或者联系技术支持。 400 BMS.3037 资源不足或服务器启动失败。 Insufficient resources or failed to start the BMS. 请联系技术支持。 400 BMS.3004 创建失败,系统内部错误。 Failed to create the BMS due to an internal system error. 请联系技术支持。 400 BMS.3005 创建端口失败。 Failed to create the port. 请联系技术支持。 400 BMS.3033 创建系统卷失败。 Failed to create the system disk. 请联系技术支持。 400 BMS.3029 创建系统卷失败,系统卷状态异常。 Failed to create the system disk. The disk status is abnormal. 请联系技术支持。 400 BMS.3006 创建弹性IP失败。 Failed to assign the floating IP address. 请联系技术支持。 400 BMS.3021 创建数据卷失败。 Failed to create the data disk. 请联系技术支持。 400 BMS.3019 挂载数据卷失败。 Failed to attach the data disk. 请联系技术支持。 400 BMS.3038 创建弹性公网IP失败。 Failed to assign the EIP. 请联系技术支持。 400 BMS.0315 该规格不支持挂卷。 Disks cannot be attached to a BMS using this flavor[%s]. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0316 该RAID Level和RAID类型不匹配。 RAID level and RAID type do not match. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0317 磁盘信息不合法,磁盘信息为空。 Disk information is empty. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0320 此规格不支持该类型的卷组RAID。 This flavor does not support RAID formed by disks of this type. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0321 此规格不支持该大小的卷组RAID。 This flavor does not support RAID formed by disks of this size. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0322 磁盘数量和该RAID Level不匹配。 Disk quantity and RAID level do not match. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0323 磁盘数量和规格中对应的磁盘数量不匹配。 Disk quantity does not match that in the flavor. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0325 磁盘数量超过该规格支持的盘数量。 Disk quantity exceeds that supported by the flavor. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0327 仅支持JBOD。 Only JBOD is supported. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0328 仅支持单盘RAID 0。 Only single-disk RAID 0 is supported. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0329 磁盘信息不合法,磁盘类型为空。 Disk type is empty. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0330 不支持组RAID。 RAID is not supported. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0331 没有IPv6公测权限。 No IPv6 Open Beta Test permissions. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0333 不支持IPv6。 IPv6 is not supported. 请参考返回的Error Message,或者联系技术支持。 400 BMS.0400 镜像不支持IPv6。 the image[%s] is not support IPv6. 请参考返回的Error Message,或者联系技术支持 400 BMS.0360 磁盘已经冻结,无法操作裸金属服务器。 This operation cannot be performed because EVS Disk %s is frozen. 请参考返回的Error Message,或者联系技术支持。 400 BMS.3026 密码不符合规则要求。 Password does not meet the requirements of the rule. 请参考返回的Error Message,或者联系技术支持。 400 BMS.3027 VPC参数不合法。 VPC parameter is illegal. 请参考返回的Error Message,或者联系技术支持。 400 BMS.3028 卷配额异常。 cinder quota check fail. 请参考返回的Error Message,或者联系技术支持。 400 Common.0018 token无效,token中的tenant_id和URL中的tenant_id不一致 tenantId in token is not the same with in URL. 请检查租户的token是否正确。 400 BMS.0111 密码或密钥未指定或者重复指定。 none or multiple passwords specified, please specify one. 密码或者密钥不能同时指定,请确认登录方式。 400 BMS.0395 Windows系统的裸金属服务器不支持远程登录。 The server[%s] is windows system and can not support remote login。 请参考返回的Error Message,或者联系技术支持。 400 BMS.0605 当前裸机被锁定。 the BMS is locked. 请参考返回的Error Message,或者联系技术支持。
  • Powershell命令使用 Powershell使用操作 如果在构建任务中使用powershell命令,在命令行窗口按如下格式输入命令即可: powershell –Command Powershell命令参数列表 常用Powershell命令 命令类型 说明 Compress-Archive(压缩命令) powershell –Command Compress-Archive -Path [SourcePath] -DestinationPath [Target.zip] SourcePath 指定需要压缩的文件或文件夹,支持通配符和相对路径。 Target.zip 输出的压缩文件名,可用于上传到软件发布库时填写文件名。 Expand-Archive(解压缩命令) powershell –Command Expand-Archive -Path [SourcePath] -DestinationPath [TargetPath] SourcePath 指定需要解压的文件,如“demo.zip”。 TargetPath 要解压到的目标路径,支持通配符和相对路径。 Copy-Item(复制命令) powershell –Command Copy-Item -Recurse -Path [SourcePath] -DestinationPath [TargetPath] SourcePath 指定需要复制的文件或文件夹,支持通配符和相对路径。 TargetPath 要复制到的目标路径,支持通配符和相对路径。 说明: -Recurse选项为循环复制子文件夹,但若在SourcePath中使用了通配符,此开关会失效,不会复制指定目录下的子文件夹。 文档只介绍了构建常用的Powershell命令,更多Powershell命令请参见微软官方文档。
  • 配置说明 在配置构建步骤中,添加“Msbuild构建”构建步骤。 参数说明如下: 参数项 说明 步骤显示名称 构建步骤的名称,可自定义修改。 工具版本 请根据需要选择Msbuild构建工具版本。 请选择相应的.NET版本。 msbuild15-all版本的工具提供更多的构建支持,如nant、nodejs的构建命令支持等。 powershell命令 配置Msbuild命令,一般使用系统默认给出的命令即可。 nuget restore命令会还原csharp项目依赖。 msbuild命令构建项目: OutputPath会指定生成路径,此路径设置会以csproject文件为相对路径。 项目存在多个csproject时可能会因此导致构建失败,删除路径指定参数后可构建成功。 .NET Core项目请尝试使用.NET相关命令构建。
  • Msbuild构建场景 已支持场景 场景类型 说明 无外部依赖 参考镜像版本及对应工具版本,对于仅使用了环境预装依赖库的项目,选择合适的镜像版本即可直接使用msbuild或.NET命令进行构建。 例如:项目使用了dotnetframework4.7.2的SDK和Office操作的相关官方依赖库(MSOffice)。可选用“msbuild15-dotnetframework4.7.2”版本镜像,使用msbuild命令构建。 使用Nuget进行依赖管理 对于使用了环境预装依赖库以外的项目,但使用了Nuget对所有依赖库进行管理的项目,选择合适的镜像版本后,可先使用nuget restore命令下载所有依赖,此后使用msbuild命令进行构建。.NET命令无需先执行nuget命令。 例如:项目使用了“dotnetframework4.7.2”的SDK,依赖了Myget上某Package并使用Nuget添加了该依赖。可选用“msbuild15-dotnetframework4.7.2”版本镜像,使用nuget restore && msbuild命令构建。 其他 对于有其他命令需求的项目,如Git、JDK、Nant、Nodejs等,请参见msbuild15-all版本镜像构建工具集的说明,使用支持的命令进行操作。 未支持场景 场景类型 说明 未使用Nuget管理依赖库 依赖了本地安装的依赖库,且没有使用nuget对依赖进行管理。详细解决方案请参见找不到程序集(**.dll)。 例如:某项目使用“dotnetframework4.7.2”的SDK,本地安装了Nunit依赖库,但没有使用Nuget对其进行管理。 此时使用msbuild命令对其进行构建时会出现找不到库的错误,导致构建失败。 解决方案版本低于VS2015(不包含) 对于使用VS2015(不含)以前版本创建的解决方案,会出现版本过低不兼容的情况,导致构建失败。请尝试升级解决方案。
  • Msbuild系统规格说明 为方便使用,编译构建服务提供的Msbuild构建环境原则上尽可能保持与本地环境一致,但因Windows系统与编译构建服务本身一些系统限制,少数场景下可能会导致构建失败。 使用前建议仔细阅读以下规格说明。 不支持带空格的文件路径 C#项目中目录或文件名中包含空格会导致构建失败,目录/文件的命名请使用字母、数字、下划线的组合,勿使用其他特殊字符,避免不必要的构建失败。 文件全路径长度不得超过260个字符 Windows系统中,文件全路径的最大长度限制为260个字符,超过此长度会导致Msbuild构建失败。 编译构建服务约定在指定目录下执行命令,即您的构建场景实际与以下步骤类似: cd C:\编译构建的默认路径\您的项目路径 msbuild 项目文件全路径长度实际为项目下文件相对路径长度与编译构建服务默认路径长度之和。 编译构建服务默认路径长度为45字符。 因此,在使用Msbuild构建的过程中,您的项目文件路径需满足:项目下文件相对路径(以代码仓库为根目录)长度不可大于215字符。 一些特殊场景(如构建时指定输出目录为“Output/release”)下,可能会额外占用路径长度。 建议您的项目下文件相对路径(以代码仓库为根目录)长度保持在200个字符以下,原则上尽可能短。 不可直接引用系统不具备的组件 部分场景下,解决方案中可能不使用NuGet等管理工具,直接引用默认路径下的程序集。 但构建时环境中不具备此程序集,导致编译告警,如果项目代码中使用了此引用,甚至会直接导致失败。 由于Windows系统特殊性,通常情况下,此类程序集默认安装于本地系统,无需指定程序集位置,VS构建时会从默认配置的几个程序集路径查找,可以构建成功。 而云端构建环境对应目录无此程序集,进而导致云端构建环境与本地不一致带来的失败。 为解决此类场景,Msbuild集成了NuGet,可以在构建时从远程仓库下载对应程序集,此时只需于项目中指定“packages.config”,并于其中声明依赖的程序集即可。 特殊情况下,项目引用的程序集可能无法在远程仓库找到,此时需要手工保存程序集至代码仓库中,并显式指定程序集路径。 详细解决方案请参见找不到程序集(**.dll)。 命令行中路径分隔符使用'/'而非'\' 部分场景下,可能需要在命令行中使用路径参数,此处需注意,Msbuild构建环境要求路径分隔符统一使用“/”格式。 错误示例: cd test\test1或cd test\\test1 正确示例: cd test/test1 避免直接指定低版本SDK路径 编译构建服务提供了“.NET Framework”的4.7.2版本和3.5版本(详细说明请参见已支持的镜像版本及工具集)。 一般来讲,4.7.2版本可以兼容4.0以上版本SDK,3.5版本可以兼容3.5版本以下SDK,项目中可以引用兼容版本的SDK内容。 在某些场景下,用户可能将引用直接指向了某个低版本的sdk路径,此时会因找不到SDK导致构建失败。 如果您的项目出现此类场景,建议: 尝试更改您的引用路径,尽可能使用兼容版本SDK。 如果您的项目因为不可回避的原因,必须指向低版本SDK路径,请尝试联系客服。
  • 配置说明 在配置构建步骤中,添加“Gnu-arm构建”构建步骤。 参数说明如下: 参数项 说明 步骤显示名称 构建步骤的名称,可自定义修改。 工具版本 请根据需要选择ARM工具版本。 命令 配置Gnu-arm构建命令,一般使用系统默认给出的make命令即可。 如果Makefile不在代码根目录下,用户需要cd到正确的目录,再使用make命令。 用户不使用make命令,可以参考下列镜像自带的编译命令: gnuarm201405镜像 使用arm-none-linux-gnueabi-gcc命令,例如arm-none-linux-gnueabi-gcc -o main main.c gnuarm-linux-gcc-4.4.3镜像 使用arm-linux-gcc命令,例如arm-linux-gcc -o main main.c gnuarm-7-2018-q2-update镜像 使用arm-none-eabi-gcc命令,例如arm-none-eabi-gcc --specs=nosys.specs -o main main.c 说明: Linux下的GNU的makefile编写,请参见官网。 注意Makefile只有行注释“#”,如果要使用或者输出“#”字符,需要进行转义,如使用“\#”。
  • 配置说明 预置“构建环境配置”步骤。 参数说明如下: 参数项 说明 构建环境主机类型 X86服务器、鲲鹏(ARM)服务器。 执行主机 用来执行编译构建任务的计算资源,在编译构建服务中,该计算资源为虚拟机。执行主机包括内置执行机和自定义执行机。 内置执行机:编译构建服务自身提供的执行主机,用户无需配置即可开箱即用。 自定义执行机:用户自行提供的计算资源,通过注册的方式托管到编译构建服务中,通过编译构建服务进行调度并执行构建任务。 可根据实际情况选择内置执行机或自定义执行机,自定义执行机为在资源池中添加的代理执行机,具体自定义操作可参考资源池管理。
  • 配置说明 在配置构建步骤中,添加“SetupTool构建”构建步骤。 参数说明如下: 参数项 说明 步骤显示名称 构建步骤的名称,可自定义修改。 工具版本 请根据需要选择工具版本。 命令 配置构建打包命令。 可以使用默认的命令打包为“egg”格式的文件。 Python2.7后建议使用python setup.py sdist bdist_wheel,打包为源码包和whl格式的安装包,以便使用pip安装。
  • Android版本说明 SDK:用户项目构建compileSdkVersion版本。 Build Tools:用户项目构建所需buildToolsVersion版本。 两个版本可以在项目下的“build.gradle”文件或是项目的全局配置文件(用户自定义)中找到。 用户需要选择正确的compileSdkVersion版本和buildToolsVersion版本。 也支持Gradle的wrapper构建方式,如果提供的gradle版本没有满足您的要求,您也可以直接使用gradlew命令,使用wrapper去构建,会自动下载您所需要的gradle版本,构建命令例如:./gradlew clean build。
  • 配置说明 在配置构建步骤中,添加“Android快应用构建”构建步骤。 参数说明如下: 参数项 说明 步骤显示名称 构建步骤的名称,可自定义修改。 工具版本 根据需要选择构建工具版本。 命令 配置命令,以下是一个使用debug签名打包的例子。 快应用签名操作: 通过openssl命令等工具生成签名文件“private.pem”、“certificate.pem”,例如: 1 openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 3650 -out certificate.pem 在工程的“sign”目录下创建“release”目录,将私钥文件“private.pem”和证书文件“certificate.pem”复制进去。 发布程序包前需要增加release签名,然后在工程的根目录下运行: 1 npm run release 生成的应用路径为“/dist/.release.rpk”。 如果需要临时使用debug签名,可以使用: 1 npm run release -- --debug 说明: 由于debug签名是公开的,安全性无法保证,一定不要使用debug签名签发正式上线的应用。
  • 自定义安装npm组件 全局安装:npm install –g xxx。 项目下安装:npm install xxx。 如果发现镜像内安装的npm组件不符合要求,可以按照如下方式卸载,然后安装自己所需组件,以cordova为例: 查看cordova版本:cordova --version,可知版本为9.0.0。 卸载cordova:npm uninstall –g cordova。 重新安装需要的cordova版本:npm install –g cordova@8.0.0。
  • 配置说明 确认Ionic项目已经上传到CodeArts Repo代码仓库。 项目中包含“ionic.config.json”、“package.json”和“angular.json”等项目编译描述文件。 在配置构建步骤中,添加“Ionic Android App构建”构建步骤。 参数说明如下: 参数项 说明 步骤显示名称 构建步骤的名称,可自定义修改。 工具版本 根据需要选择Gradle、JDK和NDK版本。 命令 配置命令框中的打包脚本。
  • 配置说明 预置“代码下载配置”步骤。 参数说明如下: 参数项 说明 使用指定代码仓库Tag或CommitID构建 不指定、指定Tag构建、指定CommitID构建。 子模块(submodules)自动更新 子模块属于Git的一个概念,是为了解决代码仓库包含并使用其他项目代码仓库的问题,详见子模块管理(Git Submodule操作)。 开启:当代码仓库存在子模块时,系统在构建时会自动拉取子模块仓库的代码。 不开启:系统不会自动拉取子模块仓库的代码。 开启Git LFS 根据需要选择是否开启“Git LFS”,构建默认不拉取音视频、图像等大型文件,开启“Git LFS”后,构建将会全量拉取文件。
  • 指定CommitID构建 CommitID是指提交代码时生成的编号,若源码源选择Repo,则在代码仓库中显示如下。 在编译构建任务中,可以通过指定CommitID来使用历史版本代码进行构建。 选择“指定CommitID构建”,输入克隆深度,保存任务。 克隆深度是指距离最近一次提交的提交次数,该值越大,检出代码的时间越长。深度为正整数,推荐最大深度为25。 例如:克隆深度输入5,那么在执行任务时,参数“CommitID”填写距离最近提交的前5个提交号中的任意一个都可以。 执行任务时,会出现弹窗,按需要输入CommitID,单击“确定”,即可启动任务执行。
  • 编辑构建任务 登录编译构建服务首页。 在编译构建任务列表搜索目标任务。 单击编译构建任务所在行,在下拉列表中选择“编辑”,进入“编辑任务”页面。 基本信息:可修改任务名称、源码源、源码仓库、分支、任务描述等信息。 构建步骤:可修改构建步骤、步骤参数等信息。 参数设置:可配置执行任务时的自定义参数。 执行计划:可配置触发事件(持续集成)和定时执行。 修改历史:可查看构建任务的修改记录。 权限管理:可配置不同角色的权限。 通知:可配置任务事件类型通知信息(包括任务构建成功、失败、删除、配置更新、被禁用)。 根据需要选择对应页签并进行编辑,单击“保存”完成修改。
  • 代码化构建 (代码化构建仅支持源码源为Repo。) 编译构建支持通过yaml文件配置构建脚本,用户可以将构建过程需要用到的构建环境、构建参数、构建命令、构建步骤等操作通过YAML语法编写成build.yml文件,并且将build.yml文件随着被构建的代码一起纳入代码仓库,执行构建任务时,系统会以build.yml文件作为构建脚本执行构建任务,使构建过程可追溯、可还原,安全可信。功能优势如下: 清晰描述构建过程:构建参数、构建命令、构建步骤、以及构建后的操作,使构建过程可信。 每次构建使用对应当前commit的build.yml配置,保证构建可还原可追溯,不必担心因修改了构建配置而不能重复执行之前的任务。 如果新特性需要修改构建脚本,开发人员可以拉一个新的分支修改build.yml去测试,而不用担心影响其他分支。 代码化构建支持单任务配置和多任务配置。
共100000条