全部产品
阿里云办公

通过模板创建资源

更新时间:2018-01-17 10:14:32

资源编排(ROS)通过模板创建一组阿里云资源。ROS 把这组资源定义为一个栈(stack)。ROS 通过 stack 管理,维护这组阿里云的资源。本文就将使用一个简单的 ROS 模板创建阿里云资源,然后在 ROS 的控制台管理维护这组资源。

ROS 模板是 JSON 格式文本文件。您可以在这个文本中,申明和定义自己的阿里云资源,例如安全组、ECS、VPC、RDS 等等。

ROS 的控制台 提供一些常用的 模版样例。本文档介绍如何通过已有的模板样例中的模板来创建阿里云资源。

  1. 登录 ROS 的控制台

  2. 在 ROS 控制台左侧导航栏中,单击 模板样例。页面显示 ROS 提供的常用模板。

    本文以 simple_ecs_instance 为例。

    从模板示例中找到 simple_ecs_instance,通过这个模板将创建一个 ECS 实例,并加入到一个安全组。

    simple_ecs_template

    每个模板样例都有 预览创建栈 按钮。

  3. 单击 预览 按钮,模板会显示为 JSON 格式。simple_ecs_instance 模板的详细信息如下:

    1. {
    2. "ROSTemplateFormatVersion" : "2015-09-01",
    3. "Description": "One simple ECS instance and a security group. The user only needs to specify the image ID.",
    4. "Parameters" : {
    5. "ImageId": {
    6. "Type" : "String",
    7. "Default": "centos_7",
    8. "Description": "Image Id, represents the image resource to startup one ECS instance,, <a href='#/product/cn-shenzhen/list/imageList' target='_blank'>View image resources</a>"
    9. },
    10. "Password": {
    11. "Type" : "String",
    12. "NoEcho": true,
    13. "Default": "Test1234"
    14. },
    15. "InstanceType": {
    16. "Type": "String",
    17. "Description": "The instance type",
    18. "Default": "ecs.n4.large",
    19. "AllowedValues": [
    20. "ecs.s1.small",
    21. "ecs.n4.small",
    22. "ecs.n4.large",
    23. "ecs.n4.xlarge",
    24. "ecs.mn4.small",
    25. "ecs.mn4.large",
    26. "ecs.mn4.xlarge",
    27. "ecs.n1.small",
    28. "ecs.n1.medium",
    29. "ecs.n1.large"
    30. ]
    31. }
    32. },
    33. "Resources" : {
    34. "WebServer": {
    35. "Type": "ALIYUN::ECS::Instance",
    36. "Properties": {
    37. "Password": {"Ref": "Password"},
    38. "ImageId" : {"Ref": "ImageId"},
    39. "InstanceType": {"Ref": "InstanceType"},
    40. "SecurityGroupId": {"Ref": "SecurityGroup"}
    41. }
    42. },
    43. "SecurityGroup": {
    44. "Type": "ALIYUN::ECS::SecurityGroup",
    45. }
    46. },
    47. "Outputs": {
    48. "InstanceId": {
    49. "Value" : {"Fn::GetAtt": ["WebServer","InstanceId"]}
    50. },
    51. "PublicIp": {
    52. "Value" : {"Fn::GetAtt": ["WebServer","PublicIp"]}
    53. },
    54. "SecurityGroupId": {
    55. "Value" : {"Fn::GetAtt": ["SecurityGroup","SecurityGroupId"]}
    56. }
    57. }
    58. }
    这个 JSON 文本包含五个顶级字段:

    "ROSTemplateFormatVersion" : "2015-09-01" 定义模板版本。

    "Description": "一个简配的 ECS 实例,包括一个安全组,用户只需要指定imageId" 定义对模板的解释说明。

    "Parameters" : { } 定义模板的一些参数。本例中定义了镜像 ID 的参数,实例规格的参数,并指定了默认值。

    "Resources" : { } 定义这个模板将要创建的阿里云资源。本例中申明将要创建一个 ECS 实例和一个安全组;这里申明的资源属性可以引用 Parameters 中定义的参数。

    "Outputs": { } 定义资源创建完成后,通过 ROS 的栈输出资源信息。本例中,将输出 ECS 实例的 ID、公网 IP 和安全组 ID。

  4. 单击 创建 stack ,开始创建您的资源栈。在 所在 region 的下拉框中,选择 region,然后单击右下角 下一步

    create stack

  5. 给您将要创建的这组资源指定一个唯一的 stack 名称,其他项可保持默认值不变。然后单击 创建

    create stack2

    资源创建需要一定时间,请等待创建完成。创建成功后,可以单击左侧的 资源栈管理 查看 stack 的状态。可查看 Outputs 中定义的值。本例中 stack 的输出情况:

    stack information

    单击左侧导航栏中 资源,可以查看 stack 中的所有资源。

    单击左侧导航栏中 事件,可以查看 ROS 创建这个资源栈的时候的相关操作。如果任何涉及资源栈的操作失败了,这里也会显示具体哪个资源操作失败的原因。

    单击左侧导航栏中 模板,可以查看资源栈的原始模板。

以上示例只是通过 ROS 的文本模板快速创建资源,ROS 也可以通过用户指定的模板 URL 地址创建资源。除此之外,可通过 ROS 管理资源。您可以删除自己的资源组,或者只删除 stack 而保留资源。还能根据自己的需求更新资源栈,重新检查资源栈的状态等。

说明:

阿里云规定创建按量付费的资源,例如本例的 ECS 实例,账号中需要有超过 100 元的现金余额、可用信用额度、或者可用于开通产品的代金券。如果创建失败,请检查您的账户可用资金是否不足 100 元。