快速入门
概述
本文通过调用一系列应用编排服务的API编排部署Magento电子商务系统,介绍使用应用编排服务API的基本流程。
创建出的Magento电子商务系统如下所示:
API的调用方法请参见如何调用API。
创建流程
编排部署Magento电子商务系统
- 调用创建模板接口,上传Magento电商应用公共模板作为自己的模板。
- 选择左侧导航栏的“模板市场”,单击“公共模板”。在“行业场景模板”下,单击Magento电商应用名称,查看详情。单击“下载模板”,保存公共模板文件(例如:e-business-app.yaml)到本地。
图2 选择公共模板
- 在本地编写Magento电商应用模板,保存到文件e-business-app.yaml中。上传模板文件e-business-app.yaml到执行curl命令的服务器的任一路径,例如/home/paas。
- 进入服务器中模板文件所在路径,调用创建模板接口,上传Magento电商应用公共模板作为自己的模板。
curl -k -X POST -H "X-Auth-Token: ${Token}" -F "resource={\"name\": \"aos-magento\",\"description\":\"aos magento template\",\"version\": \"1.9\"}" -F "archive_content=@e-business-app.yaml" -i "${AOS_Endpoint}/v2/templates"
您需要指定如下参数。
- Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject-token”的值。
- name:模板名称。
- description:模板描述。
- version:模板版本。
- archive_content:要上传的模板包。如果执行curl命令时,未进入到模板文件所在路径,可以在此处加上路径,例如模板文件“e-business-app.yaml”在“/home/paas”路径下,则命令为archive_content=@/home/paas/e-business-app.yaml
- AOS_Endpoint:{URI-scheme} :// {Endpoint} ,例如https://aos.cn-north-4.myhuaweicloud.com。
响应消息体:
HTTP/1.1 100 Continue ...... { "id": "10185add-acde-cc18-b8dd-b3a87a1f484c" }p
记录模板ID(10185add-acde-cc18-b8dd-b3a87a1f484c)作为后续创建堆栈时所用的模板。
- 选择左侧导航栏的“模板市场”,单击“公共模板”。在“行业场景模板”下,单击Magento电商应用名称,查看详情。单击“下载模板”,保存公共模板文件(例如:e-business-app.yaml)到本地。
- 调用查询模板输入接口,查看模板输入,作为后续创建堆栈时需要配置的输入参数的修改。
curl -k -X GET -H "X-Auth-Token: ${Token}" "${AOS_Endpoint}/v2/templates/${TEMPLATE_ID}/inputs"
您需要指定如下参数。
- Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject-token”的值。
- TEMPLATE_ID:上一步获取的模板ID。
- AOS_Endpoint:{URI-scheme} :// {Endpoint} ,例如https://aos.cn-north-4.myhuaweicloud.com。
响应消息体:
{ ....... "app-name": { "default": "magento", "description": "应用名称", "immutable": false, "label": "magento", "usednodes": [ "magento", "magento-service" ] }, "magento-EIP": { "description": "magento服务对外暴露访问地址", "immutable": false, "label": "magento", "usednodes": [ "magento-config" ] }, "magento-EPORT": { "default": 32080, "description": "magento服务对外监听端口", "immutable": false, "label": "magento", "type": "integer", "usednodes": [ "magento-config", "magento-service" ] }, "mysql-database": { "default": "magento", "description": "MySQL数据库服务为magento服务创建的database名称", "immutable": false, "label": "mysql", "usednodes": [ "mysql-conf" ] }, "mysql-password": { "default": "******", "description": "MySQL数据库服务密码", "immutable": false, "label": "mysql", "usednodes": [ "mysql-conf" ] }, "mysql-port": { "default": 3306, "description": "MySQL数据库服务监听端口", "immutable": false, "label": "mysql", "type": "integer" }, ...... }
在创建堆栈的时候需要填写这些值并最终转化为模板内的属性值,AOS后台在遇到未填写的字段的时候会使用模板内的默认值填写。本例需要更改magento-EIP和magento-EPORT的参数值,其余参数保持默认即可。
- 调用创建堆栈接口,创建Magento电子商务系统堆栈。
curl -k -X POST -H "X-Auth-Token: ${Token}" -d '{ "name": "magento-stack-test", "project_id": "c51567523b744d098a8a81ede51894ac", "template_id": "'"${TEMPLATE_ID}"'", "force": true, "cluster_id": "f2637630-5d83-11e8-a6de-0255ac101a0c", "namespace": "default", "inputs_json": { "magento-EIP": "*.*.78.102", "magento-EPORT": 32080 }, "action_parameters": { "auto_create": true, "timeout": 20 } }' "${AOS_Endpoint}/v2/stacks"
您需要创建一个可用容器集群,包含一个2C4G的可用节点,并且已绑定弹性IP。
您需要指定如下参数。
- Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject-token”的值。
- name:自定义堆栈名称,例如magento-stack-test。
- project_id:项目ID,获取方法可参见获取项目ID。
- cluster_id:集群ID。您可登录CCE控制台,单击“资源管理 > 集群管理”,在集群详情页获取集群ID。
- namespace:集群下可用的命名空间。您可登录CCE控制台,单击“资源管理 >命名空间”,获取命名空间名称。
- magento-EIP:节点的弹性IP。您可登录CCE控制台,单击“资源管理 > 节点管理”,在节点详情页获取弹性IP。
- magento-EPORT:节点端口,请输入30000-32767之间的整数,请保证集群内唯一。可保持默认32080。
创建成功的时候会返回堆栈相关的一些信息,为了后续操作,需要记录下堆栈的ID。{ "force": true, "guid": "0cec7a8c-5fc1-11e8-a532-0242ac110007", "namespace": "default", "project_id": "c51567523b744d098a8a81ede51894ac", "cluster_name": "k8s19-lm-do-not-delete", "cluster_id": "f2637630-5d83-11e8-a6de-0255ac101a0c", "domain_id": "b0148a2cb4f347289b477bab429e48e7", "name": "magento-stack-test", "description": "", "status": "", "template_id": "10185add-acde-cc18-b8dd-b3a87a1f484c", "previous_template_id": "", "template_name": "aos-magento", "inputs_json": "......" ....... }
- 调用查询堆栈接口,查看堆栈创建是否成功。
curl -k -X GET -H "X-Auth-Token: ${Token}" "${AOS_Endpoint}/v2/stacks/${STACK_ID}"
您需要指定如下参数。
- Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject-token”的值。
- STACK_ID:上一步获取的堆栈ID。
- AOS_Endpoint:{URI-scheme} :// {Endpoint} ,例如https://aos.cn-north-4.myhuaweicloud.com。
响应消息体:
{ "force": true, "guid": "0cec7a8c-5fc1-11e8-a532-0242ac110007", "namespace": "default", "project_id": "c51567523b744d098a8a81ede51894ac", "cluster_name": "k8s19-lm-do-not-delete", "cluster_id": "f2637630-5d83-11e8-a6de-0255ac101a0c", "domain_id": "b0148a2cb4f347289b477bab429e48e7", "name": "magento-stack-test", "description": "", "status": "Running", "template_id": "10185add-acde-cc18-b8dd-b3a87a1f484c", "previous_template_id": "", "template_name": "aos-magento", "inputs_json":...... }
当返回接口中的status字段为Running状态时表示创建成功。如果创建失败可以通过subObjectStatuses字段查看错误日志。
- 调用查询堆栈输出接口,查询堆栈的输出。
curl -k -X GET -H "X-Auth-Token: ${Token}" "${AOS_Endpoint}/v2/stacks/${STACK_ID}/outputs"
您需要指定如下参数。
- Token:构造请求中获取用户Token接口,返回的响应消息头中“x-subject-token”的值。
- STACK_ID:上一步获取的堆栈ID。
- AOS_Endpoint:{URI-scheme} :// {Endpoint} ,例如https://aos.cn-north-4.myhuaweicloud.com。
响应消息体:
{ "outputs": { "ingress-admin_password": { "value": "******", "description": "Password of super user." }, "magento-addr": { "value": "http://*.*.78.102:32080", "description": "Access URL for magento service." }, "magento-admin_username": { "value": "admin", "description": "Super user name." } } }
访问magento电子商务系统,在浏览器中访问地址http://magento-EIP:magento-EPORT,例如http://*.*.78.102:32080。图3 访问magento电子商务系统