华为云用户手册

  • 响应消息 响应参数 失败响应消息如表5所示。 表2 响应参数 参数 参数类型 描述 templates Array of objects 数组元素为每个模板的所有版本详细信息,详情请参见表3。 total Integer 模板总条数 表3 templates字段数据结构说明 参数 参数类型 描述 template Array of objects 数组元素为模板的详细信息,详情请参见表4。 表4 template字段数据结构说明 参数 参数类型 描述 id String 模板ID name String 模板名称 version String 模板版本 vendor String 模板发布者 description String 模板描述 template_url String 模板包的存放地址 create_at String 模板创建时间 update_at String 模板更新时间 scope String 模板可用范围 project:项目内可用(现已不支持新建该范围的模板) domain:租户内可用 public:全局可用(跨租户可用) domain String 模板所属租户名称 need_clutser Boolean 判断模板是否需要CCE集群。当前AOS的应用都需要部署在CCE集群上。 dsl_version String 模板的DSL版本 is_new_template Boolean 模板是否是新模板 include_stack Boolean 模板里面是否包含堆栈(AOS.Stack)元素 is_used Boolean 检查模板是否在使用中(即存在使用此模板创建的堆栈),true表示在使用中。 表5 响应消息头 参数 是否必选 参数类型 取值范围 描述 Content-Range 否 String 具体取值依赖于用户的模板数量。 示例:items 0-24/66 分页信息,items为起始和终止,以及总数”。 响应示例 { "templates": [ { "template": [ { "id": "74252143-4ca1-7ddb-d585-6be6786d1209", "name": "api-test", "version": "1.0", "vendor": "paas_aos_w00417971", "description": "", "template_url": "", "create_at": "2020-07-10T07:29:25Z", "update_at": "2020-07-14T11:07:09Z", "scope": "domain", "domain": "paas_aos_w00417971", "need_cluster": false, "dsl_version": "", "include_stack": false, "is_new_template": false, "is_used": false }, { "id": "34b159d8-cdf2-6764-e97b-8eb45b8e0f5b", "name": "api-test", "version": "1.1", "vendor": "paas_aos_w00417971", "description": "", "template_url": "", "create_at": "2020-07-14T11:05:36Z", "update_at": "2020-07-14T11:05:36Z", "scope": "domain", "domain": "paas_aos_w00417971", "need_cluster": false, "dsl_version": "", "include_stack": false, "is_new_template": false, "is_used": false } ] }, "total": 2}
  • URI GET /v2.1/templates 表1 参数说明 参数 是否必选 描述 name 否 模板名称,适用于根据模板名称查询模板ID场景。 offset 否 查询起始偏移,默认为0。 limit 否 单次查询总量,和offset必须成对出现。 dsl_version 否 查询指定DSL版本的模板。 check_used 否 是否检查模板的使用情况,如果为空默认false。 include_stack 否 值为true时查询解决方案模板,为false时查询通用模板,为空时查询所有模板。
  • 响应消息 响应参数 表2 响应消息头 参数 参数类型 描述 Content-Type String 消息体的类型(格式):application/octet-stream;charset=UTF-8 响应内容: 模板文件内容: tosca_definitions_version: huaweicloud_tosca_version_1_0description: Sample template for IaaS resourceinputs: az: default: cn-north-4a description: 可用区##Availability Zone type: HuaweiCloud.ECS.AvailabilityZone.Name label: 弹性云服务器##ECS flavor: default: s2.large.2 description: 云服务器的规格##ECS specification label: 弹性云服务器##ECS image: default: 1189efbf-d48b-46ad-a823-94b942e2a000 description: 云服务器使用的镜像ID##ID of the image used by the ECS type: HuaweiCloud.ECS.Image.Id label: 弹性云服务器##ECS sshKey-name: description: ssh密钥对##SSH key pair label: 弹性云服务器##ECS mycloudserver_rootVolume_volumeType: description: 系统盘类型##Root Volume Type label: 弹性云服务器##ECS subnet-cidr: default: 192.168.1.0/24 description: 子网的CIDR##CIDR of subnet label: 子网##Subnet subnet-gateway: default: 192.168.1.1 description: 子网的网关地址##Gateway of subnet label: 子网##Subnet vm-name: default: my-cloudserver description: 云服务器名称##ECS name label: 弹性云服务器##ECS vpc-cidr: default: 192.168.0.0/16 description: 虚拟私有云下可用子网范围##Available subnet ranges under VPC label: 虚拟私有云##VPCnode_templates: mycloudserver: properties: availabilityZone: get_input: az flavor: get_input: flavor imageId: get_input: image name: get_input: vm-name nics: - subnetId: get_reference: mysubnet publicIP: eip: bandwidth: shareType: PER size: 1 ipType: 5_bgp sshKeyName: get_input: sshKey-name vpcId: get_reference: myvpc rootVolume: volumeType: get_input: mycloudserver_rootVolume_volumeType requirements: - nics.subnetId: node: mysubnet - vpcId: node: myvpc type: HuaweiCloud.ECS.CloudServer mysubnet: properties: availabilityZone: get_input: az cidr: get_input: subnet-cidr dnsList: - 192.168.0.1 - 192.168.0.0 gateway: get_input: subnet-gateway name: '' vpcId: get_reference: myvpc requirements: - vpcId: node: myvpc relationship: HuaweiCloud.Relationships.ContainedIn type: HuaweiCloud.VPC.Subnet myvpc: properties: cidr: get_input: vpc-cidr name: '' type: HuaweiCloud.VPC.VPCoutputs: ecs-eip: value: get_attribute: - mycloudserver - floatingIpId ecs-id: value: get_attribute: - mycloudserver - refID subnet-name: value: get_attribute: - mysubnet - refName vpc-name: value: get_attribute: - myvpc - refName
  • 修订记录 发布日期 修订记录 2022-10-28 新增: 资源编排API 7.2 资源编排错误码 修改 7.3应用编排错误码 2020-10-12 修改 查询模板列表 获取模板列表 查询堆栈列表 2020-07-22 新增 下载模板 2020-07-16 修改 查询模板列表 查询模板 查询模板输入 获取模板列表 查询堆栈 查询堆栈元素列表 查询堆栈元素 查询堆栈执行记录列表 应用编排错误码 2020-05-30 修改 应用编排错误码更新错误码说明。 2020-04-30 修改 获取项目ID 2020-04-17 修改 终端节点 2020-02-26 修改 查询模板输入 获取模板列表 创建堆栈 执行堆栈生命周期 查询堆栈列表 2019-11-22 修改 查询模板列表 2019-07-30 修改 查询模板列表 查询堆栈 2019-06-06 修改 构造请求 认证鉴权 查询堆栈 2019-03-13 修改 查询堆栈元素列表 查询堆栈元素 查询堆栈输出 查询堆栈输入 查询堆栈执行记录 查询堆栈执行记录列表 2018-12-27 新增 构造请求 认证鉴权 2018-05-15 第一次正式发布。
  • 状态码 状态码如表1所示。 表1 状态码 状态码 编码 状态说明 100 Continue 继续请求。 这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。 例如,切换到HTTP的新版本协议。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 203 Non-Authoritative Information 非授权信息,请求成功。 204 NoContent 请求完全成功,同时HTTP响应不包含响应体。 在响应OPTIONS方法的HTTP请求时返回此状态码。 205 Reset Content 重置内容,服务器处理成功。 206 Partial Content 服务器成功处理了部分GET请求。 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 301 Moved Permanently 永久移动,请求的资源已被永久的移动到新的URI,返回信息会包括新的URI。 302 Found 资源被临时移动。 303 See Other 查看其它地址。 使用GET和POST请求查看。 304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 305 Use Proxy 所请求的资源必须通过代理访问。 306 Unused 已经被废弃的HTTP状态码。 400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 402 Payment Required 保留请求。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 MethodNotAllowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Time-out 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 410 Gone 客户端请求的资源已经不存在。 返回该状态码,表明请求的资源已被永久删除。 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息。 412 Precondition Failed 未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 416 Requested range not satisfiable 客户端请求的范围无效。 417 Expectation Failed 服务器无法满足Expect的请求头信息。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 429 TooManyRequests 表明请求超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After首部,然后等待该首部指出的时间后再重试。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 ServerTimeout 请求在给定的时间内无法完成。客户端仅在为请求指定超时(Timeout)参数时会得到该响应。 505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理。 父主题: 附录
  • 响应消息 响应参数 响应参数是一个堆栈执行记录列表或者失败消息结构。 查询成功时返回堆栈执行记录列表。 查询失败时返回失败消息结构。 其中,执行记录结构如表2所示, 返回失败消息结构如表5所示。 响应示例 [ { "metadata": { "annotations": { "aos.security.io/account": "******", "aosmeta.cluster.id": "9c34840a-d8c2-11e7-ba71-0255ac101306", "aosmeta.cluster.name": "aos", "aosmeta.description": "", "aosmeta.domain.id": "e00222f923fa4806be2df93191e83880", "aosmeta.force": "false", "aosmeta.labels": "", "aosmeta.namespace": "default", "aosmeta.project.id": "b17be51d45d74323bc39eb60315ba0df", "aosmeta.signature": "1", "aosmeta.template.id": "39368a8a-7743-c58b-e663-f3f9e80049eb", "aosmeta.template.name": "tosca-hello", "aosmeta.template.version": "nginx", "cluster-id": "9c34840a-d8c2-11e7-ba71-0255ac101306", "cluster-version": "v1.5.0-r000000", "namespace": "default", "paas-iam.alpha.kubernetes.io/domain-id": "e00222f923fa4806be2df93191e83880", "stack.kubernetes.io/revision": "2" }, "creationTimestamp": "2018-01-30T13:41:00Z", "labels": { "execution-hash": "1686326958", "stackname": "aos-nginx" }, "name": "aos-nginx-1686326958", "namespace": "b17be51d45d74323bc39eb60315ba0df", "resourceVersion": "29574440", "selfLink": "/apis/paas/v1alpha1/namespaces/b17be51d45d74323bc39eb60315ba0df/executions/aos-nginx-1686326958", "uid": "357f52cf-05c3-11e8-9daa-0255ac1006d2" }, "spec": { "actionName": "scale", "disableStrategy": "Cancel", "location": "172.16.6.229", "metadata": { "creationTimestamp": null, "labels": { "execution-hash": "1686326958", "stackname": "aos-nginx" }, "namespace": "b17be51d45d74323bc39eb60315ba0df" }, "objectData": "******", "objectReference": { "APIVersion": "", "FieldPath": "", "Kind": "", "Name": "aos-nginx", "Namespace": "b17be51d45d74323bc39eb60315ba0df", "ResourceVersion": "", "UID": "7b22745e-05c2-11e8-b90c-0255ac100ece" }, "onFailureStrategy": "DoNothing", "source": "User", "timeoutInMinutes": 5 }, "status": { "actionName": "scale", "objectStatus": { "phase": "Succeeded", "updateAt": "2018-01-30T13:41:13.997416Z" }, "progress": 100, "subObjectStatuses": { "nginx-app": { "phase": "Succeeded", "subActionName": "scale", "updateAt": "2018-01-30T13:41:13.289541Z" } } } }, { "metadata": { "annotations": { "aos.security.io/account": "******", "aosmeta.cluster.id": "9c34840a-d8c2-11e7-ba71-0255ac101306", "aosmeta.cluster.name": "aos", "aosmeta.description": "", "aosmeta.domain.id": "e00222f923fa4806be2df93191e83880", "aosmeta.force": "false", "aosmeta.labels": "", "aosmeta.namespace": "default", "aosmeta.project.id": "b17be51d45d74323bc39eb60315ba0df", "aosmeta.signature": "1", "aosmeta.template.id": "39368a8a-7743-c58b-e663-f3f9e80049eb", "aosmeta.template.name": "tosca-hello", "aosmeta.template.version": "nginx", "cluster-id": "9c34840a-d8c2-11e7-ba71-0255ac101306", "cluster-version": "v1.5.0-r000000", "namespace": "default", "paas-iam.alpha.kubernetes.io/domain-id": "e00222f923fa4806be2df93191e83880", "stack.kubernetes.io/revision": "1" }, "creationTimestamp": "2018-01-30T13:38:11Z", "labels": { "execution-hash": "2513653053", "stackname": "aos-nginx" }, "name": "aos-nginx-2513653053", "namespace": "b17be51d45d74323bc39eb60315ba0df", "resourceVersion": "29574154", "selfLink": "/apis/paas/v1alpha1/namespaces/b17be51d45d74323bc39eb60315ba0df/executions/aos-nginx-2513653053", "uid": "d0d17824-05c2-11e8-9daa-0255ac1006d2" }, "spec": { "actionName": "create", "disableStrategy": "Cancel", "location": "172.16.6.229", "metadata": { "creationTimestamp": null, "labels": { "execution-hash": "2513653053", "stackname": "aos-nginx" }, "namespace": "b17be51d45d74323bc39eb60315ba0df" }, "objectData": "******", "objectReference": { "APIVersion": "", "FieldPath": "", "Kind": "", "Name": "aos-nginx", "Namespace": "b17be51d45d74323bc39eb60315ba0df", "ResourceVersion": "", "UID": "7b22745e-05c2-11e8-b90c-0255ac100ece" }, "onFailureStrategy": "DoNothing", "source": "User", "timeoutInMinutes": 60 }, "status": { "actionName": "create", "objectStatus": { "phase": "Succeeded", "updateAt": "2018-01-30T13:38:25.137462Z" }, "progress": 100, "subObjectStatuses": { "nginx-app": { "phase": "Succeeded", "subActionName": "create", "updateAt": "2018-01-30T13:38:25.033433Z" }, "nginx-container": { "phase": "Succeeded", "subActionName": "create", "updateAt": "2018-01-30T13:38:12.162796Z" } } } }]
  • 响应消息 响应参数 表2 响应参数 参数 参数类型 描述 inputs Object 堆栈输入信息。其中每个key-value表示有名为key的输入,其值为value。 当模板的input中定义了输入参数为secret/password类型时,对应的input的value在查询接口中返回的将是加密后的信息。 响应示例 { "inputs": { "provison_mysql_passwd": "******", "publish_image_name": "10.175.9.211:20202/aos-team/mysql:latest" }}
  • 响应消息 响应参数 响应参数是一个堆栈元素结构列表或者返回消息结构。 查询成功时返回堆栈元素结构列表。 查询失败时返回失败消息结构。 返回失败消息结构如表5所示。 表2 响应参数 参数 参数类型 描述 [数组元素] Array of objects 数组每个元素表示堆栈某一个元素的详细信息,详情请参见表3。 表3 堆栈元素详细信息 参数 参数类型 描述 id String 元素的名称 description String 元素的描述 properties Object 元素的属性,与模板内容相对应。 runtime_properties Object 元素运行时属性 relationships Object 元素的关系,详情请参见表4。 stack_id String 元素所属的堆栈的guid type String 元素的类型 create_at String 元素创建时间 update_at String 元素更新时间 type_hierarchy String 堆栈元素类型 charge_mode String 元素的计费模式 min_duration Integer 生命周期最小持续时间 max_duration Integer 生命周期最大持续时间 deletion_policy String 元素的删除策略 action_status Object 堆栈元素当前的状态,详情请参见表5。 表4 Stack Nodes Relationship结构 参数 参数类型 描述 name String 关系的名称 type String 关系的类型 target_id String 关系的目标节点名字 type_hierarchy Array of strings 关系的继承结构 properties Object 关系的属性,内含一个名为connection_type类型为String的key,表示关系的连接类型。 表5 action_status字段数据结构说明 参数 参数类型 描述 subActionName String 元素子操作的名字 phase String 堆栈的执行状态,有执行成功、执行中、执行挂起、执行取消、执行取消中、执行强制取消中、执行挂起中、执行重试中、执行运行中等,详情请参见表10。 createAt String 以RFC3339格式表示的信息创建的UTC时间戳 updateAt String 以RFC3339格式表示的信息更新的UTC时间戳 响应示例 [ { "id": "subnet", "stack_id": "a067769b-c1bb-11ea-8a77-0255ac1003d8", "relationships": [ { "name": "vpcId", "type": "HuaweiCloud.Relationships.ContainedIn", "type_hierarchy": [ "HuaweiCloud.Relationships.Root", "HuaweiCloud.Relationships.DependsOn", "HuaweiCloud.Relationships.ContainedIn" ], "properties": {}, "target_id": "vpc" } ], "type_hierarchy": [ "HuaweiCloud.Node.Root", "HuaweiCloud.VPC.Subnet" ], "properties": { "cidr": "192.168.1.0/24", "dhcpEnable": true, "gateway": "192.168.1.1", "name": "dfsdf", "vpcId": { "get_attribute": [ "vpc", "refID" ] } }, "type": "HuaweiCloud.VPC.Subnet", "runtime_properties": { "neutron_network_id": "940bb729-260c-44fe-ab40-e98367865530", "neutron_subnet_id": "dc893222-ab37-4358-b162-3316c97c4958", "refID": "940bb729-260c-44fe-ab40-e98367865530", "refName": "dfsdf", "vpcId": "f78881f0-2944-44d4-9325-966f5f30369e" }, "action_status": { "subActionName": "create", "phase": "Succeeded", "updateAt": "2020-07-09T08:10:26.830795Z", "createAt": "2020-07-09T08:10:22.270746Z" }, "create_at": "2020-07-09T08:10:18Z", "update_at": "2020-07-09T08:10:18Z" }, { "id": "vpc", "stack_id": "a067769b-c1bb-11ea-8a77-0255ac1003d8", "relationships": [], "type_hierarchy": [ "HuaweiCloud.Node.Root", "HuaweiCloud.VPC.VPC" ], "properties": { "cidr": "192.168.0.0/16", "name": "sdfs" }, "type": "HuaweiCloud.VPC.VPC", "runtime_properties": { "refID": "f78881f0-2944-44d4-9325-966f5f30369e", "refName": "sdfs" }, "action_status": { "subActionName": "create", "phase": "Succeeded", "updateAt": "2020-07-09T08:10:22.270648Z", "createAt": "2020-07-09T08:10:18.278579Z" }, "create_at": "2020-07-09T08:10:18Z", "update_at": "2020-07-09T08:10:18Z" }]
  • URI GET /v2/stacks/{stack_id}/elements 表1 参数说明 参数 是否必选 描述 stack_id 是 堆栈id,长度[1, 64]。 element_type 否 堆栈元素类型:Application(应用)、SoftwareComponent(软件组件)、Service(服务)、AppGroup(应用组)、Port(端口)、Cluster(集群)、Volume(卷)等。其他的类型也可以是在模板中定义的类型。此处输入只需要满足长度在[1, 64]之间即可。
  • 响应消息 响应参数 表2 响应参数 参数 参数类型 描述 outputs Object 堆栈输出信息。每个key-value结构表示有个名为key的输出,其描述为value,value结构为表3。 表3 输出参数 参数 参数类型 描述 value String 输出的值,根据模板内部定义生成及堆栈的运行时属性生成。 description String 输出的描述 当output的value在模板中定义了get_attribute: [app, ips]时,查询output返回的value是IP地址的字符串数组。 响应示例 { "outputs": { "address_ip": { "value": [ "10.175.11.126" ], "description": "ip of mysql-instance" }, "address_port": { "value": "32138", "description": "port of mysql-instance" }, "paasword": { "value": "root", "description": "paasword of mysql-instance" }, "user_name": { "value": "root", "description": "user_name of mysql-instance" } }}
  • 请求消息 请求参数 只有创建生命周期支持Rollback的失败策略。 表2 请求参数 参数 是否必选 参数类型 描述 failure_strategy 否 String 失败策略,默认DoNothing。取值范围为DoNothing/Rollback。 nodes 否 Array of objects 堆栈元素生命周期参数,详情请参见表3。 timeout 否 Integer 生命周期超时时间,单位为分钟,默认60分钟。取值范围为[0, 1440] (最多一天,24*60)。 lifecycle 是 String 生命周期名称。 create 创建 / delete 删除 / upgrade 变更 / rollback 回滚 / retry 重试 inputs 否 String 升级时重新指定堆栈配置参数,每个key-value代表一项输入,对应模板里面的inputs template_id 否 String 使用新的模板执行生命周期 1. 升级时仅支持inputs的升级方式。 2. failure_strategy仅在create的生命周期下支持Rollback。 3. 元素agent、 job、 DynamicVolume、FlexVolume、DynamicNodePool、NodePool、AutoScaler不支持升级,也不支持安装失败再次安装的情况。 表3 节点参数 参数 是否必选 参数类型 描述 name 是 String 节点名称 parameters 否 Object 节点生命周期参数,其中变更使用ScaleParams(详情请参见表4) 表4 变更参数 参数 是否必选 参数类型 描述 instances 是 Integer 节点实例数目,取值范围为[0, 100]。 变更生命周期,仅支持无状态应用且实例数已经定义到inputs中的情况。如果该inputs存在多个应用共同使用,除非多个应用同时变更,否则变更动作将无法支持。 创建请求示例 { "lifecycle": "create", "timeout": 20, "failure_strategy": "Rollback"} 回滚请求示例 { "lifecycle": "rollback"} 配置参数升级请求示例 { "lifecycle": "upgrade", "inputs": { "param1": "value1" }} 重试请求示例 { "lifecycle": "retry", "timeout": 20}
  • 响应消息 响应参数 响应参数是一个堆栈结构列表或返回消息结构。 查询成功时返回堆栈结构列表。 查询失败时返回错误消息结构。 其中,堆栈结构如表2所示, 错误消息结构如表5所示。 表2 响应参数 参数 参数类型 描述 [数组元素] Array of objects 每个元素表示堆栈详细信息,详情请参见表2。 成功响应示例 此处只写出单一堆栈结构,url返回为JSONArray([{"name": "stack1", ...}, {"name": "stack2", ...}]) { "force": false, "guid": "6c2dc1bc-66cc-11e7-8a31-0255ac101c16", "namespace": "csc-system", "project_id": "3de3c020647e447fb9c9dbe1f0fc8b85", "cluster_name": "cluster01", "cluster_id": "d019ddfa-61e2-11e7-80ba-0255ac100705", "domain_id": "c952eaaa5bdc43668d31aff2bb74a72d", "name": "b-lss-f98q0", "description": "", "status": "Running", "template_id": "6307541e-11e9-8d57-0682-0a0ab82e8450", "previous_template_id": "", "template_name": "paasconsole", "healthy": true, "healthy_message": "", "inputs_json": "{\"app_path\":\"/\",\"container_port\":18081,\"custom_tag_key0\":\"netype\",\"custom_tag_val0\":\"com.huawei.itpaas.platformservice.ncss\",\"extend_info\":\"{}\",\"image_name\":\"10.101.248.47:20202/aos-team/cam-default/dw_broker_lss_suse11sp3:v600r001c11\",\"pod_name\":\"b-lss-f98q0\",\"role_name\":\"manage\",\"secret_name\":\"default-ingress-ssl\",\"service_guid\":\"beef926a-e170-0419-c220-16d90bce9951\",\"sso_info\":\"{\\\"iam_external_domain\\\":\\\"10.101.248.93\\\",\\\"iam_external_addr\\\":\\\"10.101.248.93\\\",\\\"iam_internal_ip\\\":\\\"iam.kube-system.svc.cluster.local\\\",\\\"iam_port\\\":\\\"31943\\\"}\",\"volume_container_path\":\"/home/agentlib/uniagentconf\",\"volume_host_path\":\"/home/agentlib/uniagentconf\"}", "previous_inputs_json": "", "create_at": "2017-07-12T06:36:23Z", "update_at": "2017-07-12T06:36:39Z", "labels": "", "object": { "metadata": { "name": "b-lss-f98q0", "namespace": "3de3c020647e447fb9c9dbe1f0fc8b85", "selfLink": "/apis/paas/v1alpha1/namespaces/3de3c020647e447fb9c9dbe1f0fc8b85/stacks/b-lss-f98q0", "uid": "6c2dc1bc-66cc-11e7-8a31-0255ac101c16", "resourceVersion": "1442425", "creationTimestamp": "2017-07-12T06:36:23Z", "labels": { "stackname": "b-lss-f98q0" }, "annotations": { "cluster-id": "d019ddfa-61e2-11e7-80ba-0255ac100705", "namespace": "csc-system", "paas-iam.alpha.kubernetes.io/domain-id": "c952eaaa5bdc43668d31aff2bb74a72d", "stack.kubernetes.io/revision": "1" } }, "spec": { "selector": { "matchLabels": { "stackname": "b-lss-f98q0" } }, "template": { "type": "Aos", "data": "******" } }, "status": { "phase": "CreateSucceeded", "elementStatuses": { "paas-console-app": { "runtimeProperties": { "CfeCluster": "{\"clusterID\":\"d019ddfa-61e2-11e7-80ba-0255ac100705\",\"namespace\":\"csc-system\"}", "ConfigMap": "{\"selfLink\":\"/api/v1/namespaces/csc-system/configmaps/b-lss-f98q0\",\"name\":\"b-lss-f98q0\",\"id\":\"7248cfe7-66cc-11e7-9a88-286ed489ceaa\"}", "Deployment": "{\"selfLink\":\"/apis/extensions/v1beta1/namespaces/csc-system/deployments/b-lss-f98q0\",\"name\":\"b-lss-f98q0\",\"id\":\"7253bff2-66cc-11e7-9a88-286ed489ceaa\"}", "Ingress": "{\"selfLink\":\"/apis/extensions/v1beta1/namespaces/csc-system/ingresses/b-lss-f98q0\",\"annotations\":{\"ingress.beta.kubernetes.io/role\":\"manage\",\"ingress.beta.kubernetes.io/type\":\"external\",\"ingress.kubernetes.io/external-address\":\"10.101.204.188:30283\",\"ingress.kubernetes.io/external-ssl-address\":\"10.101.204.188:30282\"},\"rules\":[{\"host\":\"b-lss-f98q0-csc-system.10.101.204.188.xip.io\",\"http\":{\"paths\":[{\"path\":\"/\",\"backend\":{\"serviceName\":\"b-lss-f98q0\",\"servicePort\":32158}}]}}]}", "Service": "{\"selfLink\":\"/api/v1/namespaces/csc-system/services/b-lss-f98q0\",\"type\":\"NodePort\",\"ports\":[{\"name\":\"\",\"protocol\":\"TCP\",\"port\":18081,\"targetPort\":18081,\"nodePort\":32158}],\"selector\":{\"app\":\"b-lss-f98q0\",\"stack-name\":\"b-lss-f98q0\"},\"clusterIP\":\"10.247.248.87\",\"ExternalName\":\"\",\"sessionAffinity\":\"None\"}" } } }, "lastExecutionStatus": { "actionName": "create", "progress": 100, "objectStatus": { "phase": "Succeeded", "updateAt": "2017-07-12T06:36:37Z" }, "subObjectStatuses": { "host-dir": { "phase": "Succeeded", "updateAt": "2017-07-12T06:36:23Z" }, "paas-console": { "phase": "Succeeded", "updateAt": "2017-07-12T06:36:23Z" }, "paas-console-app": { "phase": "Succeeded", "updateAt": "2017-07-12T06:36:36Z" } } } } }, "health": { "message": "", "healthy": true }} 错误响应示例 { "message": "Internal error.please check the error log and handle it.", "code": "02000051", "extend": ""}
  • URI GET /v2/stacks?project_id={project_id} 表1 参数说明 参数 是否必选 描述 project_id 是 堆栈所属项目,在普通用户查询时必选。长度[1,64]。 labels 否 指定查询堆栈的标签。格式为key1=value1,key2=value2,标签名与值需要满足表1中的labels字段的要求。 dsl_version 否 模板语法版本,将查询到相应版本的堆栈。只支持huaweicloud_tosca_version_1_0,默认为空。 template_id 否 将查询到使用指定模板ID的堆栈,不可与template_name同时使用。 template_name 否 将查询到使用指定模板名称的堆栈,不可与template_id同时使用。 template_version 否 将查询到使用指定模板版本的堆栈,需要同时指定template_name。 include_periodic_res 否 查询包周期堆栈 include_stack 否 true:查询解决方案堆栈 false:查询通用堆栈 空:查询所有堆栈 name 否 查询指定名称的堆栈 status 否 堆栈状态: Running:运行中 Stopped:全部资源停止 Abnormal:异常 Pending:初始化 Processing:处理中 PartialStopped:部分资源停止 Unknow:未知状态
  • 响应消息 响应参数 响应参数是一个堆栈结构或返回消息结构。 创建成功时返回堆栈结构。 创建失败时返回错误响应结构。 其中,堆栈结构如表3 响应参数所示, 返回错误响应结构如表5所示。 表3 响应参数 参数 参数类型 描述 name String 堆栈名称 guid String 堆栈id description String 堆栈描述 project_id String 堆栈所属项目的id domain_id String 堆栈所属租户 template_id String 模板id template_name String 模板名称 inputs_json String 堆栈使用的模板的输入参数 status String 堆栈状态 resource_status String 堆栈资源状态 create_at String 堆栈创建时间 update_at String 堆栈更新时间 force Boolean 堆栈强制裁剪标识,适用于裁剪场景 labels String 堆栈的标签 cluster_id String 堆栈所在集群ID cluster_name String 堆栈所在集群名字 namespace String 堆栈所属命名空间 template_version String 堆栈使用的模板版本 dsl_version String 堆栈使用的模板语法版本 响应成功示例 { "force": true, "guid": "d956ea24-e979-11e7-9764-0255ac103504", "namespace": "default", "project_id": "c261c106051448479eb7c66549866011", "cluster_name": "test-not-delete", "cluster_id": "46c547ca-e96c-11e7-98b9-0255ac102005", "domain_id": "ef09dd6cc93f4653b5557181b802ee71", "name": "aos-lm-verydows-t1", "description": "", "status": "", "resource_status": "", "template_id": "b417b635-6ab2-1fed-b593-b129a9923ba2", "previous_template_id": "", "template_name": "verydows", "healthy": true, "healthy_message": "", "inputs_json": "{\"ecsng-container-port\":80,\"ecsng-image\":\"192.168.3.88:20202/default/verydows-ecsng:2.1.1\",\"imagePullPolicy\":\"IfNotPresent\",\"mysql-container-port\":3306,\"mysql-database\":\"verydows\",\"mysql-image\":\"192.168.3.88:20202/tangtao/verydows-mysql:5.6.35\",\"mysql-name\":\"verydows-mysql-t1\",\"mysql-password\":\"******\",\"mysql-port\":13306,\"mysql-root-password\":\"******\",\"mysql-user\":\"verydows\",\"redis-container-port\":6379,\"redis-image\":\"192.168.3.88:20202/default/verydows-redis:4.0.2_passwd\",\"redis-password\":\"******\",\"redis-port\":16379,\"verydows-container-port\":80,\"verydows-http-host\":\"\",\"verydows-image\":\"192.168.3.88:20202/default/verydows:2.3.1\",\"verydows-install-image\":\"192.168.3.88:20202/default/verydows:2.3.1\",\"verydows-port\":8088}", "previous_inputs_json": "", "create_at": "", "update_at": "", "labels": "", "template_version": "2.0.1", "dsl_version": "huaweicloud_tosca_version_1_0"} 响应失败示例 { "message": "The request body is invalid, please check. Error: The stack name is already existed.", "code": "02030008", "extend": ""}
  • 请求消息 请求参数 表1 请求参数 参数 是否必选 参数类型 描述 name 是 String 堆栈名称。限制同表2的name字段。 project_id 是 String 堆栈所属项目的id,默认为用户token所属项目,如果填写则必须与用户token内项目信息一致。 长度[1, 63],由小写字母、数字和中划线(-)组成,且不能以中划线开头结尾。 description 否 String 堆栈描述。限制同表2的description字段。 template_id 是 String 堆栈使用的模板id,长度[1, 64]。 inputs_json 否 Object 堆栈使用的模板输入参数。 该参数内每个key-value结构对应inputs下名为key的字段,标明输入值为value。 如果该处未指明某个key,则使用key指定的默认值,如果没有默认值则报错。 示例:"{'template_input_key': 'value'}" force 否 Boolean 堆栈强制裁剪标识,适用于裁剪场景。 labels 否 Object 堆栈标签,内部每个key-value表示一个标签。key/value两个字段长度均为[1, 64],且满足正则表达式^[a-zA-Z0-9_]+[-.a-zA-Z0-9_]*$。 namespace 否 String 编排CCE资源与应用时需要传入。堆栈部署的命名空间,如果不传入,默认使用default。 cluster_id 否 String 编排CCE资源与应用时需要传入。堆栈所在集群ID。 action_parameters 否 Object 堆栈创建后自动执行安装生命周期的配置。限制同表2。 表2 生命周期配置 参数 是否必选 参数类型 描述 failure_strategy 否 String 失败策略,默认DoNothing。取值范围为DoNothing/Rollback。 auto_create 是 Boolean 默认为true。 timeout 否 Integer 生命周期超时时间,单位为分钟,默认60分钟。取值范围为[0, 1440] (最多一天,24*60)。 inputs_json参数中输入虚机应用对应属性时,如果不在url字段或name字段中填入合法url,则会通过name/version/repository字段访问SWR进行模糊查找。在软件仓库内文件较多的情况下时间效率不高。可行的解决方案是填入url避免模糊查找,或将name/version/repository填写详细,减少查找范围。 推荐的做法:url: http://SWR.url/xxx/file.tgz 较好的做法:name: file.tgz version: v1 repository: myProject 效率较低的做法: name: file.tgz 请求示例 { "name": "aos-lm-verydows-t1", "template_id": "b417b635-6ab2-1fed-b593-b129a9923ba2", "project_id": "10556c2112784111b8bf10512591189e", "cluster_id": "46c547ca-e96c-11e7-98b9-0255ac102005", "inputs_json": { "ecsng-image": "192.168.3.88:20202/default/verydows-ecsng:2.1.1", "mysql-image": "192.168.3.88:20202/tangtao/verydows-mysql:5.6.35", "redis-image": "192.168.3.88:20202/default/verydows-redis:4.0.2_passwd", "verydows-image": "192.168.3.88:20202/default/verydows:2.3.1", "verydows-install-image": "192.168.3.88:20202/default/verydows:2.3.1", "mysql-name": "verydows-mysql-t1" }}
  • 响应消息 响应参数 失败的响应消息如表5所示。 表2 响应参数 参数 参数类型 描述 id String 模板ID name String 模板名称 version String 模板版本 vendor String 模板发布者 description String 模板描述 project_id String 模板所属项目ID template_url String 模板包的存放地址 converge_url String 模板的转化包地址,用于模板预览使用。 create_at String 模板创建时间 update_at String 模板更新时间 scope String 模板可用范围 project:项目内可用(现已不支持新建该范围的模板) domain:租户内可用 public:全局可用(跨租户可用) domain String 模板所属租户名称 main_file_name String 主文件名,为空使用默认值,为blueprint.yaml。 need_clutser Boolean 判断模板是否需要CCE集群。当前AOS的应用都需要部署在CCE集群上。 dsl_version String 模板的DSL版本 is_used Boolean 检查模板是否在使用中(即存在使用此模板创建的堆栈),true表示在使用中。 is_new_template Boolean 模板是否是新模板 include_stack Boolean 模板里面是否包含堆栈(AOS.Stack)元素 响应示例 { "id": "fd3f1e6d-cc93-c3c3-d015-f69c3ff3bc63", "name": "test-z", "version": "v2", "vendor": "aos-team", "description": "", "project_id": "", "template_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v2/file_paths/blueprint.zip", "converge_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v2/file_paths/test-z-v2-converge.tar.gz", "create_at": "2017-12-16T04:09:24Z", "update_at": "2017-12-16T04:09:26Z", "scope": "domain", "domain": "aos-team", "main_file_name": "blueprint.yaml", "need_cluster": true, "dsl_version": "huaweicloud_tosca_version_" }
  • 响应消息 响应参数 失败响应消息如表5所示。 表2 响应参数 参数 参数类型 描述 [数组元素] Array of objects 数组元素为模板详细信息,详情请参见表3。 表3 模板详细信息 参数 参数类型 描述 id String 模板ID name String 模板名称 version String 模板版本 vendor String 模板发布者 description String 模板描述 project_id String 模板所属项目ID template_url String 模板包的存放地址 converge_url String 模板的转化包地址,用于模板预览使用。 create_at String 模板创建时间 update_at String 模板更新时间 scope String 模板可用范围 project:项目内可用(现已不支持新建该范围的模板) domain:租户内可用 public:全局可用(跨租户可用) domain String 模板所属租户名称 main_file_name String 主文件名,为空使用默认值,为blueprint.yaml。 need_clutser Boolean 判断模板是否需要CCE集群。当前AOS的应用都需要部署在CCE集群上。 dsl_version String 模板的DSL版本 is_used Boolean 检查模板是否在使用中(即存在使用此模板创建的堆栈),true表示在使用中。 当查询参数check_used为true时,返回值有该字段 is_new_template Boolean 模板是否是新模板 include_stack Boolean 模板里面是否包含堆栈(AOS.Stack)元素 表4 响应消息头 参数 参数类型 描述 Content-Range String 分页信息,items为起始和终止,以及总数”。具体取值依赖于用户的模板数量。 示例:items 0-24/66 响应示例 [ { "id": "f9f5839d-73e2-f22b-f20b-fb11bc1abb66", "name": "test-z", "version": "v1", "vendor": "aos-team", "description": "", "project_id": "", "template_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v1/file_paths/test-staless-container.tar.gz", "converge_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v1/file_paths/test-z-v1-converge.tar.gz", "create_at": "2018-12-16T01:15:39Z", "update_at": "2018-12-16T01:15:41Z", "scope": "domain", "domain": "aos-team", "main_file_name": "blueprint.yaml", "need_cluster": true, "dsl_version": "huaweicloud_tosca_version_", "is_used": true, "is_new_template": false, "include_stack": false }, { "id": "fd3f1e6d-cc93-c3c3-d015-f69c3ff3bc63", "name": "test-z", "version": "v2", "vendor": "aos-team", "description": "", "project_id": "", "template_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v2/file_paths/blueprint.zip", "converge_url": "https://swr-api-server.manage.svc.cluster.local:20202/swr/v2/domains/aos-team/namespaces/aos-teame002/repositories/stack_templates/packages/test-z/versions/v2/file_paths/test-z-v2-converge.tar.gz", "create_at": "2018-12-16T04:09:24Z", "update_at": "2018-12-16T04:09:26Z", "scope": "domain", "domain": "aos-team", "main_file_name": "blueprint.yaml", "need_cluster": true, "dsl_version": "huaweicloud_tosca_version_", "is_used": true, "is_new_template": false, "include_stack": false }]
  • URI GET /v2/templates 表1 参数说明 参数 是否必选 描述 name 否 模板名称,适用于根据模板名称查询模板ID场景。 offset 否 查询起始偏移,默认为0。 limit 否 单次查询总量,和offset必须成对出现。 dsl_version 否 查询指定DSL版本的模板。 check_used 否 是否检查模板的使用情况,如果为空默认false。 include_stack 否 值为true时查询解决方案模板,为false时查询通用模板,为空时查询所有模板。
  • 请求消息 请求参数 表2 请求参数 参数 是否必选 参数类型 描述 resource 是 String 模板内容,详情请参见表2。 archive_content 否 String or Binary 必须为zip/tar.gz/tgz/yaml/json格式的文件。 content_type值为yaml和json时,参数类型为String,值为yaml或json的字符串。 content_type值为空或file时,参数类型为Binary,值为文件的二进制内容。 请求示例 { "name": "helloworld", "description": "helloworld blueprint new", "version": "1.0"}curl -k -X PUT -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -F "archive_content=@test-agent-1-1.0.tar.gz" https://aos.cn-north-4.myhuaweicloud.com/v2/templates/d078e49c-124c-7706-bcbb-81885661f431
  • 堆栈管理接口 堆栈管理接口,包括创建、查询、删除堆栈的接口等。通过这些接口,您可以创建堆栈、删除堆栈,执行堆栈生命周期,查询堆栈列表、堆栈、堆栈元素列表、堆栈元素、堆栈输出、堆栈输入、堆栈执行记录、堆栈执行记录列表。 表2 堆栈管理接口 API 说明 创建堆栈 创建堆栈,堆栈的输入由模板和输入参数两部分组成。 模板:定义了堆栈的骨架,决定了堆栈内部节点的构造以及节点间的关系,以及每个节点的属性的值或来源。 输入参数:是模板内节点属性值的来源之一,定义在模板的inputs字段下,由模板内的get_input函数触发。 删除堆栈 删除一个指定的堆栈。 执行堆栈生命周期 执行特定的堆栈生命周期操作。 查询堆栈列表 查询堆栈列表。 查询堆栈 查询指定堆栈的详细信息,包括堆栈名称、堆栈描述、模板id、模板名称、堆栈状态等。 查询堆栈元素列表 查询堆栈元素列表。 查询堆栈元素 查询堆栈某个元素的详细信息。 查询堆栈输出 查询指定堆栈输出。 查询堆栈输入 查询指定堆栈输入。 查询堆栈执行记录 查询堆栈某一次执行记录。 查询堆栈执行记录列表 查询堆栈最近的执行记录列表。
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" }}
  • 模板管理接口 模板管理接口,包括创建、查询、更新、删除模板的接口等。通过这些接口,您可以创建模板、查询模板列表、更新模板、删除模板、下载模板、查询指定模板和查询模板输入。 表1 模板管理接口 API 说明 创建模板 通过将本地模板文件上传至服务器的方式来创建模板。 查询模板列表 根据提供的参数查询模板列表。 更新模板 更新模板,包括两种方式:本地上传和URL上传更新。 只有当未使用该模板创建堆栈之前才能进行更新。 删除模板 删除一个指定的模板。 只有不存在使用该模板创建的堆栈时才能删除。 下载模板 下载一个指定的模板。 查询模板 查询指定模板的详细信息,包括模板名称、模板版本、模板描述、创建时间、更新时间等。 查询模板输入 查询指定模板的输入参数。 获取模板列表 根据提供的参数获取模板列表。
  • URI PATCH /v1/{project_id}/templates/{template_name}/metadata 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 template_name 是 String 用户希望创建的模板名称 最小长度:1 最大长度:128
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 429 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128 表3 请求Body参数 参数 是否必选 参数类型 描述 template_id 否 String 模板的唯一ID,由模板服务随机生成 最小长度:36 最大长度:36 template_description 否 String 模板的描述。可用于客户识别自己的模板 最小长度:0 最大长度:1024
  • 概述 RFS提供了最新的资源编排API,推荐您使用最新的API功能! 欢迎使用资源编排服务(RFS)。资源编排服务是完全支持业界事实标准Terraform(HCL + Provider)的新一代云服务资源终态编排引擎,在应用编排服务(AOS)基础上实现了生态、体验、特性的全新升级;资源编排服务基于业界开放生态HCL语法模板,实现云服务资源的自动化批量构建,帮助用户高效、安全、一致创建、管理和升级云服务资源,能有效提升资源管理效率,并降低资源管理变更带来的安全风险。 您可以使用本文档提供API对资源编排服务进行相关操作,如创建、查询、删除模板等。 在调用资源编排服务API之前,请确保已经充分了解资源编排服务相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
  • 资源和成本规划 该解决方案主要部署如下资源,不同产品的花费仅供参考,实际以收费账单为准,具体请参考华为云官网价格: 表1 资源和成本规格-弹性云服务器部署(包年包月) 华为云服务 配置示例 每月预估花费 弹性云服务器 ECS 区域:华北-北京四 计费模式:包年包月 规格:X86计算 | ECS | S6.medium.2 | 1vCPUs | 2GiB 镜像:CentOS 7.6 64bit 系统盘:高IO | 40GB 购买量:1 86.20元 弹性公网IP EIP 区域:华北-北京四 计费模式:包年包月 线路:动态BGP 公网带宽:按带宽计费 带宽大小:5Mbit/s 购买量:1 115元 合计 201.2元 表2 资源和成本规格-弹性云服务器部署(按需计费) 华为云服务 配置示例 每月预估花费 弹性云服务器 ECS 按需计费:0.1896元/小时 区域:华北-北京四 计费模式:按需计费 规格:X86计算 | ECS | S6.medium.2 | 1vCPUs | 2GiB 镜像:CentOS 7.6 64bit 系统盘:高IO | 40GB 购买量:1 0.1896* 24 * 30=136.512元 弹性公网IP EIP 按需计费:0.335元/5M/小时 区域:华北-北京四 计费模式:按带宽计费 线路:动态BGP 公网带宽:按带宽计费 购买时长:1个月 购买量:1 0.335*24*30=241.2元 合计 377.712元
  • 资源和成本规划 该解决方案主要部署如下资源,不同产品的花费仅供参考,实际以收费账单为准,具体请参考华为云官网价格: 表1 资源和成本规划-弹性云服务器部署(包年包月) 华为云服务 配置示例 每月预估花费 弹性云服务器 ECS 区域:华北-北京四 计费模式:包年包月 规格:X86计算 | ECS | c7.large.2 | 2vCPUs | 4GiB 镜像:CentOS 7.8 64bit 系统盘:高IO | 40GB 购买时长:1个月 购买量:1 219.50元 弹性公网IP EIP 区域:华北-北京四 计费模式:包年包月 线路:全动态BGP 公网带宽:按带宽计费 带宽大小:5Mbit/s 购买时长:1个月 购买量:1 115.00元 合计 334.50 元 表2 资源和成本规划-弹性云服务器部署(按需计费) 华为云服务 计费说明 每月花费 弹性云服务器 按需计费:0.45/小时 区域:华北-北京四 计费模式:按需计费 规格:X86计算 | ECS | c7.large.2 | 2vCPUs | 4GiB 镜像:CentOS 7.8 64bit 系统盘:高IO | 40GB 购买时长:1个月 购买量:1 0.45* 24 * 30 = 324.00元 弹性公网IP 按需计费(按带宽计费):0.34元/5M/小时 区域:华北-北京四 计费模式:按带宽计费 线路:全动态BGP 公网带宽:按带宽计费 带宽大小:5Mbit/s 购买时长:1个月 购买量:1 0.34*24*30=244.80元 合计 568.80元
  • 绑定通道号 通道号创建成功后,需要将服务号绑定通道号才可以正常使用。 在“通道号管理”界面,单击“通道号列表”,进入“通道号列表”界面。 在对应的“操作”列下单击“绑定”。 在“绑定”界面,配置信息请参考表1。 表1 通道号信息配置 参数 说明 商家名称 必填项。 系统自动显示。 服务号名称 必填项。 选择需要绑定的服务号的名称。 通道号 必填项。 系统自动显示。 通道号类型 必填项。 系统自动显示。 通道号签名 必选项。 选择通道号签名。 省份 必选项。 选择服务号的省份。 单击“绑定”,完成服务号与通道号的绑定。
  • 售后支持 通用商品的售后支持 通用商品的交付和售后支持由商家对客户直接提供。客户购买通用商品后,如需售后支持,请在该商品详情页查找商家联系方式,联系商家提供技术支撑。如商家提供的联系方式无法接通或无回复,可通过联系华为云4000-955-988或950808按1转3或发邮件至partner@huaweicloud.com,由云商店运营经理协助联系。 联营商品的售后支持 联营商品由华为云销售团队或华为云经销商伙伴提供售前咨询相关服务。客户购买联营商品后,如需售后支持,请在该商品详情页查找商家联系方式,联系商家提供技术支撑。如商家提供的联系方式无法接通或无回复,可通过联系华为云4000-955-988或950808按1转3或发邮件至partner@huaweicloud.com,由云商店运营经理协助联系 华为商品的售后支持 华为商品由华为云销售团队或华为云经销商伙伴提供售前咨询相关服务。客户购买华为商品后,由华为云按照订单中约定的范围,为客户提供售后支持服务。 父主题: 交付与售后
共100000条