• [热门活动] ECS相关API中没有获取ECS实例到期日期的返回值
    ECS相关API中没有获取ECS实例到期日期的信息,通过订单相关API也对应不到具体实例里,不好用啊!**********/cloudservers/{server_id}返回值根本没有过期时间,/v1.0/**********/common/order-mgr/orders/detail?page_size=1000&page_index=1返回值有过期时间,但又和具体的实例对应不上,真不知道api设计时候这人是不是脑子有水?
  • [问题求助] 北向如何用Java API Demo启动一个本地应用服务器来接收平台推送的消息
    在平台订阅已经用公网地址订阅成功,苦于无法在本地服务器接收平台推送的消息,求助各位大神,这样的接口应该怎么写
  • [ManageOne二...] 【华为云Stack ManageOne运营面北向对接】如何使用订单接口管理弹性IP
    1 订单接口说明ManageOne中,用户通过申请订单的方式对云资源进行申请、变更、释放操作,实现对云资源生命周期的管理,订单接口具有以下特点:订单支持关联审批流程(最大支持五级审批,详情参考ManageOne用户指南),用户完成资源配置并提交后,如果审批通过,Manageone会自动完成订单实施;订单接口对云服务接口(经加固后对外开放的OpenStack接口)进行了一定程度的封装,通过调用订单接口,可以同步完成云资源的多个操作,如,申请虚拟机的同时,为虚拟机挂载数据盘,绑定弹性IP;通过订单接口申请、释放云资源时,会同步扣除、恢复租户配额,当租户配额不够时,会导致订单实施失败;订单接口只提供资源的申请,延期,变更,释放功能,不提供云服务的查询,操作(如虚拟机的开关机,列表查询等)功能,不能独立使用,需要配合云服务接口使用,也就是说,您需要通过ManageOne订单接口申请,延期,变更,释放云资源,使用云服务接口查询,操作云资源说明:    云服务接口也支持申请云资源,与使用ManageOne订单接口的区别是:通过云服务接口创建的资源,在ManageOne页面上,可以查询,操作这些资源,但不能执行变更(如扩容,减容),释放云资源的操作ManageOne中为该租户设置的配额也将不再生效(即使用云服务接口申请、释放资源,ManageOne中对应租户的配额不会变化),这也意味着,如果您不加约束,租户可以超配额申请资源2 订单接口使用场景如第1部分所述,ManageOne订单接口是在云服务接口的基础上封装得到的,包含了ManageOne自身的运营特性,例如产品、服务、区域、配额等,使用上有一定的约束,如果您希望通过调用接口实现对华为云Stack中云资源的生命周期管理,请参考以下几个场景进行评估,符合以下任何一种场景的,建议您选择使用ManageOne订单接口进行对接:如果您公司购买了并部署了华为云Stack产品,您希望通过自动化工具实现云服务资源的自动化发放,从而提高资源申请效率;如果您购买了并部署了华为云Stack产品,公司围绕IT资产的运营运维有一整套流程,您希望已有的流程平台(如ITSM、BOSS等)能够与华为云Stack进行对接,实现现有流程与云服务的整合,在简化服务的申请周期,提高应用上线效率的同时,还能够实现云资源的全流程监控;如果您是云服务提供商,将华为云Stack提供的云服务,按照租户的形式租售给了客户,客户希望实现云服务的自动化发放,需要您提供对接接口;如果您是云服务提供商,希望现有运营平台能够与华为云Stack对接,实现租户的自动化创建,并为每个租户预置指定类型的云资源,租户的日常运维由运维部门通过ManageOne进行运维。如果您购买了多家厂商的云平台,希望通过一套云管理软件进行纳管,建议您直接对接云服务接口进行对接,这样可以屏蔽ManageOne的运营特性,只关注云服务特性,对接起来更加灵活。3 对接准备订单接口参数较为复杂,建议您使用可视化工具对接口进行测试,如postman(使用前请关闭SSL证书校验),restclient等。请参考帖子:【华为云Stack ManageOne 运营侧北向对接】北向接口对接准备工作,获取接口文档,接口对接需要的IP,域名等信息本帖提供的方法,适配华为云Stack 6.5.X,8.0版本4 订单接口对接步骤我们知道ManageOne订单接口不能独立使用,需要配合云服务接口使用,这里给出主要的对接步骤,如下:通过用户名和密码调用鉴权接口获取Token和user_id。(可选)通过user_id查询用户关联的project,用户是以project维度操作资源,资源也必须属于某一个project根据选择的project的id查询project详细信息,获取region_id、支持的云服务列表、每个云服务的资源池id和包含的az(可用分区)列表。选择需要申请的云服务类型,比如云硬盘的service_type为evs。订购接口还需要product_id,因此通过查询可用产品列表接口获取。根据不同的云服务定义的数据结构获取对应的参数,这部分由每个云服务具体的订购章节详细描述,参考《ManageOne 6.5.x 云服务Params参数说明》。组合订购接口所需的所有参数,调用接口完成订购。下面给出通过订单接口创建、释放弹性IP(仅type1和type2场景支持弹性IP服务)的详细步骤:5 申请弹性IP这里先给出涉及到的接口清单,如下:序号接口功能URL涉及到的接口文档调用接口使用的域名(样例)1鉴权【POST】/v3/auth/tokens《ManageOne 6.5.X OTenantSecurity服务API参考.doc》iam-apigateway-proxy.demo.com2查询用户关联的project列表【GET】/rest/vdc/v3.0/users/{user_id}/projects《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com3查询project详情,获取该project关联的资源池信息【GET】/rest/vdc/v3.1/projects/{project_id}《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com4查询可申请的产品列表【GET】/rest/product/v3.0/apply/products《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com5查询云资源池可用分区【GET】/rest/serviceaccess/v3.0/available-zones《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com6创建订购【POST】/rest/subscription/v3.0/subscriptions《ManageOne 6.5.X 运营面API参考.doc》《ManageOne 6.5.x 云服务Params参数说明》sc.demo.com7查询订单详情【GET】/rest/order/v3.0/orders/{order_id}《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com8获取外部网络列表【GET】/v2.0/networks《华为云Stack 6.5.X API接口参考.chm》>网络>VPC>VPC>网络vpc.sa-fb-1.demo.com具体接口调用步骤如下:步骤 1 获取token调用示例:URL:https://{IAM对外访问域名}/v3/auth/tokens 请求方法:POST 请求头: Content-Type: application/json;charset=UTF-8 Accept: application/json;charset=UTF-8 Connection: keep-alive 请求体: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "租户名" }, "name": "XXXXXX", "password": "XXXXXX" } } }, "scope": { "project": { "domain": { "name": "租户名" }, "id": "项目Id" } } } }响应消息如下:响应头: X-Subject-Token→MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 响应体: { "token": { "expires_at": "2019-09-09T07:38:55.643000Z", "methods": [ "password" ], "catalog": [], "roles": [ { "name": "vdc_adm", "id": "880ed0477e684b1db7634572ecf19c5c" }, { "name": "te_admin", "id": "7849dd0fc806417c908bb21ea93b5def" }, { "name": "tag_adm", "id": "7ef11d3399a44a56b722b3c017478e34" }, { "name": "approv_adm", "id": "5528afb8b7c946b5bda00a10ca041748" }, { "name": "vdc_owner", "id": "2034341ae2b44fee94c244a8069cde0b" } ], "project": { "domain": { "name": "xssvdc", "id": "15488ac7aec547a68d9451c91173c68c" }, "name": "xssvdc", "id": "27a008f1b83e4dfdbf1143dd336006df" }, "issued_at": "2019-09-08T07:38:55.643000Z", "user": { "domain": { "name": "xssvdc", "id": "15488ac7aec547a68d9451c91173c68c" }, "name": "xssvdc", "id": "b54310fb838b4f8ebf1e9d23bf9691d5"   //用户Id } } }从响应头中我们可以获得X-Subject-Token的值,即为我们所需要的token的值;从响应体中还可以获得用户的Id,以便后续查询用户关联的所有的project步骤2 查询用户关联的project(可选)创建资源时,需要指定该资源所属的project,若一个租户下有多个project,第三方平台需要指明需要使用的project,此时需要查询该用户关联的project,若仅涉及单个project,则不涉及此操作。需要说明的是,当选择某个project创建资源时,需要用该project参考步骤1去获取token。调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/users/{user_id}/projects 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "total": 1, "projects": [ { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "39d881e6-e6a6-4516-8d8e-83446abc263b", "role_name": null, "tenant_name": "tt002", "regions": [ { "region_status": "normal", "region_id": "dg-tky-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "level": "2", "role_id": null, "name": "pj002", "iam_project_name": "pj002", "description": null, "id": "4313bc0e240e4086995e606f6601b730", "enabled": true }, { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "1cfbb21d-3e45-4a0a-887f-c9e6ab215cec", "role_name": null, "tenant_name": "test001", "regions": [ { "region_status": "normal", "region_id": "dg-tky-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "level": "2", "role_id": null, "name": "test001", "iam_project_name": "test001", "description": null, "id": "147c59f42277405e854e7a3123dea3a9", "enabled": true } ] }步骤 3 查询资源池信息创建、变更、删除资源时,需要指定资源所在的region、资源池、可用分区,我们可以通过查询project详情获取该project关联的region、资源池、可用分区信息,接口调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/projects/{project_id} 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "project": { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9", "tenant_name": "xssvdc", "regions": [ { "region_status": "normal", "cloud_infras": [ { "cloud_infra_status": "normal", "cloud_infra_name": "OpenStack_dg-tky-1", "cloud_infra_type": "FUSION_CLOUD", "azs": [ { "az_status": "normal", "az_name": "华为", "az_id": "az0.dc0" } ], "cloud_infra_id": "FUSION_CLOUD_dg-tky-1" } ], "region_id": "dg-tky-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "is_shared": false, "name": "xssvdc", "tenant_type": "vdc", "region_name": null, "id": "27a008f1b83e4dfdbf1143dd336006df", "enabled": true } }此处我们可以获得region_id、cloud_infra_id、az_id,需要注意的是,创建资源时指定的AZ必须与cloud_infra_id、region_id匹配,不能交叉混用!!!步骤4 查询产品列表不同的云服务在ManageOne中体现为对外提供不同的产品,查询时需要指定产品类型(service_type),常用类型有:service_type云服务名称ecs弹性云服务器evs云硬盘ims镜像服务vpc虚拟私有云vfw虚拟防火墙elb弹性负载均衡as弹性伸缩bms裸金属服务调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/product/v3.0/products?limit=100&start=1&status=online&service_type=eip&region_id={region_id}(region_id取值由步骤3获取)请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体(本示例为查询ecs,请结合实际情况,选择需要查询的产品类别): {     "total": 1,     "products": [                 {             "product_id": "b507d3d5c88b4b64adf7d87a20cdf655",             "service_type": "ecs",             "create_vdc_id": "all",             "create_user_id": "32cb5a3c9de44bcf9696db98c1db828a",             "icon_id": "defaulticonecs",             "catalog_id": "1",             "region_id": "dg-dg-1",             "params": "{}",             "name": "{\"en_US\":\"ECS\",\"zh_CN\":\"弹性云服务器\"}",             "description": "{\"zh_CN\": \"由CPU、内存、磁盘等组成的随时可获取、弹性可扩展、按需使用的虚拟的计算服务器。\",\"en_US\": \"Provides scalable virtual compute servers consisting of CPUs, memory, and disks resources.\"}",             "create_time": 1585897648000,             "publish_status": "publish",             "deletable_status": "normal",             "is_default": true,             "publish_scope": "[]",             "online_scope": "[{\"vdcName\":\"all\",\"vdcId\":\"all\"}]",             "online_status": "online",             "approval": false,             "price": null,             "resource_pool_id": "",             "project_id": "",             "az_id": "",             "secret_params": null,             "product_type": null         }     ] }响应体中,approval字段值为false的产品表示该产品没有关联人和审批流程,申请该产品后,不需要经过任何审批流程,提交订单后就会实施,对接时建议使用此类产品。步骤 5 查询可用外部网络查询可用的外部网络,请求示例如下:URL: https://{VPC对外访问域名}/v2.0/networks?router:external=True&tags=service_type=Internet 请求方法:GET 请求头: Content-Type: application/json;charset=UTF-8 Accept: application/json;charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "networks": [ { "provider:physical_network": "physnet1", "ipv6_address_scope": null, "port_security_enabled": true, "mtu": 1500, "id": "cfd58c32-eb48-4fe4-8744-749940b73b72", "router:external": true, "availability_zone_hints": [], "availability_zones": [ "nova" ], "provider:segmentation_id": 210, "ipv4_address_scope": null, "shared": true, "project_id": "a3f457bbf1054e27a59804f4050f24e1", "status": "ACTIVE", "subnets": [ "39385d8e-0d67-4ecc-a1f0-1db294c3f21f" ], "description": "", "tags": [ "group=group1", "service_type=Internet", "az=az0.dc0", "location=DG:localcloud", "name=exNet_02" ], "updated_at": "2019-06-11T01:24:17", "is_default": false, "qos_policy_id": null, "name": "ext_net02", "admin_state_up": true, "tenant_id": "a3f457bbf1054e27a59804f4050f24e1", "created_at": "2019-06-11T01:24:17", "provider:network_type": "vlan" }, { "provider:physical_network": "physnet1", "ipv6_address_scope": null, "port_security_enabled": true, "mtu": 1500, "id": "eaded83b-1f76-42a0-84ea-df711e01db3e", "router:external": true, "availability_zone_hints": [], "availability_zones": [ "nova" ], "provider:segmentation_id": 209, "ipv4_address_scope": null, "shared": true, "project_id": "a3f457bbf1054e27a59804f4050f24e1", "status": "ACTIVE", "subnets": [ "dd6e78b3-aa76-406e-b81a-947f31f0c584" ], "description": "", "tags": [ "group=group2", "service_type=Internet", "az=az0.dc0", "location=DG:localcloud", "name=exNet_01" ], "updated_at": "2019-06-11T01:24:04", "is_default": false, "qos_policy_id": null, "name": "ext_net01", "admin_state_up": true, "tenant_id": "a3f457bbf1054e27a59804f4050f24e1", "created_at": "2019-06-11T01:24:04", "provider:network_type": "vlan" } ] }provider:physical_network的值即为物理网络名称,Id即为外部网络的Id。若查询出来的外部网络为空,请联系现场运维工程师为一级VDC分配外部网络。我们现在获得了创建弹性Ip所需的所有参数,订购接口所需主要参数如下:序号参数名称参考值备注1operate_typeapply申请,固定值2service_typeeip弹性IP,固定值3region_idsa-fb-11区域id,步骤3获取4tenancy30租期截止时间,永久有效则填写05product_id产品id,步骤4获取,查找eip的产品id6tenant_id云服务中的tenant_id和manageOne中的project_id相同,与获取token时指定的project相同7params配置EIP所需参数,见后续表格说明params参数说明参数类型必选值域描述regionIdString是-区域id,步骤3获取publicipObject是-弹性IP信息。tenant_idString是-与获取token时指定的project相同bandwidthObject是-带宽信息。countInteger是-申请弹性IP的数量,用户输入值displayObject是-订单页面呈现的内容。publicip参数说明-参数类型必选值域描述typeString是-弹性IP类型,参考步骤5,填写外部网络名称即可external_net_idString否-外部网络ID,参考步骤5,填写外部网络Idsubnet_idString是-弹性IP所属子网ID,参考步骤5,填写外部网络子网IdportIdString否-弹性IP关联的端口ID。ip_addressString否-弹性IP地址。若不传此参数,系统会自动分配。isCreateBandwidthBoolean否-是否创建带宽。profileMap<String, Object>否-弹性IP资源详情,以key-value形式存储。tagsList<String>否-标签列表。expiredString否-弹性IP到期时间。profile参数说明参数类型必选值域描述product_idString否-产品ID。regionIdString否-区域ID。user_idString否-用户Id,参考步骤1bandwidth参数说明参数类型必选值域描述idString否-带宽ID。共享带宽必选,独占带宽不选。nameString是由中文、英文字母、数字、下划线、中划线组成,长度1-64位。带宽名称。独占带宽必选,共享带宽不选。sizeInteger是-带宽大小。独占带宽必选,共享带宽不选。share_typeString是WHOLE,PER带宽共享类型(共享WHOLE/独占PER)。public_ip_id_specList<PublicIpAndId>否-此字段暂不使用。billing_infoString否-账单信息。tenant_idString否-项目id。bandwidth_typeString否-带宽类型。charge_modeString否-收费模式。descriptionString否长度0-64位。带宽描述。publicip_infoList<PublicIpInfo>否-关联的EIP信息。sharedBoolean否-是否租户级别的资源。rule_typeString否-带宽类型(fip qos/端口qos)。display参数说明参数类型必选值域描述zh_CNList<Resource>是-中文显示内容。en_USList<Resource>是-英文显示内容。Resource参数说明参数类型必选值域描述labelString是-显示key值。valueString是-显示value值。typeString是-显示value的类型(string,array)。步骤6 创建订单,申请弹性IP订单接口中的params参数说明,请参考《ManageOne 6.5.x 云服务Params参数说明》URL:  https://{ManageOne运营侧API对外域名}/rest/subscription/v3.0/subscriptions 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJK4rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体: { "subscriptions": [ { "operate_type": "apply", "product_id": "a67a5dee639d4278915b3ca05de80a2c", "region_id": "boc-test-1", "project_id": "1e0685ced7e04698b88f6268bce3af97", "service_type": "eip", "tenancy": 0, "params": "{\"regionId\":\"boc-test-1\",\"tenant_id\":\"1e0685ced7e04698b88f6268bce3af97\",\"bandwidth\":{\"name\":\"bandwidth-ed7c\",\"share_type\":\"PER\",\"size\":\"5\",\"description\":\"\"},\"publicip\":{\"ip_address\":\"\",\"subnet_id\":\"f81af9a8-b241-4f5e-a5ed-7fb25b4b16c2\",\"type\":\"exNet_02\",\"profile\":{\"product_id\":\"\",\"regionId\":\"boc-test-1\",\"user_id\":\"1e0685ced7e04698b88f6268bce3af97\"}},\"count\":1,\"display\":{\"en_US\":[{\"label\":\"Region\",\"value\":\"boc-test-1\",\"type\":\"string\"},{\"label\":\"External Network\",\"value\":\"exNet_02\",\"type\":\"string\"},{\"label\":\"Subnet\",\"value\":\"160.104.17.0/24\",\"type\":\"string\"},{\"label\":\"Assignment Mode\",\"value\":\"Automatic\",\"type\":\"string\"},{\"label\":\"Bandwidth Name\",\"value\":\"bandwidth-ed7c\",\"type\":\"string\"},{\"label\":\"Bandwidth Size \",\"value\":\"5Mbit/s\",\"type\":\"string\"},{\"label\":\"Description\",\"value\":\"\",\"type\":\"string\"}],\"zh_CN\":[{\"label\":\"地域\",\"value\":\"boc-test-1\",\"type\":\"string\"},{\"label\":\"外部网络\",\"value\":\"exNet_02\",\"type\":\"string\"},{\"label\":\"子网\",\"value\":\"160.104.17.0/24\",\"type\":\"string\"},{\"label\":\"分配方式\",\"value\":\"自动分配\",\"type\":\"string\"},{\"label\":\"带宽名称\",\"value\":\"bandwidth-ed7c\",\"type\":\"string\"},{\"label\":\"带宽大小\",\"value\":\"5Mbit/s\",\"type\":\"string\"},{\"label\":\"描述\",\"value\":\"\",\"type\":\"string\"}]}}" } ] } 响应体: { "purchases": [ { "subscription_id": "20190914113546169610061" } ], "expected_total": 0, "error_details": null }subscription_id即为订单ID步骤7 查询订单详情,确认订单实施状态订单提交成功后,需要定时轮询订单状态,直到订单状态(status字段)为成功URL: https://{ManageOne运营侧API对外域名}/rest/order/v3.0/orders/{order_id}(order_id由上一步响应体获得) 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "order_id": "20190914113546169610061", "parents_id": null, "type": "apply", "service_type": "vpc", "params": "{\"regionId\":\"dg-tky-1\",\"tenant_id\":\"27a008f1b83e4dfdbf1143dd336006df\",\"vpc\":{\"name\":\"vpc-5e10\",\"ntp\":[],\"ntp_v6\":[]},\"subnet\":{\"regionId\":\"dg-tky-1\",\"tenantId\":\"27a008f1b83e4dfdbf1143dd336006df\",\"availableZoneId\":\"\",\"name\":\"subnet-5e10\",\"dhcpEnable\":true,\"cidr\":\"192.168.10.0/24\",\"physicalNetwork\":\"physnet1\",\"segmentationId\":\"177\",\"routed\":false,\"dnsList\":[\"160.102.8.53\",\"160.102.8.54\"]},\"display\":{\"en_US\":[{\"label\":\"Region\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC Name\",\"value\":\"vpc-5e10\",\"type\":\"string\"},{\"label\":\"External Network\",\"value\":\"\",\"type\":\"string\"}],\"zh_CN\":[{\"label\":\"区域\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC名称\",\"value\":\"vpc-5e10\",\"type\":\"string\"},{\"label\":\"外部网络\",\"value\":\"\",\"type\":\"string\"}]}}", "create_user_id": "b54310fb838b4f8ebf1e9d23bf9691d5", "create_user_name": "xssvdc", "vdc_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9", "vdc_name": "xssvdc", "status": "successed", "create_time": "2019-06-11 01:53:42", "implement_time": "2019-06-11 01:53:43", "complete_time": "2019-06-11 01:53:48", "project_id": "27a008f1b83e4dfdbf1143dd336006df", "cloud_infra_id": null, "product_id": "04e12eba75e243368f5cb6a0f52db4af", "region_id": "dg-tky-1", "product_defination_params": "{\"en_US\":\"VPC\",\"zh_CN\":\"虚拟私有云\"}", "tenancy": "0", "original_tenancy": "0", "time_zone": null, "comments": null, "contract_number": null, "rate_params": null, "domain_id": null }6 删除弹性IP删除弹性IP,我们需要指定弹性IP的Id,所属的区域,AZ等信息,步骤如下:步骤 1 获取token参考第5章 步骤1即可步骤2 查询区域列表参考 第5章 步骤3即可步骤3 查询弹性IP列表URL: https://{VPC对外访问域名}/v2.0/floatingips 请求方法:GET 请求头: Content-Type: application/json;charset=UTF-8 Accept: application/json;charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "floatingips": [ { "fixed_ip_address": "44.0.0.124", "floating_ip_address": "8.0.0.11", "floating_network_id": "6c136cc7-3e0b-457e-9316-1a9970e639e2", "id": "046fa5d9-bf50-460c-9ba2-3d069ff5ee4a", "port_id": "291171a7-3be2-4369-896d-9714108c085b", "router_id": "77b15706-4a9e-4e06-b8ce-0b4fea07af3c", "status": "ACTIVE", "tenant_id": "4ffcfaa890994422b23ed46bb98e8df6", "created_at": "2018-12-16T23:47:30", "updated_at": "2018-12-17T00:01:52" } ] }至此,我们获得了创建删除弹性IP订单所需要的参数,如下:序号参数名称参考值备注1operate_typedelete删除,固定值delete2service_typeeip弹性IP,固定值eip3region_idsa-fb-11区域id,步骤3获取4tenant_id云服务中的tenant_id和manageOne中的project_id相同,与步骤1中获取token时指定的project相同5params删除EIP请求参数,见后续表格说明params参数说明参数类型必选值域描述publicIpIdString是-弹性IP ID,参考步骤3获取tenant_idString是-项目ID,与步骤1中获取token时指定的project相同regionIdString是-区域ID,参考步骤2获取idsList<Map<String, String>>是-资源信息。displayObject是-订单页面呈现的内容。ids参数信息参数类型必选值域描述idString是-资源id。必须和publicIpId保持一致。参考步骤3获取service_typeString是-服务类型。取值为eip。display参数说明参数类型必选值域描述zh_CNList<Resource>是-中文显示内容。en_USList<Resource>是-英文显示内容。Resource参数说明参数类型必选值域描述labelString是-显示key值。valueString是-显示value值。typeString是-显示value的类型(string,array)。步骤5 调用订单接口删除弹性IP订单接口中的params参数说明,请参考《ManageOne 6.5.x 云服务Params参数说明》URL:  https://{ManageOne运营侧API对外域名}/rest/subscription/v3.0/subscriptions 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体: { "subscriptions": [ { "operate_type": "delete", "service_type": "eip", "region_id": "boc-test-1", "project_id": "1e0685ced7e04698b88f6268bce3af97", "params": "{\"publicIpId\":\"0a6948ad-3e79-4c0c-bba5-728d7427a826\",\"tenant_id\":\"1e0685ced7e04698b88f6268bce3af97\",\"regionId\":\"boc-test-1\",\"display\":{\"en_US\":[{\"label\":\"Region\",\"value\":\"boc-test-1\",\"type\":\"string\"},{\"label\":\"External Network\",\"value\":\"exNet_02\",\"type\":\"string\"},{\"label\":\"Elastic IP Address\",\"value\":\"160.104.17.172\",\"type\":\"string\"}],\"zh_CN\":[{\"label\":\"地域\",\"value\":\"boc-test-1\",\"type\":\"string\"},{\"label\":\"外部网络\",\"value\":\"exNet_02\",\"type\":\"string\"},{\"label\":\"弹性IP地址\",\"value\":\"160.104.17.172\",\"type\":\"string\"}]},\"ids\":[{\"id\":\"0a6948ad-3e79-4c0c-bba5-728d7427a826\",\"service_type\":\"eip\"}]}" } ] } 响应体: { "purchases": [ { "subscription_id": "20190914110658422269247" } ], "expected_total": 0, "error_details": null }同样的,我们需要调用订单查询接口(参考底5章 步骤7),查询订单状态,直到弹性IP删除完成补充说明:弹性IP的查询、属性更新等操作均需要调用云服务的接口,具体接口参考文档《华为云Stack 6.5.X API接口参考.chm》中“网络”-->“EIP”章节。弹性IP的申请、删除、扩容需要使用ManageOne订单接口,不可将ManageOne订单接口与弹性IP接口混用(如:使用ManageOne订单接口创建资源,使用弹性IP接口删除资源),否则会导致ManageOne上数据展示异常
  • [ManageOne二...] 【华为云Stack ManageOne运营面北向对接】如何使用订单接口管理VPC
    1 订单接口说明ManageOne中,用户通过申请订单的方式对云资源进行申请、变更、释放操作,实现对云资源生命周期的管理,订单接口具有以下特点:订单支持关联审批流程(最大支持五级审批,详情参考ManageOne用户指南),用户完成资源配置并提交后,如果审批通过,Manageone会自动完成订单实施;订单接口对云服务接口(经加固后对外开放的OpenStack接口)进行了一定程度的封装,通过调用订单接口,可以同步完成云资源的多个操作,如,申请虚拟机的同时,为虚拟机挂载数据盘,绑定弹性IP;通过订单接口申请、释放云资源时,会同步扣除、恢复租户配额,当租户配额不够时,会导致订单实施失败;订单接口只提供资源的申请,延期,变更,释放功能,不提供云服务的查询,操作(如虚拟机的开关机,列表查询等)功能,不能独立使用,需要配合云服务接口使用,也就是说,您需要通过ManageOne订单接口申请,延期,变更,释放云资源,使用云服务接口查询,操作云资源说明:    云服务接口也支持申请云资源,与使用ManageOne订单接口的区别是:通过云服务接口创建的资源,在ManageOne页面上,可以查询,操作这些资源,但不能执行变更(如扩容,减容),释放云资源的操作ManageOne中为该租户设置的配额也将不再生效(即使用云服务接口申请、释放资源,ManageOne中对应租户的配额不会变化),这也意味着,如果您不加约束,租户可以超配额申请资源2 订单接口使用场景如第1部分所述,ManageOne订单接口是在云服务接口的基础上封装得到的,包含了ManageOne自身的运营特性,例如产品、服务、区域、配额等,使用上有一定的约束,如果您希望通过调用接口实现对华为云Stack中云资源的生命周期管理,请参考以下几个场景进行评估,符合以下任何一种场景的,建议您选择使用ManageOne订单接口进行对接:如果您公司购买了并部署了华为云Stack产品,您希望通过自动化工具实现云服务资源的自动化发放,从而提高资源申请效率;如果您购买了并部署了华为云Stack产品,公司围绕IT资产的运营运维有一整套流程,您希望已有的流程平台(如ITSM、BOSS等)能够与华为云Stack进行对接,实现现有流程与云服务的整合,在简化服务的申请周期,提高应用上线效率的同时,还能够实现云资源的全流程监控;如果您是云服务提供商,将华为云Stack提供的云服务,按照租户的形式租售给了客户,客户希望实现云服务的自动化发放,需要您提供对接接口;如果您是云服务提供商,希望现有运营平台能够与华为云Stack对接,实现租户的自动化创建,并为每个租户预置指定类型的云资源,租户的日常运维由运维部门通过ManageOne进行运维。如果您购买了多家厂商的云平台,希望通过一套云管理软件进行纳管,建议您直接对接云服务接口进行对接,这样可以屏蔽ManageOne的运营特性,只关注云服务特性,对接起来更加灵活。3 对接准备订单接口参数较为复杂,建议您使用可视化工具对接口进行测试,如postman(使用前请关闭SSL证书校验),restclient等。请参考帖子:【华为云Stack ManageOne 运营侧北向对接】北向接口对接准备工作,获取接口文档,接口对接需要的IP,域名等信息本帖提供的方法,适配华为云Stack 6.5.X,8.0版本4 订单接口对接步骤我们知道ManageOne订单接口不能独立使用,需要配合云服务接口使用,这里给出主要的对接步骤,如下:通过用户名和密码调用鉴权接口获取Token和user_id。(可选)通过user_id查询用户关联的project,用户是以project维度操作资源,资源也必须属于某一个project根据选择的project的id查询project详细信息,获取region_id、支持的云服务列表、每个云服务的资源池id和包含的az(可用分区)列表。选择需要申请的云服务类型,比如云硬盘的service_type为evs。订购接口还需要product_id,因此通过查询可用产品列表接口获取。根据不同的云服务定义的数据结构获取对应的参数,这部分由每个云服务具体的订购章节详细描述,参考《ManageOne 6.5.x 云服务Params参数说明》。组合订购接口所需的所有参数,调用接口完成订购。下面给出通过订单接口创建、释放VPC的详细步骤5 申请VPC这里先给出涉及到的接口清单,如下:序号接口功能URL涉及到的接口文档调用接口使用的域名(样例)1鉴权【POST】/v3/auth/tokens《ManageOne 6.5.X OTenantSecurity服务API参考.doc》iam-apigateway-proxy.demo.com2查询用户关联的project列表【GET】/rest/vdc/v3.0/users/{user_id}/projects《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com3查询project详情,获取该project关联的资源池信息【GET】/rest/vdc/v3.1/projects/{project_id}《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com4查询可申请的产品列表【GET】/rest/product/v3.0/apply/products《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com5查询云资源池可用分区【GET】/rest/serviceaccess/v3.0/available-zones《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com6创建订购【POST】/rest/subscription/v3.0/subscriptions《ManageOne 6.5.X 运营面API参考.doc》《ManageOne 6.5.x 云服务Params参数说明》sc.demo.com7查询订单详情【GET】/rest/order/v3.0/orders/{order_id}《ManageOne 6.5.X 运营面API参考.doc》sc.demo.com8获取外部网络列表【GET】/v2.0/networks《华为云Stack 6.5.X API接口参考.chm》>网络>VPC>VPC>网络vpc.sa-fb-1.demo.com具体接口调用步骤如下:步骤 1 获取token调用示例:URL:https://{IAM对外访问域名}/v3/auth/tokens 请求方法:POST 请求头: Content-Type: application/json;charset=UTF-8 Accept: application/json;charset=UTF-8 Connection: keep-alive 请求体: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "租户名" }, "name": "XXXXXX", "password": "XXXXXX" } } }, "scope": { "project": { "domain": { "name": "租户名" }, "id": "项目Id" } } } }响应消息如下:响应头: X-Subject-Token→MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 响应体: { "token": { "expires_at": "2019-09-09T07:38:55.643000Z", "methods": [ "password" ], "catalog": [], "roles": [ { "name": "vdc_adm", "id": "880ed0477e684b1db7634572ecf19c5c" }, { "name": "te_admin", "id": "7849dd0fc806417c908bb21ea93b5def" }, { "name": "tag_adm", "id": "7ef11d3399a44a56b722b3c017478e34" }, { "name": "approv_adm", "id": "5528afb8b7c946b5bda00a10ca041748" }, { "name": "vdc_owner", "id": "2034341ae2b44fee94c244a8069cde0b" } ], "project": { "domain": { "name": "xssvdc", "id": "15488ac7aec547a68d9451c91173c68c" }, "name": "xssvdc", "id": "27a008f1b83e4dfdbf1143dd336006df" }, "issued_at": "2019-09-08T07:38:55.643000Z", "user": { "domain": { "name": "xssvdc", "id": "15488ac7aec547a68d9451c91173c68c" }, "name": "xssvdc", "id": "b54310fb838b4f8ebf1e9d23bf9691d5"   //用户Id } } }从响应头中我们可以获得X-Subject-Token的值,即为我们所需要的token的值;从响应体中还可以获得用户的Id,以便后续查询用户关联的所有的project步骤2 查询用户关联的project(可选)创建资源时,需要指定该资源所属的project,若一个租户下有多个project,第三方平台需要指明需要使用的project,此时需要查询该用户关联的project,若仅涉及单个project,则不涉及此操作。需要说明的是,当选择某个project创建资源时,需要用该project参考步骤1去获取token。调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/users/{user_id}/projects 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "total": 1, "projects": [ { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "39d881e6-e6a6-4516-8d8e-83446abc263b", "role_name": null, "tenant_name": "tt002", "regions": [ { "region_status": "normal", "region_id": "dg-tky-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "level": "2", "role_id": null, "name": "pj002", "iam_project_name": "pj002", "description": null, "id": "4313bc0e240e4086995e606f6601b730", "enabled": true }, { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "1cfbb21d-3e45-4a0a-887f-c9e6ab215cec", "role_name": null, "tenant_name": "test001", "regions": [ { "region_status": "normal", "region_id": "dg-tky-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "level": "2", "role_id": null, "name": "test001", "iam_project_name": "test001", "description": null, "id": "147c59f42277405e854e7a3123dea3a9", "enabled": true } ] }步骤 3 查询资源池信息创建、变更、删除资源时,需要指定资源所在的region、资源池、可用分区,我们可以通过查询project详情获取该project关联的region、资源池、可用分区信息,接口调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/projects/{project_id} 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "project": { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9", "tenant_name": "xssvdc", "regions": [ { "region_status": "normal", "cloud_infras": [ { "cloud_infra_status": null, "cloud_infra_name": null, "cloud_infra_type": null, "azs": [], "cloud_infra_id": null }, { "cloud_infra_status": "normal", "cloud_infra_name": "OpenStack_dg-tky-1", "cloud_infra_type": "FUSION_CLOUD", "azs": [ { "az_status": "normal", "az_name": "华为", "az_id": "az0.dc0" } ], "cloud_infra_id": "FUSION_CLOUD_dg-tky-1" }, { "cloud_infra_status": "normal", "cloud_infra_name": "VMware_dg-tky-1", "cloud_infra_type": "VMWARE", "azs": [], "cloud_infra_id": "VMWARE_dg-tky-1" } ], "region_id": "dg-tky-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "is_shared": false, "name": "xssvdc", "tenant_type": "vdc", "region_name": null, "id": "27a008f1b83e4dfdbf1143dd336006df", "enabled": true } }此处我们可以获得region_id、cloud_infra_id、az_id,需要注意的是,创建资源时指定的AZ必须与cloud_infra_id、region_id匹配,不能交叉混用!!!步骤4 查询产品列表不同的云服务在ManageOne中体现为对外提供不同的产品,查询时需要指定产品类型(service_type),常用类型有:service_type云服务名称ecs弹性云服务器evs云硬盘ims镜像服务vpc虚拟私有云vfw虚拟防火墙elb弹性负载均衡as弹性伸缩bms裸金属服务调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/product/v3.0/products?limit=100&start=1&status=online&service_type=vpc&region_id={region_id}(region_id取值由步骤3获取)请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: {     "total": 1,     "products": [         {             "product_id": "1222c648ff284296b0f5d848806aba9b",             "service_type": "vpc",             "create_vdc_id": "all",             "create_user_id": "32cb5a3c9de44bcf9696db98c1db828a",             "icon_id": "defaulticonvpc",             "catalog_id": "3",             "region_id": "dg-dg-1",             "params": "{}",             "name": "{\"en_US\":\"VPC\",\"zh_CN\":\"虚拟私有云\"}",             "description": "{\"zh_CN\": \"虚拟私有云即VPC,是一套为云服务器构建的逻辑隔离的、由用户自主配置和管理的虚拟网络环境,同时提供灵活可靠的数据连接方式和全方位的安全防护层,旨在提升用户资源的安全性,简化用户的网络部署。\",\"en_US\": \"Virtual Private Cloud (VPC) lets you provision logically isolated, configurable, and manageable virtual networks for cloud servers. VPC also provides flexible and reliable network connection modes and comprehensive security protection. VPC is designed to improve the security of user resources and simplify network deployment.\"}",             "create_time": 1585897486000,             "publish_status": "publish",             "deletable_status": "normal",             "is_default": true,             "publish_scope": "[]",             "online_scope": "[{\"vdcName\":\"all\",\"vdcId\":\"all\"}]",             "online_status": "online",             "approval": false,             "price": null,             "resource_pool_id": "",             "project_id": "",             "az_id": "",             "secret_params": null,             "product_type": null         }     ] }响应体中,approval字段值为false的产品表示该产品没有关联人和审批流程,申请该产品后,不需要经过任何审批流程,提交订单后就会实施,对接时建议使用此类产品。步骤 5 查询可用外部网络查询可用的外部网络,请求示例如下:URL: https://{VPC对外访问域名}/v2.0/networks?router:external=True&tags=service_type=Location(若使用参数tags=service_type=Location查不到列表,请更换为tags=service_type=Intranet) 请求方法:GET 请求头: Content-Type: application/json;charset=UTF-8 Accept: application/json;charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体:{ "networks": [ { "provider:physical_network": "physnet1", "ipv6_address_scope": null, "port_security_enabled": true, "mtu": 1500, "id": "cfd58c32-eb48-4fe4-8744-749940b73b72", "router:external": true, "availability_zone_hints": [], "availability_zones": [ "nova" ], "provider:segmentation_id": 210, "ipv4_address_scope": null, "shared": true, "project_id": "a3f457bbf1054e27a59804f4050f24e1", "status": "ACTIVE", "subnets": [ "39385d8e-0d67-4ecc-a1f0-1db294c3f21f" ], "description": "", "tags": [ "group=group1", "service_type=Intranet", "az=az0.dc0", "location=DG:localcloud", "name=exNet_02" ], "updated_at": "2019-06-11T01:24:17", "is_default": false, "qos_policy_id": null, "name": "ext_net02", "admin_state_up": true, "tenant_id": "a3f457bbf1054e27a59804f4050f24e1", "created_at": "2019-06-11T01:24:17", "provider:network_type": "vlan" }, { "provider:physical_network": "physnet1", "ipv6_address_scope": null, "port_security_enabled": true, "mtu": 1500, "id": "eaded83b-1f76-42a0-84ea-df711e01db3e", "router:external": true, "availability_zone_hints": [], "availability_zones": [ "nova" ], "provider:segmentation_id": 209, "ipv4_address_scope": null, "shared": true, "project_id": "a3f457bbf1054e27a59804f4050f24e1", "status": "ACTIVE", "subnets": [ "dd6e78b3-aa76-406e-b81a-947f31f0c584" ], "description": "", "tags": [ "group=group2", "service_type=Intranet", "az=az0.dc0", "location=DG:localcloud", "name=exNet_01" ], "updated_at": "2019-06-11T01:24:04", "is_default": false, "qos_policy_id": null, "name": "ext_net01", "admin_state_up": true, "tenant_id": "a3f457bbf1054e27a59804f4050f24e1", "created_at": "2019-06-11T01:24:04", "provider:network_type": "vlan" } ] }provider:physical_network的值即为物理网络名称,Id即为外部网络的Id我们现在获得了创建VPC所需的所有参数,订购接口所需主要参数如下:序号参数名称参考值备注1operate_typeapply申请,固定值apply2service_typevpc虚拟私有云,固定值vpc3region_idsa-fb-11区域id,步骤3获取4tenancy2018-07-27 15:59:59租期租期截止时间,永久有效则填写05product_id产品id,步骤4获取6tenant_id云服务中的tenant_id和manageOne中的project_id相同,步骤3获取7nametestvpc自定义新建vpc的名称8external_gateway_info:network_id外部网关的网络ID,参考步骤5,Type3场景下不需要填写,Type1、Type2场景必填9display订单显示信息,可根据需要填写,值可以为空,属性名必须有10subnetregionId子网区域id,和vpc区域id相同tenant_id和vpc的tenant_id相同,公共参数章节获取namesubnet_test子网名称,用户自定义cidr192.168.0.0/24子网IP地址段,用户自定义gatewayIp192.168.0.1子网网关地址,用户自定义dnsListDNS服务器列表physicalNetworkphysnet1外部网关的网络ID,查询接口为:【GET】/v2.0/networks,参考《华为云Stack 6.5.X API接口参考.chm》,Type1、Type2场景下不需要填写,Type3场景必填步骤6 创建订单,申请VPC订单接口中的params参数说明,请参考《ManageOne 6.5.x 云服务Params参数说明》当华为云Stack组网场景为type1、type2时,申请VPC请求示例如下:URL:  https://{ManageOne运营侧API对外域名}/rest/subscription/v3.0/subscriptions 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体: { "subscriptions": [ { "operate_type": "apply", "product_id": "e50123fc503049fa9e5f9072d8b47585", "region_id": "sa-fb-11", "project_id": "1d998b1c7e264baba3203cfe9867b011", "service_type": "vpc", "tenancy": "2018-07-27 15:59:59", "params": "{\"regionId\":\"sa-fb-11\",\"tenant_id\":\"1d998b1c7e264baba3203cfe9867b011\",\"vpc\":{\"name\":\"vpc-eabb\",\"external_gateway_info\":{\"network_id\":\"27e6e110-8d29-481c-93af-c3ba39c22c37\"}},\"subnet\":{\"regionId\":\"sa-fb-11\",\"tenantId\":\"1d998b1c7e264baba3203cfe9867b011\",\"availableZoneId\":\"\",\"name\":\"subnet-eabc\",\"cidr\":\"192.168.0.0/24\",\"gatewayIp\":\"192.168.0.1\",\"dhcpEnable\":true,\"dnsList\":[\"18.125.1.51\",\"18.125.1.52\"]},\"display\":[{\"label\":\"Region\",\"value\":\"sa-fb-11\",\"type\":\"string\"},{\"label\":\"VPC Name\",\"value\":\"vpc-eabb\",\"type\":\"string\"},{\"label\":\"External Network\",\"value\":\"dummy_external_network\",\"type\":\"string\"}]}" } ] } 响应体: { "purchases": [ { "subscription_id": "20190914113546169610061" } ], "expected_total": 0, "error_details": null }subscription_id即为订单ID当华为云Stack组网场景为type3时,申请VPC请求示例如下:URL:  https://{ManageOne运营侧API对外域名}/rest/subscription/v3.0/subscriptions 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体: { "subscriptions": [ { "operate_type": "apply", "product_id": "04e12eba75e243368f5cb6a0f52db4af", "region_id": "dg-tky-1", "project_id": "27a008f1b83e4dfdbf1143dd336006df", "service_type": "vpc", "tenancy": 0, "params": "{\"regionId\":\"dg-tky-1\",\"tenant_id\":\"27a008f1b83e4dfdbf1143dd336006df\",\"vpc\":{\"name\":\"vpc-97f0\",\"ntp\":[],\"ntp_v6\":[]},\"subnet\":{\"regionId\":\"dg-tky-1\",\"tenantId\":\"27a008f1b83e4dfdbf1143dd336006df\",\"availableZoneId\":\"\",\"name\":\"subnet-97f1\",\"dhcpEnable\":true,\"cidr\":\"192.168.100.0/24\",\"gatewayIp\":\"192.168.100.1\",\"physicalNetwork\":\"physnet1\",\"segmentationId\":\"\",\"routed\":false,\"dnsList\":[\"160.102.8.53\",\"160.102.8.54\"],\"allocation_pools\":[{\"start\":\"192.168.100.2\",\"end\":\"192.168.100.254\"}]},\"display\":{\"en_US\":[{\"label\":\"Region\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC Name\",\"value\":\"vpc-97f0\",\"type\":\"string\"},{\"label\":\"External Network\",\"value\":\"\",\"type\":\"string\"}],\"zh_CN\":[{\"label\":\"区域\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC名称\",\"value\":\"vpc-97f0\",\"type\":\"string\"},{\"label\":\"外部网络\",\"value\":\"\",\"type\":\"string\"}]}}" } ] } 响应体: { "purchases": [ { "subscription_id": "20190914113546169610061" } ], "expected_total": 0, "error_details": null }subscription_id即为订单ID步骤7 查询订单详情,确认订单实施状态订单提交成功后,需要定时轮询订单状态,直到订单状态(status字段)为成功URL: https://{ManageOne运营侧API对外域名}/rest/order/v3.0/orders/{order_id}(order_id由上一步响应体获得) 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "order_id": "20190914113546169610061", "parents_id": null, "type": "apply", "service_type": "vpc", "params": "{\"regionId\":\"dg-tky-1\",\"tenant_id\":\"27a008f1b83e4dfdbf1143dd336006df\",\"vpc\":{\"name\":\"vpc-5e10\",\"ntp\":[],\"ntp_v6\":[]},\"subnet\":{\"regionId\":\"dg-tky-1\",\"tenantId\":\"27a008f1b83e4dfdbf1143dd336006df\",\"availableZoneId\":\"\",\"name\":\"subnet-5e10\",\"dhcpEnable\":true,\"cidr\":\"192.168.10.0/24\",\"physicalNetwork\":\"physnet1\",\"segmentationId\":\"177\",\"routed\":false,\"dnsList\":[\"160.102.8.53\",\"160.102.8.54\"]},\"display\":{\"en_US\":[{\"label\":\"Region\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC Name\",\"value\":\"vpc-5e10\",\"type\":\"string\"},{\"label\":\"External Network\",\"value\":\"\",\"type\":\"string\"}],\"zh_CN\":[{\"label\":\"区域\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC名称\",\"value\":\"vpc-5e10\",\"type\":\"string\"},{\"label\":\"外部网络\",\"value\":\"\",\"type\":\"string\"}]}}", "create_user_id": "b54310fb838b4f8ebf1e9d23bf9691d5", "create_user_name": "xssvdc", "vdc_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9", "vdc_name": "xssvdc", "status": "successed", "create_time": "2019-06-11 01:53:42", "implement_time": "2019-06-11 01:53:43", "complete_time": "2019-06-11 01:53:48", "project_id": "27a008f1b83e4dfdbf1143dd336006df", "cloud_infra_id": null, "product_id": "04e12eba75e243368f5cb6a0f52db4af", "region_id": "dg-tky-1", "product_defination_params": "{\"en_US\":\"VPC\",\"zh_CN\":\"虚拟私有云\"}", "tenancy": "0", "original_tenancy": "0", "time_zone": null, "comments": null, "contract_number": null, "rate_params": null, "domain_id": null }6 删除VPC删除VPC,我们需要指定VPC的Id,所属的区域,AZ等信息,步骤如下:步骤 1 获取token参考第5章 步骤1即可步骤2 查询指定VPC下关联的子网列表涉及接口如下:接口功能接口方法接口URL提供接口的云服务调用接口使用的域名(样例)获取VPC信息GET/v2.0/routers虚拟私有云vpc.sa-fb-1.demo.com获取端口列表GET/v2.0/ports?device_id={vpc_id}虚拟私有云vpc.sa-fb-1.demo.com获取子网详情GET/v2.0/subnets/{subnet-id}虚拟私有云vpc.sa-fb-1.demo.com接口调用步骤略,上表所列接口的具体参数说明,请参考接口文档《华为云Stack 6.5.X API接口参考.chm》“网络”-->“VPC”-->“VPC”章节步骤3 删除指定VPC下的所有子网涉及接口如下:接口功能接口方法接口URL提供接口的云服务调用接口使用的域名(样例)获取子网详情DELETE/v2.0/subnets/{subnet-id}虚拟私有云vpc.sa-fb-1.demo.com上表所列接口的具体参数说明,请参考接口文档《华为云Stack 6.5.X API接口参考.chm》“网络”-->“VPC”-->“VPC”章节步骤4 查询区域列表参考 第5章 步骤3即可至此,我们获得了创建删除VPC订单所需要的参数,如下:序号参数名称参考值备注1operate_typedelete删除,固定值delete,必选2service_typevpc虚拟私有云,固定值vpc,不选3region_idsa-fb-11区域id,步骤4获取4vpcIdvpc的id,即router的Id,查询接口为:【GET】/v2.0/routers,参考《华为云Stack 6.5.X API接口参考.chm》5tenant_id云服务中的tenant_id和manageOne中的project_id相同,此处与步骤1中获取token时指定的project相同6display订单显示信息,可根据需要填写,值可以为空,属性名必须有步骤5 调用订单接口删除VPC订单接口中的params参数说明,请参考《ManageOne 6.5.x 云服务Params参数说明》URL:  https://{ManageOne运营侧API对外域名}/rest/subscription/v3.0/subscriptions 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体: { "subscriptions": [ { "operate_type": "delete", "service_type": "vpc", "region_id": "sa-fb-11", "project_id": "1d998b1c7e264baba3203cfe9867b011", "params": "{\"vpcId\":\"d887af5c-1d20-43b3-8bb8-7c284813b3a9\",\"tenant_id\":\"1d998b1c7e264baba3203cfe9867b011\",\"regionId\":\"sa-fb-11\",\"display\":[{\"label\":\"Region\",\"value\":\"sa-fb-11\",\"type\":\"string\"},{\"label\":\"VPC Name\",\"value\":\"vpc-eabb\",\"type\":\"string\"}],\"ids\":[{\"id\":\"d887af5c-1d20-43b3-8bb8-7c284813b3a9\",\"service_type\":\"vpc\"}]}" } ] } 响应体: { "purchases": [ { "subscription_id": "20190914110658422269247" } ], "expected_total": 0, "error_details": null }同样的,我们需要调用订单查询接口(参考底5章 步骤7),查询订单状态,直到VPC删除完成补充说明:VPC的查询、属性更新等操作均需要调用云服务的接口,具体接口参考文档《华为云Stack 6.5.X API接口参考.chm》中“网络”-->“VPC”-->“VPC”章节。VPC的申请、删除、扩容需要使用ManageOne订单接口,不可将ManageOne订单接口与VPC接口混用(如:使用ManageOne订单接口创建资源,使用VPC接口删除资源),否则会导致ManageOne上数据展示异常
  • [ManageOne二...] 【华为云Stack ManageOne运营面北向对接】如何使用订单接口管理云磁盘
    1 订单接口说明HCS支持通过订单接口或云服务接口申请、删除弹性云硬盘(EVS),本贴介绍通过订单接口的方式申请EVS。关于二者的区别以及使用场景,可以参考:cid:link_02 订单接口使用场景如第1部分所述,ManageOne订单接口是在云服务接口的基础上封装得到的,包含了ManageOne自身的运营特性,例如产品、服务、区域、配额等,使用上有一定的约束,如果您希望通过调用接口实现对华为云Stack中云资源的生命周期管理,请参考以下几个场景进行评估,符合以下任何一种场景的,建议您选择使用ManageOne订单接口进行对接:如果您公司购买了并部署了华为云Stack产品,您希望通过自动化工具实现云服务资源的自动化发放,从而提高资源申请效率;如果您购买了并部署了华为云Stack产品,公司围绕IT资产的运营运维有一整套流程,您希望已有的流程平台(如ITSM、BOSS等)能够与华为云Stack进行对接,实现现有流程与云服务的整合,在简化服务的申请周期,提高应用上线效率的同时,还能够实现云资源的全流程监控;如果您是云服务提供商,将华为云Stack提供的云服务,按照租户的形式租售给了客户,客户希望实现云服务的自动化发放,需要您提供对接接口;如果您是云服务提供商,希望现有运营平台能够与华为云Stack对接,实现租户的自动化创建,并为每个租户预置指定类型的云资源,租户的日常运维由运维部门通过ManageOne进行运维。如果您购买了多家厂商的云平台,希望通过一套云管理软件进行纳管,建议您直接对接云服务接口进行对接,这样可以屏蔽ManageOne的运营特性,只关注云服务特性,对接起来更加灵活。3 对接准备订单接口参数较为复杂,建议您使用可视化工具对接口进行测试,如postman(使用前请关闭SSL证书校验),restclient等。请参考帖子:【华为云Stack ManageOne 运营侧北向对接】北向接口对接准备工作,获取接口文档,接口对接需要的IP,域名等信息本帖提供的方法,适配华为云Stack 6.5.X,8.X版本4 订单接口对接步骤我们知道ManageOne订单接口不能独立使用,需要配合云服务接口使用,这里给出主要的对接步骤,如下:通过用户名和密码调用鉴权接口获取Token和user_id。(可选)通过user_id查询用户关联的project,用户是以project维度操作资源,资源也必须属于某一个project根据选择的project的id查询project详细信息,获取region_id、支持的云服务列表、每个云服务的资源池id和包含的az(可用分区)列表。选择需要申请的云服务类型,比如云硬盘的service_type为evs。订购接口还需要product_id,因此通过查询可用产品列表接口获取。根据不同的云服务定义的数据结构获取对应的参数,这部分由每个云服务具体的订购章节详细描述,参考《ManageOne 云服务Params参数说明》。组合订购接口所需的所有参数,调用接口完成订购。下面给出通过订单接口创建、释放云磁盘的详细步骤5 申请云磁盘这里先给出涉及到的接口清单,如下:序号接口功能URL涉及到的接口文档调用接口使用的域名(样例)1鉴权【POST】/v3/auth/tokens《ManageOne OTenantSecurity服务API参考.doc》iam-apigateway-proxy.demo.com2查询用户关联的project列表【GET】/rest/vdc/v3.0/users/{user_id}/projects《ManageOne 运营面API参考.doc》sc.demo.com3查询project详情,获取该project关联的资源池信息【GET】/rest/vdc/v3.1/projects/{project_id}《ManageOne 运营面API参考.doc》sc.demo.com4查询可申请的产品列表【GET】/rest/product/v3.0/apply/products《ManageOne 运营面API参考.doc》sc.demo.com5查询云资源池可用分区【GET】/rest/serviceaccess/v3.0/available-zones《ManageOne 运营面API参考.doc》sc.demo.com6创建订购【POST】/rest/subscription/v3.0/subscriptions《ManageOne 运营面API参考.doc》《ManageOne 云服务Params参数说明》sc.demo.com7查询订单详情【GET】/rest/order/v3.0/orders/{order_id}《ManageOne 运营面API参考.doc》sc.demo.com8获取镜像列表【GET】/v2/cloudimages《华为云Stack API接口参考.chm》>计算>IMS或《云硬盘(IMS) API参考(for 华为云Stack).pdf》ims.sa-fb-1.demo.com9获取磁盘类型【GET】/v1.0/resource-tags《华为云Stack API接口参考.chm》>公共组件>CCS 或《华为云Stack 云服务API参考.docx》>云配置服务(CCS)ccs.sa-fb-1.demo.com具体接口调用步骤如下:步骤 1 获取token调用示例:URL:https://{IAM对外访问域名}/v3/auth/tokens 请求方法:POST 请求头: Content-Type: application/json;charset=UTF-8 Accept: application/json;charset=UTF-8 Connection: keep-alive 请求体: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "租户名" }, "name": "XXXXXX", "password": "XXXXXX" } } }, "scope": { "project": { "domain": { "name": "租户名" }, "id": "项目Id" } } } }响应消息如下:响应头: X-Subject-Token→MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 响应体: { "token": { "expires_at": "2019-09-09T07:38:55.643000Z", "methods": [ "password" ], "catalog": [], "roles": [ { "name": "vdc_adm", "id": "880ed0477e684b1db7634572ecf19c5c" }, { "name": "te_admin", "id": "7849dd0fc806417c908bb21ea93b5def" }, { "name": "tag_adm", "id": "7ef11d3399a44a56b722b3c017478e34" }, { "name": "approv_adm", "id": "5528afb8b7c946b5bda00a10ca041748" }, { "name": "vdc_owner", "id": "2034341ae2b44fee94c244a8069cde0b" } ], "project": { "domain": { "name": "xssvdc", "id": "15488ac7aec547a68d9451c91173c68c" }, "name": "xssvdc", "id": "27a008f1b83e4dfdbf1143dd336006df" }, "issued_at": "2019-09-08T07:38:55.643000Z", "user": { "domain": { "name": "xssvdc", "id": "15488ac7aec547a68d9451c91173c68c" }, "name": "xssvdc", "id": "b54310fb838b4f8ebf1e9d23bf9691d5"   //用户Id } } }从响应头中我们可以获得X-Subject-Token的值,即为我们所需要的token的值;从响应体中还可以获得用户的Id,以便后续查询用户关联的所有的project步骤2 查询用户关联的project(可选)创建资源时,需要指定该资源所属的project,若一个租户下有多个project,第三方平台需要指明需要使用的project,此时需要查询该用户关联的project,若仅涉及单个project,则不涉及此操作。需要说明的是,当选择某个project创建资源时,需要用该project参考步骤1去获取token。调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/users/{user_id}/projects 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "total": 1, "projects": [ { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "1cfbb21d-3e45-4a0a-887f-c9e6ab215cec", "role_name": null, "tenant_name": "test001", "regions": [ { "region_status": "normal", "region_id": "dg-tky-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "level": "2", "role_id": null, "name": "test001", "iam_project_name": "test001", "description": null, "id": "147c59f42277405e854e7a3123dea3a9", "enabled": true } ] }步骤 3 查询资源池信息创建、变更、删除资源时,需要指定资源所在的region、资源池、可用分区,我们可以通过查询project详情获取该project关联的region、资源池、可用分区信息,接口调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/projects/{project_id} 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "project": { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9", "tenant_name": "xssvdc", "regions": [ { "region_status": "normal", "cloud_infras": [ { "cloud_infra_status": null, "cloud_infra_name": null, "cloud_infra_type": null, "azs": [], "cloud_infra_id": null }, { "cloud_infra_status": "normal", "cloud_infra_name": "OpenStack_dg-tky-1", "cloud_infra_type": "FUSION_CLOUD", "azs": [ { "az_status": "normal", "az_name": "华为", "az_id": "az0.dc0" } ], "cloud_infra_id": "FUSION_CLOUD_dg-tky-1" }, { "cloud_infra_status": "normal", "cloud_infra_name": "VMware_dg-tky-1", "cloud_infra_type": "VMWARE", "azs": [], "cloud_infra_id": "VMWARE_dg-tky-1" } ], "region_id": "dg-tky-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "is_shared": false, "name": "xssvdc", "tenant_type": "vdc", "region_name": null, "id": "27a008f1b83e4dfdbf1143dd336006df", "enabled": true } }此处我们可以获得region_id、cloud_infra_id、az_id,需要注意的是,创建资源时指定的AZ必须与cloud_infra_id、region_id匹配,不能交叉混用!!!步骤4 查询产品列表不同的云服务在ManageOne中体现为对外提供不同的产品,查询时需要指定产品类型(service_type),常用类型有:service_type云服务名称ecs弹性云服务器evs云硬盘ims镜像服务vpc虚拟私有云vfw虚拟防火墙elb弹性负载均衡as弹性伸缩bms裸金属服务调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/product/v3.0/products?limit=100&start=1&status=online&service_type=evs&region_id={region_id}(region_id取值由步骤3获取) 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: {     "total": 1,     "products": [         {             "product_id": "3b54ed7bb86c4d278876b5018ec96201",             "service_type": "evs",             "create_vdc_id": "all",             "create_user_id": "32cb5a3c9de44bcf9696db98c1db828a",             "icon_id": "defaulticonevs",             "catalog_id": "2",             "region_id": "dg-dg-1",             "params": "{}",             "name": "{\"en_US\":\"EVS\",\"zh_CN\":\"弹性云硬盘\"}",             "description": "{\"zh_CN\": \"提供自动调整其弹性存储资源的管理服务\",\"en_US\": \"Elastic, scalable Storage servers\"}",             "create_time": 1585897649000,             "publish_status": "publish",             "deletable_status": "normal",             "is_default": true,             "publish_scope": "[]",             "online_scope": "[{\"vdcName\":\"all\",\"vdcId\":\"all\"}]",             "online_status": "online",             "approval": false,             "price": null,             "resource_pool_id": "",             "project_id": "",             "az_id": "",             "secret_params": null,             "product_type": null         }     ] }响应体中,approval字段值为false的产品表示该产品没有关联人和审批流程,申请该产品后,不需要经过任何审批流程,提交订单后就会实施,对接时建议使用此类产品。步骤 5 查询可用镜像(可选)查询可用的镜像列,请求示例如下:URL: https://{ims对外访问域名}/v2/cloudimages 请求方法:GET 请求头: Content-Type: application/json;charset=UTF-8 Accept: application/json;charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "images": [ { "schema": "/v2/schemas/image", "__support_live_resize": "False", "__system_encrypted": "", "min_disk": 20, "created_at": "2019-06-11T01:48:33Z", "__image_source_type": "glance", "container_format": "bare", "__system_support_market": false, "file": "/v2/images/833c9fe8-d27d-4238-a7e3-e43a683159a8/file", "updated_at": "2019-06-11T01:49:55Z", "protected": true, "checksum": "eff39ae88e39b2e654d60b9f4c7faf47", "id": "833c9fe8-d27d-4238-a7e3-e43a683159a8", "__support_static_ip": "False", "__isregistered": "true", "min_ram": 1024, "file_format": "qcow2", "owner": "a21752d4272b4ffa82725c1f0c61173f", "hw_firmware_type": "bios", "__os_type": "Linux", "__imagetype": "gold", "visibility": "public", "file_name": "**.qcow2", "cloudinit": "False", "__quick_start": "False", "virtual_env_type": "FusionCompute", "__support_kvm": "true", "hw_disk_bus": "virtio", "tags": [], "__platform": "EulerOS", "is_auto_config": "false", "size": 928961536, "__os_bit": "64", "__os_version": "EulerOS 2.5 64bit", "name": "EulerOS", "self": "/v2/images/833c9fe8-d27d-4238-a7e3-e43a683159a8", "disk_format": "qcow2", "__admin_encrypted": "", "describe": "", "virtual_size": null, "status": "active" } ] }这一步主要获得镜像Id,以及使用该镜像创建虚拟机时,所要求的最小磁盘(min_disk),和最小内存(min_ram),后续创建虚拟机时所选择的规格需要大于等于镜像的最低要求,否则会创建失败步骤6 查询磁盘类型使用CCS接口查询可用的磁盘类型,如下:URL: https://{CCS对外域名}/v1.0/resource-tags?resource_type=volume_type请求方法:GET请求头:Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=请求体:无响应体示例:{     "resources": [         {             "tags": {                 "display_name": [                     "SSD"                 ],                 "name": [                     "SSD"                 ],                 "availability_zone": [                     "az0.dc1"                 ]             },             "resource_type": "volume_type",             "resource_id": "7e6f413a-bc5e-4f10-bab3-602bb0e14286"         }     ] }响应体中我们可以获取:磁盘类型所适用的可用分区,即availability_zone的值;磁盘类型的名称,即name的值;磁盘类型的资源ID,即resource_id的值此处根据步骤3中所选的可用分区进行过滤,选择适用的磁盘类型即可。我们现在获得了创建EVS所需的所有参数,订购接口所需主要参数如下:序号参数名称参考值备注1operate_typeapply申请,固定值apply,必选2service_typeevs云硬盘,此处固定填写evs,必选3actioncreate_volume创建,固定值create_volume,必选4region_idsa-fb-11区域id,步骤3获取,必选5availability_zoneaz1.dc1可用分区id,步骤3获取,必选6volumes:volume_typeSATA云硬盘类型,从步骤6获取,必选7volumes:snapshot_id117220c2-715a-41ff-a8c9-67e62c3fa802(可选)从快照创建云硬盘时此参数值填写快照Id,磁盘快照查询接口为:【GET】/v2/{tenant_id}/snapshots,参考《华为云Stack API接口参考.chm》8volumes:source_volid213220c2-715a-41ff-a8c9-67e62234802(可选)从已有云硬盘创建新的云硬盘时,此处填写已有云硬盘的Id,云硬盘列表查询接口为:【GET】/v2/{tenant_id}/volumes/detail,参考《华为云Stack API接口参考.chm》9volumes:imageRef645320c2-715a-41ff-a8c9-67e6aaafa802(可选)从镜像创建EVS时,此处填写镜像Id,从步骤5获取。10volumes:size20磁盘大小,必选11display用于ManageOne页面显示,根据订购接口的其他参数填写对应的值即可,键必须保留,值可以为空步骤7 创建订单,申请云磁盘订单接口中的params参数说明,请参考《ManageOne 云服务Params参数说明》URL:  https://{ManageOne运营侧API对外域名}/rest/subscription/v3.0/subscriptions 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体: { "subscriptions": [ { "project_id": "27a008f1b83e4dfdbf1143dd336006df", "region_id": "dg-tky-1", "product_id": "4230c653329847db9a3aacbe23491cf3", "tenancy": "0", "comments": "", "operate_type": "apply", "service_type": "evs", "time_zone": "GMT+08:00", "params": "{\"action\":\"create_volume\",\"count\":1,\"volumes\":[{\"backup_id\":null,\"source_volid\":null,\"snapshot_id\":null,\"count\":1,\"availability_zone\":\"az0.dc0\",\"description\":\"\",\"size\":30,\"name\":\"volume-ecf9\",\"imageRef\":null,\"volume_type\":\"IPSAN\",\"metadata\":{\"hw:passthrough\":false},\"multiattach\":0,\"OS-SCH-HNT:scheduler_hints\":{}}],\"region_id\":\"dg-tky-1\",\"display\":{\"zh_CN\":[{\"label\":\"区域\",\"type\":\"string\",\"value\":\"东莞\"},{\"label\":\"可用分区\",\"type\":\"string\",\"value\":\"华为\"},{\"label\":\"数据来源\",\"type\":\"string\",\"value\":\"无\"},{\"label\":\"磁盘\",\"type\":\"string\",\"value\":\"数据盘\"},{\"label\":\"镜像\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"容量(GB)\",\"type\":\"string\",\"value\":30},{\"label\":\"该磁盘的IOPS上限\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"该磁盘的带宽上限(MB/s)\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"磁盘类型\",\"type\":\"string\",\"value\":\"SATA\"},{\"label\":\"磁盘模式\",\"type\":\"string\",\"value\":\"VBD\"},{\"label\":\"共享方式\",\"type\":\"string\",\"value\":\"否\"},{\"label\":\"磁盘名称\",\"type\":\"string\",\"value\":\"volume-ecf9\"}],\"en_US\":[{\"label\":\"Region\",\"type\":\"string\",\"value\":\"东莞\"},{\"label\":\"AZ\",\"type\":\"string\",\"value\":\"华为\"},{\"label\":\"Data Source\",\"type\":\"string\",\"value\":\"None\"},{\"label\":\"Disk\",\"type\":\"string\",\"value\":\"Data disk\"},{\"label\":\"Image\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"Capacity(GB)\",\"type\":\"string\",\"value\":30},{\"label\":\"IOPS Upper Limit of the Disk\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"Bandwidth Upper Limit of the Disk (MB/s)\",\"type\":\"string\",\"value\":\"--\"},{\"label\":\"Disk Type\",\"type\":\"string\",\"value\":\"SATA\"},{\"label\":\"Device Type\",\"type\":\"string\",\"value\":\"VBD\"},{\"label\":\"Disk Sharing\",\"type\":\"string\",\"value\":\"No\"},{\"label\":\"Disk Name\",\"type\":\"string\",\"value\":\"volume-ecf9\"}]}}" } ] } 响应体: { "purchases": [ { "subscription_id": "20190914113546169610061" } ], "expected_total": 0, "error_details": null }subscription_id即为订单ID步骤8 查询订单详情,确认订单实施状态订单提交成功后,需要定时轮询订单状态,直到订单状态(status字段)为成功URL: https://{ManageOne运营侧API对外域名}/rest/order/v3.0/orders/{order_id}(order_id由上一步响应体获得) 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "order_id": "20190914113546169610061", "parents_id": null, "type": "apply", "service_type": "vpc", "params": "{\"regionId\":\"dg-tky-1\",\"tenant_id\":\"27a008f1b83e4dfdbf1143dd336006df\",\"vpc\":{\"name\":\"vpc-5e10\",\"ntp\":[],\"ntp_v6\":[]},\"subnet\":{\"regionId\":\"dg-tky-1\",\"tenantId\":\"27a008f1b83e4dfdbf1143dd336006df\",\"availableZoneId\":\"\",\"name\":\"subnet-5e10\",\"dhcpEnable\":true,\"cidr\":\"192.168.10.0/24\",\"physicalNetwork\":\"physnet1\",\"segmentationId\":\"177\",\"routed\":false,\"dnsList\":[\"160.102.8.53\",\"160.102.8.54\"]},\"display\":{\"en_US\":[{\"label\":\"Region\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC Name\",\"value\":\"vpc-5e10\",\"type\":\"string\"},{\"label\":\"External Network\",\"value\":\"\",\"type\":\"string\"}],\"zh_CN\":[{\"label\":\"区域\",\"value\":\"东莞\",\"type\":\"string\"},{\"label\":\"VPC名称\",\"value\":\"vpc-5e10\",\"type\":\"string\"},{\"label\":\"外部网络\",\"value\":\"\",\"type\":\"string\"}]}}", "create_user_id": "b54310fb838b4f8ebf1e9d23bf9691d5", "create_user_name": "xssvdc", "vdc_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9", "vdc_name": "xssvdc", "status": "successed", "create_time": "2019-06-11 01:53:42", "implement_time": "2019-06-11 01:53:43", "complete_time": "2019-06-11 01:53:48", "project_id": "27a008f1b83e4dfdbf1143dd336006df", "cloud_infra_id": null, "product_id": "04e12eba75e243368f5cb6a0f52db4af", "region_id": "dg-tky-1", "product_defination_params": "{\"en_US\":\"VPC\",\"zh_CN\":\"虚拟私有云\"}", "tenancy": "0", "original_tenancy": "0", "time_zone": null, "comments": null, "contract_number": null, "rate_params": null, "domain_id": null }6 删除云磁盘删除云磁盘,我们需要指定云磁盘的Id,所属的区域,AZ等信息,步骤如下:步骤 1 获取token参考第5章 步骤1即可步骤2 查询区域列表参考 第5章 步骤3即可步骤3 查询云磁盘列表URL: https://{evs对外访问域名}/v2/{project_id}/volumes(project_id需要与获取token时指定的project的Id一致) 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "volumes": [ { "id": "cd6a692a-da31-4cd8-98e5-fd5146085fbb", "links": [ { "href": "https://evs.dg-tky-1.dg-tky.com/v2/27a008f1b83e4dfdbf1143dd336006df/volumes/cd6a692a-da31-4cd8-98e5-fd5146085fbb", "rel": "self" }, { "href": "https://evs.dg-tky-1.dg-tky.com/27a008f1b83e4dfdbf1143dd336006df/volumes/cd6a692a-da31-4cd8-98e5-fd5146085fbb", "rel": "bookmark" } ], "name": "volume-ecf9" }, { "id": "2231e180-6e62-412b-80f8-6eceb90fff07", "links": [ { "href": "https://evs.dg-tky-1.dg-tky.com/v2/27a008f1b83e4dfdbf1143dd336006df/volumes/2231e180-6e62-412b-80f8-6eceb90fff07", "rel": "self" }, { "href": "https://evs.dg-tky-1.dg-tky.com/27a008f1b83e4dfdbf1143dd336006df/volumes/2231e180-6e62-412b-80f8-6eceb90fff07", "rel": "bookmark" } ], "name": "ecs-e960-volume-0000" } ] }我们现在获得了删除云磁盘所需的所有参数,订购接口所需主要参数如下:序号参数名称参考值备注1operate_typedelete删除,固定值delete,必选2service_typeevs云硬盘,填写固定值evs,必选3actiondelete_volume删除,固定值delete_volume,必选4region_idsa-fb-11区域id,步骤2获取,必选5id需要删除的云硬盘的id,云硬盘列表查询接口为:【GET】/v2/{tenant_id}/volumes,参考《华为云Stack API接口参考.chm》,必选6display订单显示信息,可根据需要填写,值可以为空,key需保留步骤4 调用订单接口删除云磁盘订单接口中的params参数说明,请参考《ManageOne 云服务Params参数说明》URL:  https://{ManageOne运营侧API对外域名}/rest/subscription/v3.0/subscriptions 请求方法:POST 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体: { "subscriptions": [ { "project_id": "27a008f1b83e4dfdbf1143dd336006df", "region_id": "dg-tky-1", "operate_type": "delete", "service_type": "evs", "params": "{\"action\":\"delete_volume\",\"ids\":[{\"id\":\"58bfb6b4-567c-4535-95d6-ed788092c141\",\"service_type\":\"evs\",\"name\":\"volume-0914\"}],\"region_id\":\"dg-tky-1\",\"display\":{\"zh_CN\":[{\"label\":\"区域\",\"type\":\"string\",\"value\":\"东莞\"},{\"label\":\"可用分区\",\"type\":\"string\",\"value\":\"华为\"},{\"label\":\"磁盘类型\",\"type\":\"string\",\"value\":\"SATA\"},{\"label\":\"容量\",\"type\":\"string\",\"value\":30},{\"label\":\"数据来源\",\"type\":\"string\",\"value\":\"无\"},{\"label\":\"共享方式\",\"type\":\"string\",\"value\":\"否\"}],\"en_US\":[{\"label\":\"Region\",\"type\":\"string\",\"value\":\"东莞\"},{\"label\":\"AZ\",\"type\":\"string\",\"value\":\"华为\"},{\"label\":\"Disk Type\",\"type\":\"string\",\"value\":\"SATA\"},{\"label\":\"Capacity\",\"type\":\"string\",\"value\":30},{\"label\":\"Data Source\",\"type\":\"string\",\"value\":\"None\"},{\"label\":\"Disk Sharing\",\"type\":\"string\",\"value\":\"No\"}]}}" } ] } 响应体: { "purchases": [ { "subscription_id": "20190914110658422269247" } ], "expected_total": 0, "error_details": null }同样的,我们需要调用订单查询接口(参考底5章 步骤8),查询订单状态,直到云磁盘删除完成补充说明:云磁盘的查询、属性更新等操作均需要调用云服务的接口,具体接口参考文档《华为云Stack API接口参考.chm》中“存储”-->“EVS”章节。云磁盘的申请、删除、扩容需要使用ManageOne订单接口,不可将ManageOne订单接口与EVS接口混用(如:使用ManageOne订单接口创建资源,使用EVS接口删除资源),否则会导致ManageOne上数据展示异常
  • [ManageOne二...] 【华为云Stack ManageOne运营面北向对接】如何使用订单接口申请弹性云服务器
    1 订单接口说明ManageOne中,用户通过申请订单的方式对云资源进行申请、变更、释放操作,实现对云资源生命周期的管理,订单接口具有以下特点:订单支持关联审批流程(最大支持五级审批,详情参考ManageOne用户指南),用户完成资源配置并提交后,如果审批通过,Manageone会自动完成订单实施;订单接口对云服务接口(经加固后对外开放的OpenStack接口)进行了一定程度的封装,通过调用订单接口,可以同步完成云资源的多个操作,如,申请虚拟机的同时,为虚拟机挂载数据盘,绑定弹性IP;通过订单接口申请、释放云资源时,会同步扣除、恢复租户配额,当租户配额不够时,会导致订单实施失败;订单接口只提供资源的申请,延期,变更,释放功能,不提供云服务的查询,操作(如虚拟机的开关机,列表查询等)功能,不能独立使用,需要配合云服务接口使用,也就是说,您需要通过ManageOne订单接口申请,延期,变更,释放云资源,使用云服务接口查询,操作云资源其他云服务的对接指导,以及订单接口的使用说明,请参考:云资源管理对接指导2 订单接口使用场景如第1部分所述,ManageOne订单接口是在云服务接口的基础上封装得到的,包含了ManageOne自身的运营特性,例如产品、服务、区域、配额等,使用上有一定的约束,如果您希望通过调用接口实现对华为云Stack中云资源的生命周期管理,请参考以下几个场景进行评估,符合以下任何一种场景的,建议您选择使用ManageOne订单接口进行对接:如果您公司购买了并部署了华为云Stack产品,您希望通过自动化工具实现云服务资源的自动化发放,从而提高资源申请效率;如果您购买了并部署了华为云Stack产品,公司围绕IT资产的运营运维有一整套流程,您希望已有的流程平台(如ITSM、BOSS等)能够与华为云Stack进行对接,实现现有流程与云服务的整合,在简化服务的申请周期,提高应用上线效率的同时,还能够实现云资源的全流程监控;如果您是云服务提供商,将华为云Stack提供的云服务,按照租户的形式租售给了客户,客户希望实现云服务的自动化发放,需要您提供对接接口;如果您是云服务提供商,希望现有运营平台能够与华为云Stack对接,实现租户的自动化创建,并为每个租户预置指定类型的云资源,租户的日常运维由运维部门通过ManageOne进行运维。如果您购买了多家厂商的云平台,希望通过一套云管理软件进行纳管,建议您直接对接云服务接口进行对接,这样可以屏蔽ManageOne的运营特性,只关注云服务特性,对接起来更加灵活。3 对接准备订单接口参数较为复杂,建议您使用可视化工具对接口进行测试,如postman(使用前请关闭SSL证书校验),restclient等。请参考帖子:【华为云Stack ManageOne 运营侧北向对接】北向接口对接准备工作,获取接口文档,接口对接需要的IP,域名等信息本帖提供的方法,适配华为云Stack 6.5.X,8.X版本4 订单接口对接步骤我们知道ManageOne订单接口不能独立使用,需要配合云服务接口使用,这里给出主要的对接步骤,如下:通过用户名和密码调用鉴权接口获取Token和user_id。(可选)通过user_id查询用户关联的project,用户是以project维度操作资源,资源也必须属于某一个project根据选择的project的id查询project详细信息,获取region_id、支持的云服务列表、每个云服务的资源池id和包含的az(可用分区)列表。选择需要申请的云服务类型,比如云硬盘的service_type为evs。订购接口还需要product_id,因此通过查询可用产品列表接口获取。根据不同的云服务定义的数据结构获取对应的参数,这部分由每个云服务具体的订购章节详细描述,参考《ManageOne 6.5.x 云服务Params参数说明》。组合订购接口所需的所有参数,调用接口完成订购。下面给出通过订单接口创建、释放弹性云服务器的详细步骤5 申请弹性云服务器这里先给出涉及到的接口清单,如下: 序号接口功能URL涉及到的接口文档调用接口使用的域名(样例)1鉴权【POST】/v3/auth/tokens《ManageOne OTenantSecurity服务API参考》iam-apigateway-proxy.demo.com2查询用户关联的project列表【GET】/rest/vdc/v3.0/users/{user_id}/projects《ManageOne 运营面API参考》sc.demo.com3查询project详情,获取该project关联的资源池信息【GET】/rest/vdc/v3.1/projects/{project_id}《ManageOne 运营面API参考》sc.demo.com4查询可申请的产品列表【GET】/rest/product/v3.0/apply/products《ManageOne 运营面API参考》sc.demo.com5查询云资源池可用分区【GET】/rest/serviceaccess/v3.0/available-zones《ManageOne 运营面API参考》sc.demo.com6创建订购【POST】/rest/subscription/v3.0/subscriptions《ManageOne 运营面API参考》《ManageOne 云服务Params参数说明》sc.demo.com7查询订单详情【GET】/rest/order/v3.0/orders/{order_id}《ManageOne 运营面API参考.doc》sc.demo.com8获取镜像列表【GET】/v2/cloudimages《镜像服务(IMS) 8.x API参考(for 华为云Stack 8.x) 01.pdf》ims.sa-fb-1.demo.com9获取可用规格列表【GET】/v1/{project_id}/cloudservers/flavors《弹性云服务器(ECS) 8.x API参考(for 华为云Stack 8.x).pdf》ecs.sa-fb-1.demo.com10获取磁盘类型【GET】/v1.0/resource-tags?resource_type=volume_type&availability_zone={azId}《华为云Stack 8.x 公共组件》ccs.sa-fb-1.demo.com11获取VPC信息【GET】/v1/{project_id}/vpcs《虚拟私有云(VPC) 8.x API参考(for 华为云Stack 8.x).pdf》vpc.sa-fb-1.demo.com12获取子网详情【GET】/v1/{project_id}/subnets?vpc_id={vpc_id}《虚拟私有云(VPC) 8.x API参考(for 华为云Stack 8.x).pdf》vpc.sa-fb-1.demo.com13获取安全组信息【GET】/v2.0/security-groups《虚拟私有云(VPC) 8.x API参考(for 华为云Stack 8.x).pdf》vpc.sa-fb-1.demo.com14获取云服务器组(即亲和性)信息(可选)【GET】/v2.1/{project_id}/os-server-groups《弹性云服务器(ECS) 8.x API参考(for 华为云Stack 8.x).pdf》ecs.sa-fb-1.demo.com15查询企业项目【GET】/v1.0/enterprise-projects《ManageOne 运营面API参考》(8.3.0以上版本可用)sc.demo.com具体接口调用步骤如下:步骤 1 获取token首先需要获得账号所属的租户名称,以及该租户下一个project的Id或者名称,方法如下:①使用租户管理员账号登录ManageOne运营侧②点击右上角的用户图标,切换到“个人设置”页面,如下:然后调用接口获取token,示例如下:URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Content-Type: application/json;charset=UTF-8Accept: application/json;charset=UTF-8Connection: keep-alive请求体:{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "租户名" }, "name": "XXXXXX", "password": "XXXXXX" } } }, "scope": { "project": { "domain": { "name": "租户名" }, "id": "项目Id" } } }}响应消息如下:响应头: X-Subject-Token→MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 响应体: { "token": { "expires_at": "2019-09-09T07:38:55.643000Z", "methods": [ "password" ], "catalog": [], "roles": [ ... ], "project": { "domain": { "name": "xssvdc", "id": "15488ac7aec547a68d9451c91173c68c" }, "name": "xssvdc", "id": "27a008f1b83e4dfdbf1143dd336006df" }, "issued_at": "2019-09-08T07:38:55.643000Z", "user": { "domain": { "name": "xssvdc", "id": "15488ac7aec547a68d9451c91173c68c" }, "name": "xssvdc", "id": "b54310fb838b4f8ebf1e9d23bf9691d5"   //用户Id } } }从响应头中我们可以获得X-Subject-Token的值,即为我们所需要的token的值;从响应体中还可以获得用户的Id,以便后续查询用户关联的所有的project步骤2 查询用户关联的project(可选)创建资源时,需要指定该资源所属的project,若一个租户下有多个project,第三方平台需要指明需要使用的project,此时需要查询该用户关联的project,若仅涉及单个project,则不涉及此操作。需要说明的是,当选择某个project创建资源时,需要用该project参考步骤1去获取token。调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/users/{user_id}/projects 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "total": 1, "projects": [ { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "39d881e6-e6a6-4516-8d8e-83446abc263b", "role_name": null, "tenant_name": "xssvdc", "regions": [ { "region_status": "normal", "region_id": "dg-dg-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "level": "1", "role_id": null, "name": "xssvdc", "iam_project_name": "xssvdc", "description": null, "id": "27a008f1b83e4dfdbf1143dd336006df", "enabled": true } ] }步骤 3 查询资源池信息创建、变更、删除资源时,需要指定资源所在的region、资源池、可用分区,我们可以通过查询project详情获取该project关联的region、资源池、可用分区信息,接口调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/vdc/v3.1/projects/{project_id} 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "project": { "domain_id": "15488ac7aec547a68d9451c91173c68c", "tenant_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9", "tenant_name": "xssvdc", "regions": [ { "region_status": "normal", "cloud_infras": [ { "cloud_infra_status": "normal", "cloud_infra_name": "OpenStack_dg-dg-1", "cloud_infra_type": "FUSION_CLOUD", "azs": [ { "az_status": "normal", "az_name": "华为", "az_id": "az0.dc1" } ], "cloud_infra_id": "FUSION_CLOUD_dg-dg-1" } ], "region_id": "dg-dg-1", "region_name": { "en_us": "东莞", "zh_cn": "东莞" } } ], "is_shared": false, "name": "xssvdc", "tenant_type": "vdc", "region_name": null, "id": "27a008f1b83e4dfdbf1143dd336006df", "enabled": true } }此处我们可以获得region_id、cloud_infra_id、az_id,需要注意的是,创建资源时指定的AZ必须与cloud_infra_id、region_id匹配,不能交叉混用!!!创建ECS前,我们需要选定AZ,后续选择规格,磁盘类型,镜像都需要根据AZ来过滤。步骤4 查询产品列表不同的云服务在ManageOne中体现为对外提供不同的产品,查询时需要指定产品类型(service_type),常用类型有:调用示例如下:URL: https://{ManageOne运营侧API对外域名}/rest/product/v3.0/products?limit=100&start=1&status=online&service_type=ecs®ion_id={region_id}(region_id取值由步骤3获取) 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: {     "total": 1,     "products": [                 {             "product_id": "b507d3d5c88b4b64adf7d87a20cdf655",             "service_type": "ecs",             "create_vdc_id": "all",             "create_user_id": "32cb5a3c9de44bcf9696db98c1db828a",             "icon_id": "defaulticonecs",             "catalog_id": "1",             "region_id": "dg-dg-1",             "params": "{}",             "name": "{\"en_US\":\"ECS\",\"zh_CN\":\"弹性云服务器\"}",             "description": "{\"zh_CN\": \"由CPU、内存、磁盘等组成的随时可获取、弹性可扩展、按需使用的虚拟的计算服务器。\",\"en_US\": \"Provides scalable virtual compute servers consisting of CPUs, memory, and disks resources.\"}",             "create_time": 1585897648000,             "publish_status": "publish",             "deletable_status": "normal",             "is_default": true,             "publish_scope": "[]",             "online_scope": "[{\"vdcName\":\"all\",\"vdcId\":\"all\"}]",             "online_status": "online",             "approval": false,             "price": null,             "resource_pool_id": "",             "project_id": "",             "az_id": "",             "secret_params": null,             "product_type": null         }     ] }响应体中,approval字段值为false的产品表示该产品没有关联人和审批流程,申请该产品后,不需要经过任何审批流程,提交订单后就会实施,对接时建议使用此类产品。步骤 5 ECS配置选型,参考“ECS配置选型”步骤 6 查询VPCURL: https://{vpc对外访问域名}/v1/{project_id}/vpcs 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: {     "vpcs": [         {           "id": "7a172056-73be-4247-9f78-aaa5bed573d0",             "name": "vpc-d0bf",             "cidr": null,             "status": "OK",             "routes": [],           "external_gateway_info": {...},           "service_availability_zones": [...],             "ntp": [],             "expiry": "0",             "op_status": 0,           "project_id": "27a008f1b83e4dfdbf1143dd336006df",             "ntp_v6": []       } ] }此处的id,即为VPC Id步骤7 查询子网信息URL: https://{vpc对外访问域名}/v1/{project_id}/subnets?vpc_id={vpc_id} (vpc_id由上一步查询获得) 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: {     "subnets": [         {           "id": "243e425b-daae-43f2-8b35-8803e163b487",           "name": "subnet-5e10",             "description": "",           "cidr": "192.168.10.0/24",           "dnsList": [...],             "status": "ACTIVE",             "external": false,             "routed": true,           "vpc_id": "7a172056-73be-4247-9f78-aaa5bed573d0",           "project_id": "27a008f1b83e4dfdbf1143dd336006df",           "gateway_ip": "...",             "dhcp_enable": true,           "primary_dns": "...",           "secondary_dns": "...",             "host_routes": [],       "allocation_pools": [           {               "start": "192.168.10.1",               "end": "192.168.10.254"           }       ],             "segmentation_id": 299840,           "neutron_subnet_id": "6df75f53-9a47-4c9d-b882-7c36f38c39eb",             "ipv4_enable_multicast": false,             "ipv4_multicast_status": "",             "ip_version": 4,           "neutron_network_id": "243e425b-daae-43f2-8b35-8803e163b487",             "ipv6_enable": false         }     ] }这里我们可以获得子网的Id,即subnet_id的值步骤8 查询安全组信息创建VM时默认打开安全组,以便对VM的进出流量进行防护,这里示例如何查询安全组,如下:URL: https://{vpc对外访问域名}/v2.0/security-groups 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "security_groups": [ { "id": "8f760273-76b0-4bf0-872e-8a229b89934d", "name": "default", "description": "default", "tenant_id": "27a008f1b83e4dfdbf1143dd336006df", "security_group_rules": [ ...... ], "created_at": "2019-06-11T01:53:45", "updated_at": "2019-06-11T01:53:45", "project_id": "27a008f1b83e4dfdbf1143dd336006df" } ] }这里我们可以查到每个安全组的安全组规则,根据虚拟机的网络互通要求选取合适的安全组即可(一般选择名称为default的安全组即可),如果需要对安全组规则进行修改,可在ManageOne界面上操作步骤9 查询亲和性组(可选)如果需要指定虚拟机的亲和性和反亲和性组,还需要指定云服务器组,查询方法如下:URL: https://{ecs对外访问域名}/v2.1/{project_id}/os-server-groups(project_id与获取token使用的一致) 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "server_groups": [ { "members": [], "metadata": {}, "id": "3ba519b8-ab42-4893-90d4-021e672c353e", "policies": [ "soft-affinity" ], "name": "SvrGrp-ac02" } ] }步骤10 查询企业项目(可选)如果HCS为8.3.0以上版本,则支持为虚拟机指定企业项目。URL: https://{运营面对外访问域名}/v1.0/enterprise-projects请求方法:GET请求头:Content-Type: application/json; charset=UTF-8Accept: application/json; charset=UTF-8Connection: keep-aliveX-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=请求体:无响应体:{ "total_count": 2, "enterprise_projects": [ { "id": "0", "name": "default", "description": null, "type": "prod", "delete_flag": false, "status": 1, "created_at": null, "updated_at": null, "domain_id": null, "vdc_id": null, "project_id": null, "domain_name": null, "vdc_name": null, "project_name": null, "quota_unit_id": null, "regions": [], "quota_unit_type": null, "vdc_federation": false, "project_federation": false, "eps_federations": [], "hcs_federation": false }, { "id": "459aa5de-0f2e-46c2-a3ca-7006ce929698", "name": "test-eps", "description": "", "type": "prod", "delete_flag": true, "status": 1, "created_at": "2025-02-13T02:40:33Z", "updated_at": "2025-02-13T02:40:33Z", "domain_id": "15488ac7aec547a68d9451c91173c68c", "vdc_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9", "project_id": "27a008f1b83e4dfdbf1143dd336006df", "domain_name": "xssvdc", "vdc_name": "xssvdc", "project_name": "xssvdc", "quota_unit_id": null, "regions": [{"region_id": "dg-dg-1","region_status": "normal","region_name":{"zh_cn": "东莞","en_us": "东莞"}}], "quota_unit_type": "DEFAULT", "vdc_federation": false, "project_federation": false, "eps_federations": [], "hcs_federation": false } ]}至此,我们获得了创建弹性云服务器的所有参数,订购参数如下:序号参数名称参考值备注1operate_typeapply申请,固定值apply2project_id2bb0XXXd70dproject_id,准备工作中获取,必选3product_id4c1b27eexxx4c2f产品Id,步骤4拿到,必选4region_idcn-global-1区域id,步骤3拿到,必选5time_zoneGMT+08:00参考当地时区6tenancy30(String类型)有效期限,填写time_zone时区的时间,如"yyyy-MM-dd 23:59:59"。为“0”时,表示不限时长,必选7service_typeecs弹性云服务器,填写选择的service_type,必选8tenantId2bb0XXXd70dproject_id,准备工作中获取,必选9availability_zoneaz1.dc1可用分区id,步骤3拿到,必选10nameecs-7001ECS名称,自定义即可,必选11imageRef 镜像Id,步骤5拿到,必选。12flavorRef 规格Id,步骤5拿到,必选。13root_volume:volumetype ECS系统盘类型,步骤5拿到,必选。14root_volume:size40ECS系统盘大小,自定义,必选。15vpcid4653XXXXcb3799fvpc的Id,步骤6拿到,必选。16nics:subnet_idf6662XXX3a3e310此处需填写子网Id,步骤7拿到,必选。17nics:"binding:profile":disable_security_groupsfalse是否关闭安全组,默认打开,必选。18security_groups:id478eXXX76b47d2安全组Id,步骤8拿到,必选。19count1需要创建的弹性云服务器个数,自定义即可,最大支持一次性创建20台,必选20extendparam:regionIDcn-global-1区域id,步骤3拿到,必选21metadata:op_svc_userid4885cxxxx97fb85用户的Id,步骤1拿到,必选22metadata:__instance_vwatchdogfalse是否开启软件狗(x86)(软件狗为虚拟机提供一种心跳检测机制,主要用于监视虚拟机内部系统的健康状况),如需开启软件狗,请确保所选镜像已安装符合标准IPMI软件狗的喂狗程序,否则可能导致虚拟机反复重启。开启:true,关闭:false。非必选。23metadata:hw_watchdog_actiondisabled是否开启软件狗(ARM),软件狗为云服务器提供一种心跳检测机制,主要用于监控虚拟机内部系统的健康状况。 说明: reset 表示打开软件狗,故障后重启并发送告警; none 表示打开软件狗,故障后仅告警,不会重启; disabled 表示关闭软件狗。非必选。24metadata:_ha_policy_typeclose是否启用ECS HA(启用HA功能后,如果云服务器或者云服务器所在主机故障,系统会在其他主机上重建云服务器,保证业务连续性)。该能力受管理员配置的全局HA策略限制,只有在管理员配置了全局HA策略后,基于云主机的HA策略才会生效。开启:remote_rebuild,关闭:close。非必选。25power_ontrue创建出来的虚拟机状态。true为开机状态,false为关机。默认为true。非必选。26tags["key1.value1","key2.value2"]标签的格式为“key.value”。其中,key的长度不超过36个字符,value的长度不超过43个字符。 标签命名时,需满足如下要求: 1.标签的key值只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线()、中划线(-)以及中文字符。 2.标签的value值只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线()、中划线(-)、小数点(.)以及中文字符。值可以为空,键为必填:"tags": []。说明:1.创建弹性云服务器时,一台弹性云服务器最多可以添加10个标签。2.若配置了__single_storage字段时,表示云服务器的系统盘和数据盘位于同一套后端存储。 例如"tags" : ["__single_storage"]27display 用于ManageOne页面显示订购虚拟机的参数,根据订购接口的其他参数填写对应的值,值可以置空,但为了增强订单的可读性,强烈建议填写该参数28user_dataIyEvYmluXXXXL2Jhc必选参数(键必须有,值可为空),仅当选择的镜像支持cloud-init时,可以使用该参数注入用户数据,或者修改虚拟机密码,构造方法参考本表后续说明。29secret_params 必选参数(键必须有,值可为空);1、安装了cloud-init的linux虚拟机可以参考以下格式填写密码:"secret_params": "{\"metadata\":{},\"admin_password\":\"123456\"}"2、安装了cloudbase-init的windows虚拟机可以参考以下格式填写密码:"secret_params": "{\"metadata\":{\"admin_pass\":\"123456\"}}"3、若选择密钥对登陆,需要填写正确的密钥对名称,密钥对查询方法,参考下文keypair管理章节。采用密钥对登录示例:{\"metadata\":{},\"key_name\":\"KeyPair-a182\"}30enterprise_project_id 可选参数,8.3.0版本新增参数,资源所属的企业项目/资源组/EPS。若未填写则归属默认企业项目。从步骤10获得。 说明:user_data参数的作用主要是用户文件注入或者实现修改用户密码的功能,所有注入的内容需要使用Base64编码,下面分别给出几种常用的使用场景和示例:注入用户数据(也可用于修改用户密码)仅适用于支持cloud-init的linux镜像,需要对脚本内容进行base64编码处理,base64编码处理可以使用apache的commons-codec包中的方法(在org.apache.commons.codec.binary.Base64类中),样例如下:#cloud-confighostname: my1.cloudman.ccmanage_etc_hosts: true说明如下:cloud-init 只会读取以 #cloud-config 开头的数据,所以这一行一定要写对。hostname: my1.cloudman.cc 告诉 cloud-init 将 hostname 设置为 my1.cloudman.cc。manage_etc_hosts: true 告诉 cloud-init 更新 /etc/hosts 文件。修改root用户密码(请优先使用secret_params传入密码参数)仅适用于支持cloud-init的linux镜像,实现原理是通过在创建ECS时注入一段脚本,来修改root,编写格式如下:修改密码脚本格式样例(base64编码前样例)备注#cloud-configruncmd:- echo 'root: {cryptedPWD}' | chpasswd -e{cryptedPWD}即用户设置的密码的加密值,加密方法为base64_sha512,可以使用apache的commons-codec包中的org.apache.commons.codec.digest.Sha2Crypt.sha512Crypt方法进行加密处理构造好脚本内容后,需要对脚本内容进行base64编码处理,base64编码处理可以使用apache的commons-codec包中的方法(在org.apache.commons.codec.binary.Base64类中),示例如下:String pwdShell = "#cloud-config\n"+"\nruncmd:\n"+"  - echo 'root:$6$nngqph$8MBO7oQ4S6e5YuIwS6omVLiPGxmEzUqXyLxOQ6vKeFy6F0jCdkRAcvDjU8K3h/6ww7SNL0' | chpasswd -e\n";String desc = Base64.encodeBase64String((pwdShell .getBytes()));修改windows虚拟机密码(请优先使用secret_params传入密码参数)仅适用于支持cloud-init的windows镜像,需要对脚本内容进行base64编码处理,base64编码处理可以使用apache的commons-codec包中的方法(在org.apache.commons.codec.binary.Base64类中),样例如下:"rem cmd\nnet user {customUser}  {customPdw} /add\nnet localgroup administrators {customUser} /add"{customUser}、{customPdw}根据实际数据填写步骤11 创建订单,申请弹性云服务器订单接口中的params参数说明,请参考《ManageOne 6.5.x/8.x 云服务Params参数说明》URL: https://{ManageOne运营侧API对外域名}/rest/subscription/v3.0/subscriptions请求方法:POST请求头:Content-Type: application/json; charset=UTF-8Accept: application/json; charset=UTF-8Connection: keep-aliveX-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4=请求体:{ "subscriptions": [ { "operate_type": "apply", "project_id": "27a008f1b83e4dfdbf1143dd336006df", "product_id": "71347fb04fed43b5bb1eea9527f845ae", "region_id": "dg-tky-1", "time_zone": "GMT+08:00", "tenancy": "365", "service_type": "ecs", "params": "{\"tenantId\":\"27a008f1b83e4dfdbf1143dd336006df\",\"availability_zone\":\"az0.dc0\",\"name\":\"ecs-e960\",\"imageRef\":\"833c9fe8-d27d-4238-a7e3-e43a683159a8\",\"flavorRef\":\"c89d4da4-fdad-4de7-81ba-42ef89ec4ca8\",\"config_drive\":false,\"root_volume\":{\"volumetype\":\"IPSAN\",\"size\":20,\"extendparam\":{\"resourceSpecCode\":\"\",\"resourceType\":\"\"}},\"data_volumes\":[],\"vpcid\":\"7a172056-73be-4247-9f78-aaa5bed573d0\",\"nics\":[{\"subnet_id\":\"243e425b-daae-43f2-8b35-8803e163b487\",\"ip_address\":\"\",\"ip_address_v6\":\"\",\"nictype\":\"\",\"physical_network\":\"\",\"extra_dhcp_opts\":[],\"binding:profile\":{\"disable_security_groups\":false,\"availability_zone\":\"az0.dc0\"}}],\"security_groups\":[{\"id\":\"8f760273-76b0-4bf0-872e-8a229b89934d\"}],\"personality\":[],\"count\":1,\"extendparam\":{\"chargingMode\":0,\"regionID\":\"dg-tky-1\"},\"metadata\":{\"op_svc_userid\":\"b54310fb838b4f8ebf1e9d23bf9691d5\",\"__instance_vwatchdog\":\"false\",\"_ha_policy_type\":\"remote_rebuild\"},\"tags\":[],\"display\":{\"zh_CN\":[{\"label\":\"区域\",\"type\":\"string\",\"value\":\"东莞\"},{\"label\":\"名称\",\"type\":\"string\",\"value\":\"ecs-e960\"},{\"label\":\"可用分区\",\"type\":\"string\",\"value\":\"华为\"},{\"label\":\"规格\",\"type\":\"string\",\"value\":\"1U1G\"},{\"label\":\"镜像\",\"type\":\"string\",\"value\":\"EulerOS\"},{\"label\":\"系统盘\",\"type\":\"string\",\"value\":\"SATA,20GB\"}],\"en_US\":[{\"label\":\"Region\",\"type\":\"string\",\"value\":\"东莞\"},{\"label\":\"Name\",\"type\":\"string\",\"value\":\"ecs-e960\"},{\"label\":\"AZ\",\"type\":\"string\",\"value\":\"华为\"},{\"label\":\"Flavor\",\"type\":\"string\",\"value\":\"1U1G\"},{\"label\":\"Image\",\"type\":\"string\",\"value\":\"EulerOS\"},{\"label\":\"System Disk\",\"type\":\"string\",\"value\":\"SATA,20GB\"}]},\"extra\":{\"devices\":[{\"device_type\":\"cdrom\"}]},\"enterprise_project_id\":\"459aa5de-0f2e-46c2-a3ca-7006ce929698\"}", "secret_params": "{\"metadata\":{},\"key_name\":\"\"}" } ]}响应体:{ "purchases": [ { "subscription_id": "20190914104422606990067" } ], "expected_total": 0, "error_details": null}subscription_id即为订单ID步骤12 查询订单详情,确认订单实施状态订单提交成功后,需要定时轮询订单状态,直到订单状态(status字段)为成功URL: https://{ManageOne运营侧API对外域名}/rest/order/v3.0/orders/{order_id}(order_id由上一步响应体获得) 请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体: { "order_id": "20190914104422606990067", "parents_id": null, "type": "apply", "service_type": "vpc", "params": "{...}", "create_user_id": "b54310fb838b4f8ebf1e9d23bf9691d5", "create_user_name": "xssvdc", "vdc_id": "d58cc7b4-59a8-49ff-8f0c-0c7dff90b5e9", "vdc_name": "xssvdc", "status": "successed", "create_time": "2019-06-11 01:53:42", "implement_time": "2019-06-11 01:53:43", "complete_time": "2019-06-11 01:53:48", "project_id": "27a008f1b83e4dfdbf1143dd336006df", "cloud_infra_id": null, "product_id": "04e12eba75e243368f5cb6a0f52db4af", "region_id": "dg-tky-1", "product_defination_params": "{\"en_US\":\"VPC\",\"zh_CN\":\"虚拟私有云\"}", "tenancy": "0", "original_tenancy": "0", "time_zone": null, "comments": null, "contract_number": null, "rate_params": null, "domain_id": null }补充说明:弹性云服务器的查询、电源管理、磁盘挂载卸载、弹性IP的绑定解绑等操作均需要调用云服务的接口,具体接口参考文档《华为云Stack API接口参考.chm》中“计算”-->“ECS”章节。ECS的申请、删除、变更需要使用ManageOne订单接口,不可将ManageOne订单接口与ECS接口混用(如:使用ManageOne订单接口创建资源,使用ECS接口删除资源),否则会导致ManageOne上数据展示异常步骤13 查询订单中的资源列表URL: https://{ManageOne运营侧API对外域名}/rest/order/v3.0/orders/{order_id}/resources(order_id由步骤10响应体获得)请求方法:GET 请求头: Content-Type: application/json; charset=UTF-8 Accept: application/json; charset=UTF-8 Connection: keep-alive X-Auth-Token: MIIEeAYJKoASASn04rMqff-Q8fk7kqiCDMLfVxqj7wIdgkM1yD4= 请求体:无 响应体:[ { "id": "66f4c13c-e6dd-43a1-9874-439d330ce8f7", "order_id": "20190914104422606990067", "resource_id": "0e13a579-5dd3-4e97-a22d-86149910ab20", "resource_name": "ecs-8d6c", "resource_type": "ecs", "cloud_infra_id": null, "extend_params": null, "region_id": "dg-tky-1", "az_id": null, "project_id": "c7c6a276578e411ab2ef2d999d9ef59e", "record_time": "2019-06-11 01:53:43", "order_type": "apply", "result": "successed", "error_code": null, "zh_message": null, "en_message": null, "message": null, "expired_time": "0" }]如何使用订单接口删除弹性云服务器,参考“如何使用订单接口删除弹性云服务器”
  • [ManageOne二...] 【华为云Stack ManageOne 运营侧北向对接】北向接口对接准备工作
    1 说明如果您需要通过调用华为云Stack北向接口,实现对租户、用户、虚拟资源的管理,您需要与华为云Stack 中的ManageOne运营侧(提供鉴权,用户,租户管理)和云服务(提供云资源管理)进行对接,正式对接前,您可以参考本帖获取需要的账号、IP等信息,具体准备工作如下:A、获取接口文档ManageOne北向API参考文档各版本汇总获取:cid:link_1从以上链接下载到对应版本的文档后,可得到以下压缩包:(以8.3.1版本为例)压缩包中各文件解释如下: ManageOne x.x.x API参考.zip:ManageOne对外开放的API接口参考文档。 华为云Stack x.x.x 云服务API参考:HCS云服务对外开放的API接口的参考文档,包含云服务文档。8.3.1以前版本仅包含云服务的目录,具体各云服务的API文档需要从文档内的蓝色链接获取。ManageOne x.x.x API参考.zip压缩包中包含以下文档: 压缩包中开发需要使用的文档解释如下:ManageOne x.x.x 运营面API参考.docx:提供运营侧接口列表,支持VDC,产品,订购,流程审批,计量计价等功能。 ManageOne x.x.x 云服务Params参数说明.docx:配合《ManageOne x.x.x 运营面API参考》使用,介绍订购接口中params参数的使用说明。 B、获取网关地址、端口号及域名1)获取网关IP:获取环境LLD(从华为Stack安装部署工具中导出的环境详情,联系华为工程师获取,如果存在多个region,则应有多个LLD导出表。)打开主region的LLD表,选择“2.1 工具生成的IP参数”页签,找到“AGW-LB-Float-IP”节点的规划值,即为API Gateway的IP。如下图,AGW-LB-Float-IP的值为160.133.4.130。选择“1.2基本参数”页签,找到“external_global_domain_name”节点的规划值。如下图,external_global_domain_name的值为manageone.cus.com。选择“1.2基本参数”页签,找到“region0_id”节点的规划值。如下图,region0_id的值为dg-dg-1。打开需要调用接口的系统的hosts文件(Windows路径为C:\Windows\System32\drivers\etc\hosts,linux路径为/etc/hosts),在其中添加如下内容。{AGW-LB-Float-IP}   iam-apigateway-proxy.{external_global_domain_name}{AGW-LB-Float-IP}   sc.{external_global_domain_name}{AGW-LB-Float-IP}   oc.{region0_id}.{external_global_domain_name}                                   #6.5.X版本为oc.{external_global_domain_name}{AGW-LB-Float-IP}   vpc.{region0_id}.{external_global_domain_name}{AGW-LB-Float-IP}   ecs.{region0_id}.{external_global_domain_name{AGW-LB-Float-IP}   ims.{region0_id}.{external_global_domain_name}{AGW-LB-Float-IP}   evs.{region0_id}.{external_global_domain_name}{AGW-LB-Float-IP}   ccs.{region0_id}.{external_global_domain_name}我们上面获取到了AGW-LB-Float-IP的值为160.133.4.130,external_global_domain_name的值为manageone.cus.com,region0_id的值为dg-dg-1。将相应的值填入上面的模板中,得到hosts如下:160.133.4.130 iam-apigateway-proxy.manageone.cus.com160.133.4.130 sc.manageone.cus.com160.133.4.130 oc.dg-dg-1.manageone.cus.com                         #6.5.X版本为oc.manageone.cus.com160.133.4.130 vpc.dg-dg-1.manageone.cus.com160.133.4.130 ecs.dg-dg-1.manageone.cus.com160.133.4.130 ims.dg-dg-1.manageone.cus.com160.133.4.130 evs.dg-dg-1.manageone.cus.com160.133.4.130 ccs.dg-dg-1.manageone.cus.com(可选)如果存在从region,则需要打开从region的LLD文件,重复步骤2~5。配置好的hosts示例如下:160.133.5.170 vpc.xa-xa-1.manageone.cus.com160.133.5.170 ecs.xa-xa-1.manageone.cus.com160.133.5.170 ims.xa-xa-1.manageone.cus.com160.133.5.170 evs.xa-xa-1.manageone.cus.com160.133.5.170 ccs.xa-xa-1.manageone.cus.com(注:MangeOne仅部署在主region上,从region不包含ManageOne,配置的域名前缀无需再包含"iam-apigateway-proxy"、“sc”、"oc"。)C、网络打通要求如果现网中,第三方系统与华为云Stack 系统中间有防火墙隔离,需要做防火墙策略,则网络打通要求如下: 访问IP 被访问IP 被访问端口 访问诉求 备注 第三方系统 API Gateway浮动IP 443 单向,第三方系统-->API Gateway浮动IP 防火墙策略放通后,如果要确认是否成功,可通过telnet命令进行测试,如下(此处以80端口为例,请根据实际环境修改):D、获取对接账号进行正式对接前,需要获取对接账户,请联系华为现场工程师,获取一个ManageOne运营侧租户管理员(即一级VDC管理员)账号,且该租户的配额是不限的。获取到账号后,还需要获得该租户管理员所属租户的名称,以及该租户下一个project的Id或者名称,方法如下:使用租户管理员账号登录ManageOne运营侧(ManageOne运营侧的访问地址请联系现场华为工程师获取)点击右上角的用户图标,切换到“个人设置”页面,如下:8.3.1及以上版本,参考此链接创建用户:cid:link_0E、获取对接所需的SSL证书通常情况,调试接口可通过配置curl或postman忽略ssl证书验证,无需证书。在正式对接场景下需要配置SSL证书,获取证书的方法请参考此链接:cid:link_2由于不通编程语言、不同http客户端配置证书的方法均不相同,相关配置方法需用户自行查找,本文不再介绍。 附:服务、域名,文档关系说明注意:北向接口的域名与ManageOne页面使用的域名不相同,严禁使用“auth.xxx.xxx.xxx”等非标准方案的域名进行接口调用,非标方案无法确保升级兼容。更多云服务的域名请参考服务对应的API文档服务类型使用域名(样例)接口调用示例(样例)对应接口文档(以8.x接口文档为例)弹性云服务器(ECS)ecs.sa-fb-1.demo.comhttps://ecs.sa-fb-1.demo.com/v2/{tenant_id}/servers弹性云服务器(ECS) 8.x API参考(for 华为云Stack 8.x)裸金属服务(BMS)bms.sa-fb-1.demo.comhttps://bms.sa-fb-1.demo.com/v1/{project_id}/baremetalservers裸金属服务器(BMS) 8.x API参考(for 华为云Stack 8.x)镜像服务(IMS)ims.sa-fb-1.demo.comhttps://ims.sa-fb-1.demo.com/v2/images镜像服务(IMS) 8.x API参考(for 华为云Stack 8.x)弹性伸缩服务(AS)as.sa-fb-1.demo.comhttps://as.sa-fb-1.demo.com/autoscaling-api/v1/{tenant_id}/scaling_configuration弹性伸缩(AS) 8.x API参考(for 华为云Stack 8.x)云磁盘(EVS)evs.sa-fb-1.demo.comhttps://evs.sa-fb-1.demo.com/v2/{tenant_id}/volumes云硬盘(EVS) 8.x API参考 (for 华为云Stack 8.x)虚拟私有云(VPC)vpc.sa-fb-1.demo.comhttps://vpc.sa-fb-1.demo.com/v2.0/networks虚拟私有云(VPC) 8.x API参考(for 华为云Stack 8.x)弹性IP(EIP)eip.sa-fb-1.demo.comhttps://eip.sa-fb-1.demo.com/v2.0/floatingips弹性IP(EIP) 8.x API参考(for 华为云Stack 8.x)弹性负载均衡(ELB)vpc.sa-fb-1.demo.comhttps://vpc.sa-fb-1.demo.com/v2.0/lbaas/loadbalancers弹性负载均衡(ELB) 8.x API参考(for 华为云Stack 8.x)网络ACl(虚拟防火墙、VFW)acl.sa-fb-1.demo.comhttps://acl.sa-fb-1.demo.com/v2.0/fwaas/firewall_policies网络ACL(Network ACL) 8.x API参考(for 华为云Stack 8.x)身份认证服务(IAM)iam-apigateway-proxy.demo.comhttps://iam-apigateway-proxy.demo.com/v3/auth/tokensManageOne 8.x OTenantSecurity服务API参考运营管理服务(ManageOne运营面)sc.demo.comhttps://sc.demo.com/rest/vdc/v3.0/usersManageOne 8.x 运营面API参考云配置服务(CCS)ccs.sa-fb-1.demo.comhttps://ccs.sa-fb-1.demo.com/v1.0/resource-tags华为云Stack 8.x API接口参考-->公共组件-->CCS
  • [产品体验官] 体验官有奖体验第20期 | iMaster NCE-Campus基于开发者社区云端开放API体验测评----by 清平乐
    致小助手:   非常抱歉,年底工作上的事情太多,竟没能在任务截止时间之前提交报告;   本着有始有终的态度,还是在今天周六完成了报告;   报告如附件所示,请参考!
  • [产品体验官] 体验官有奖体验第20期 | iMaster NCE-Campus基于开发者社区云端开放API体验测评-By 云宝
    详情见附件~
  • [产品体验官] 体验官有奖体验第20期 | iMaster NCE-Campus基于开发者社区云端开放API体验测评-By Justin001
    本次体验报告烦请查看附件,欢迎大家指出不足群昵称:Justin Chen账号:Justin001
  • [产品体验官] 体验官有奖体验第20期 | iMaster NCE-Campus基于开发者社区云端开放API体验测评-wsw
    总体来说,整个功能描述还是比较清晰的,只是在一些细节的地方还有待完善。界面的设计上,体验卡中已经说明;说明文档也很详细,只是建议采用比较通用的方式去解决问题,比如,Postman 应用,如虚拟机中使用的方式;可能是因为浏览器兼容性的问题,在使用沙箱系统的过程中,遇到了很多的问题,尤其是Safari浏览器登陆超时,不能登陆的问题;虚拟环境会掉线的问题;姓名:世伟群昵称:世伟
  • [产品体验官] 体验官有奖体验第20期 iMasterNCE-Campus基于开发者社区云端开放API体验测评报告(四度空间)
    华为云体验官呢称:四度空间        华为云账号:dengxues 真实姓名:邓雪松
  • [产品体验官] 体验官有奖体验第20期 | iMaster NCE-Campus云端开放API体验及评测-by那年夏天
    体验官有奖体验第20期 | iMaster NCE-Campus云端开放API体验及评测
  • [产品体验官] iMaster NCE-Campus基于开发者社区云端开放API体验测评任务卡——Tong
    姓名:佟鑫群昵称:Tong
  • [产品体验官] 体验官有奖体验第20期 | iMaster NCE-Campus云端开放API体验及评测 by淳
    群内昵称:淳华为云账号:ghc123456
总条数:1405 到第
上滑加载中