以创建一台使用自定义镜像部署软件的ECS实例为例,本教程为您展示如何创建并发布具备该功能的计算巢服务。

准备工作

  1. 您已成为阿里云生态合作伙伴。申请加入生态合作伙伴,请前往阿里云生态合作伙伴,在伙伴类型区域,选择代理伙伴类型,并申请加入。
    说明 在邀测期间,计算巢允许供未加入生态合作伙伴的服务商使用。
  2. 您已加入计算巢ISV计划。申请加入计算巢ISV计划,请前往计算巢ISV招募计划,完成您的ISV伙伴身份认证。
    说明 在邀测期间,计算巢允许供未加入计算巢ISV计划的服务商使用。
  3. 仅在邀测期间,您需要联系阿里云接口人,申请开通计算巢权限。在申请时,您需要提供以下信息,以备审核。
    • 服务商名称
    • 服务商简介(不超过120字)
    • 服务商官网链接

创建并发布计算巢服务

  1. 创建服务。
    1. 登录计算巢控制台
      请您使用已开通计算巢权限的阿里云账号登录,登录后控制台默认为服务商控制台,如下图所示。服务商控制台
    2. 在左侧导航栏,单击我的服务
    3. 在页面左上角,单击创建新服务
    4. 配置服务信息。
      创建服务
      配置项 配置示例 配置说明
      服务类型 私有部署服务 您只提供软件,资源会部署在用户账号。
      服务信息 选择简体中文版,并配置如下信息:
      • 服务图标:PNG格式的图标
      • 服务名称:使用自定义镜像创建ECS实例
      • 服务简介:该服务用来创建一台使用自定义镜像部署软件的ECS实例。
      无。
      录入模板
      {
        "ROSTemplateFormatVersion": "2015-09-01",
        "Description": {
          "en": "Alibaba Cloud ROS Sample Template: One simple ECS instance with a security group and a vSwitch in a VPC. The user only needs to specify the image ID.",
          "zh-cn": "阿里云资源编排示例模板:一个简单的ECS实例,在VPC中具有一个安全组和一个vSwitch。 用户只需要指定镜像ID。"
        },
        "Parameters": {
          "ImageId": {
            "Type": "String",
            "Description": {
              "en": "Instance Image ID. see detail: <b><a href='https://www.alibabacloud.com/help/doc-detail/112977.html' target='_blank'><font color='blue'>Find the mirror</font></a></b>",
              "zh-cn": "实例镜像,详见:<b><a href='https://help.aliyun.com/document_detail/112977.html' target='_blank'><font color='blue'>查找镜像</font></a></b>"
            },
            "Label": {
              "en": "Image ID",
              "zh-cn": "镜像ID"
            },
            "Default": "centos_7"
          },
          "InstanceType": {
            "Type": "String",
            "Description": {
              "zh-cn": "填写VSwitch可用区下可使用的规格;<br>通用规格:<font color='red'><b>ecs.c5.large</b></font><br>注:可用区可能不支持通用规格<br>规格详见:<a href='https://help.aliyun.com/document_detail/25378.html' target='_blank'><b><font color='blue'>实例规格族</font></a></b>",
              "en": "Fill in specifications that can be used under the VSwitch availability zone;</b></font><br>general specifications:<font color='red'><b>ecs.c5.large</b></font><br>note: a few zones do not support general specifications<br>see detail: <a href='https://www.alibabacloud.com/help/en/doc-detail/25378.html' target='_blank'><b><font color='blue'>Instance Specification Family</font></a></b>"
            },
            "Label": {
              "en": "Instance Type",
              "zh-cn": "实例类型"
            },
            "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType"
          },
          "Password": {
            "NoEcho": true,
            "Type": "String",
            "Description": {
              "zh-cn": "长度8-30,必须包含大写字母、小写字母、数字、特殊符号三个;<br>特殊字符包括:()`~!@#$%^&*_-+=|{}[]:;'<>,.?/",
              "en": "The 8-30 long login password of instance, consists of the uppercase, lowercase letter and number. <br> special characters include()`~!@#$%^&*_-+=|{}[]:;'<>,.?/"
            },
            "AllowedPattern": "[0-9A-Za-z\\_\\-&:;'<>,=%`~!@#\\(\\)\\$\\^\\*\\+\\|\\{\\}\\[\\]\\.\\?\\/]+$",
            "Label": {
              "en": "Login Password",
              "zh-cn": "实例密码"
            },
            "ConstraintDescription": "[8, 30] characters, consists of uppercase letter, lowercase letter, number or special characters.",
            "MinLength": 8,
            "MaxLength": 30
          }
        },
        "Resources": {
          "VSwitch": {
            "Type": "ALIYUN::ECS::VSwitch",
            "Properties": {
              "VpcId": {
                "Ref": "VPC"
              },
              "ZoneId": {
                "Fn::Select": [
                  "0",
                  {
                    "Fn::GetAZs": {
                      "Ref": "ALIYUN::Region"
                    }
                  }
                ]
              },
              "CidrBlock": "192.168.0.0/16"
            },
            "Metadata": {
              "ALIYUN::ROS::Designer": {
                "id": "90648756-148d-4692-a3c6-3834c2c80f80"
              }
            }
          },
          "WebServer": {
            "Type": "ALIYUN::ECS::Instance",
            "Properties": {
              "VpcId": {
                "Ref": "VPC"
              },
              "SecurityGroupId": {
                "Ref": "SecurityGroup"
              },
              "VSwitchId": {
                "Ref": "VSwitch"
              },
              "ImageId": {
                "Ref": "ImageId"
              },
              "InstanceType": {
                "Ref": "InstanceType"
              },
              "Password": {
                "Ref": "Password"
              }
            },
            "Metadata": {
              "ALIYUN::ROS::Designer": {
                "id": "2b080610-ddab-43ba-b9ab-8e3223668692"
              }
            }
          },
          "VPC": {
            "Type": "ALIYUN::ECS::VPC",
            "Properties": {
              "CidrBlock": "192.168.0.0/16",
              "VpcName": "simple_ecs_vpc"
            },
            "Metadata": {
              "ALIYUN::ROS::Designer": {
                "id": "1361cd4d-7ff5-4c6d-9c26-3d089a644b0b"
              }
            }
          },
          "SecurityGroup": {
            "Type": "ALIYUN::ECS::SecurityGroup",
            "Properties": {
              "VpcId": {
                "Ref": "VPC"
              }
            },
            "Metadata": {
              "ALIYUN::ROS::Designer": {
                "id": "468cb29b-5bba-452e-95f4-4b331727204d"
              }
            }
          }
        },
        "Outputs": {
          "InstanceId": {
            "Description": {
              "en": "The instance id of created ecs instance",
              "zh-cn": "已创建的ecs实例的实例ID"
            },
            "Value": {
              "Fn::GetAtt": [
                "WebServer",
                "InstanceId"
              ]
            }
          },
          "PublicIp": {
            "Description": {
              "en": "Public IP address of created ecs instance.",
              "zh-cn": "已创建的ecs实例的公共IP地址。"
            },
            "Value": {
              "Fn::GetAtt": [
                "WebServer",
                "PublicIp"
              ]
            }
          },
          "SecurityGroupId": {
            "Description": {
              "en": "Generated security group id for security group.",
              "zh-cn": "为安全组生成的安全组ID。"
            },
            "Value": {
              "Fn::GetAtt": [
                "SecurityGroup",
                "SecurityGroupId"
              ]
            }
          }
        },
        "Metadata": {
          "ALIYUN::ROS::Designer": {
            "90648756-148d-4692-a3c6-3834c2c80f80": {
              "size": {
                "width": 129,
                "height": 140
              },
              "position": {
                "x": 212,
                "y": 90
              },
              "z": 1,
              "embeds": [
                "2b080610-ddab-43ba-b9ab-8e3223668692"
              ]
            },
            "1361cd4d-7ff5-4c6d-9c26-3d089a644b0b": {
              "size": {
                "width": 309,
                "height": 194
              },
              "position": {
                "x": 193,
                "y": 63
              },
              "z": 0,
              "embeds": [
                "90648756-148d-4692-a3c6-3834c2c80f80",
                "468cb29b-5bba-452e-95f4-4b331727204d"
              ]
            },
            "2b080610-ddab-43ba-b9ab-8e3223668692": {
              "size": {
                "width": 60,
                "height": 60
              },
              "position": {
                "x": 250,
                "y": 130
              },
              "z": 2
            },
            "468cb29b-5bba-452e-95f4-4b331727204d": {
              "size": {
                "width": 60,
                "height": 60
              },
              "position": {
                "x": 406,
                "y": 130
              },
              "z": 1
            },
            "e776abde-ad3c-4a8d-a999-93fbd2fa37e6": {
              "source": {
                "id": "2b080610-ddab-43ba-b9ab-8e3223668692"
              },
              "target": {
                "id": "468cb29b-5bba-452e-95f4-4b331727204d"
              },
              "z": 1
            }
          }
        }
      }
      本示例采用ROS JSON部署方式。
  2. 单击提交审核,进入审核流程。

    您提交审核后,阿里云会在3个工作日内完成审批。

  3. 我的服务页面,找到状态为已通过的服务,单击上线服务
    上线服务
    当状态变更为已上线时,服务发布完成。此时,您可以将该计算巢服务的部署链接提供给用户,用户打开该链接就能创建对应的服务实例。部署链接的获取方式如下:
    1. 找到已上线的服务,单击服务名称,打开计算巢服务详情页面。
    2. 服务详情页签,复制部署链接,并提供给用户。
  4. 可选:如果您想将该计算巢服务上架至云市场,供用户购买,具体操作,请参见将计算巢服务上架到云市场