ALIYUN::KAFKA::Instance类型用于创建Kafka实例。

语法

{
  "Type": "ALIYUN::KAFKA::Instance",
  "Properties": {
    "DeployType": Integer,
    "DiskType": String,
    "DeployOption": Map,
    "EipMax": Integer,
    "SpecType": String,
    "IoMax": Integer,
    "IoMaxSpec": String,
    "DiskSize": Integer,
    "TopicQuota": Integer,
    "PayType": String,
    "Tags": List,
    "DeletionForce": Boolean,
    "OpenConnector": Boolean
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
DeployType Integer 部署类型。 取值:
  • 4:公网和VPC实例。
  • 5:VPC实例。
DiskType String 磁盘类型。 取值:
  • 0:高效云盘。
  • 1:SSD。
DeployOption Map 部署选项。 更多信息,请参见DeployOption属性
EipMax Integer 公网流量。 当DeployType取值为4时,需指定该参数。

取值范围:1~160。

SpecType String 规格类型。 取值:
  • normal:标准版(高写版)。
  • professional:专业版(高写版)。
  • professionalForHighRead:专业版(高读版)。
IoMax Integer 流量峰值(不推荐)。 流量峰值和流量规格必须指定其中一个参数。如果同时指定,以流量规格为准。建议您只填写流量规格。

取值范围,请参见计费概述

IoMaxSpec String 流量规格(推荐)。 流量峰值和流量规格必须指定其中一个参数。如果同时指定,以流量规格为准。建议您只填写流量规格。

取值范围,请参见计费概述

DiskSize Integer 磁盘容量。 取值范围:500~96,000。

单位:GB。

TopicQuota Integer Topic的数量。 取值范围:50~79。
PayType String 付费类型。 取值:
  • Hour:按小时付费。
  • Month:按月付费。
Tags List 标签。 最多支持添加20个标签。

更多信息,请参见Tags属性

DeletionForce Boolean 是否强制删除。 取值:
  • true:强制删除。
  • false(默认值):不强制删除。
OpenConnector Boolean 是否开启Connector。 取值:
  • true:开启Connector。
  • false(默认值):关闭Connector。
说明 关于Connector的更多信息,请参见Connector概述

Tags语法

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]  

Tags属性

属性名称 类型 必须 允许更新 描述 约束
Key String 标签键。 长度为1~128个字符,不能以aliyunacs:开头,不能包含http://或者https://
Value String 标签值。 长度为0~128个字符,不能以aliyunacs:开头,不能包含http://或者https://

DeployOption语法

"DeployOption": {
  "IsEipInner": Boolean,
  "VpcId": String,
  "ZoneId": String,
  "VSwitchId": String,
  "SecurityGroup": String,
  "DeployModule": String,
  "Name": String,
  "IsSetUserAndPassword": Boolean,
  "Username": String,
  "Password": String,
  "ServiceVersion": String,
  "Config": Map
}

DeployOption属性

属性名称 类型 必须 允许更新 描述 约束
IsEipInner Boolean 是否支持EIP。 取值:
  • true:支持EIP。
  • false(默认值):不支持EIP。

EIP支持情况必须与实例类型一致。即公网和VPC实例取值为true,VPC实例取值为false。

DeployModule String 部署模式。 取值:
  • vpc:VPC实例的部署模式。
  • eip:公网和VPC实例的部署模式。
VpcId String 实例部署的专有网络ID。
ZoneId String 实例部署的可用区ID。
VSwitchId String 实例部署的交换机ID。
SecurityGroup String 实例的安全组。 如果不指定该参数,消息队列Kafka版会自动为您的实例配置安全组。
Name String 实例的名称。
IsSetUserAndPassword Boolean 是否设置新的用户名和密码。 仅支持公网和VPC实例。取值:
  • true:设置新的用户名和密码。
  • false(默认值):不设置新的用户名和密码。
Username String 用户名。

仅支持公网和VPC实例。

长度为8~40个字符,可包含英文字母和数字。

Password String 用户密码。

仅支持公网和VPC实例。

长度为8~40个字符,可包含英文字母和数字,且必须同时包含小写英文字母、大写英文字母和数字。

ServiceVersion String 部署的消息队列Kafka版的版本。 取值:
  • 0.10.2
  • 2.2.0
Config Map 部署的消息队列Kafka版实例的初始配置。 配置信息必须是一个合法的JSON字符串。取值:
  • enable.vpc_sasl_ssl:是否开启VPC传输加密。取值:
    • true:开启VPC传输加密。如果开启,则须同时开启ACL。
    • false(默认值):关闭VPC传输加密。
  • enable.acl:是否开启ACL。取值:
    • true:开启ACL。
    • false(默认值):关闭ACL。
  • kafka.log.retention.hours:在磁盘容量充足的情况下,消息的最长保留时间。

    取值范围:24~480。

    默认值:72。

    单位:小时。

    说明 磁盘容量不足(即磁盘水位达到85%)时,将提前删除旧的消息,以确保服务可用性。
  • kafka.message.max.bytes:消息队列Kafka版能收发的消息的最大值。

    取值范围:1,048,576~10,485,760。

    默认值:1,048,576。

    单位:字节。

    说明 修改该配置前,请确认修改值是否匹配生产和消费客户端相应配置。

返回值

Fn::GetAtt

  • InstanceId:实例ID。
  • OrderId:订单ID。
  • Name:实例名称。
  • SslEndpoint:SSL接入点的IP接入点。
  • SaslDomainEndpoint:SASL接入点的域名接入点。
  • SslDomainEndpoint:SSL接入点的域名接入点。
  • DomainEndpoint:默认接入点的域名接入点。
  • Endpoint:默认接入点的IP接入点。

示例

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "DeployType": {
      "Type": "Number",
      "Description": "The deployment mode of the Message Queue for Apache Kafka instance. Valid values: \n  4: Instance of the public type \n  5: Instance of the VPC type",
      "AllowedValues": [
        4,
        5
      ],
      "Default": 5
    },
    "SpecType": {
      "Type": "String",
      "Description": "The edition of the Message Queue for Apache Kafka instance. Valid values: \nprofessional: Professional Edition \nnormal: Normal version",
      "AllowedValues": [
        "normal",
        "professional",
        "professionalForHighRead"
      ],
      "Default": "normal"
    },
    "IoMaxSpec": {
      "Type": "String",
      "Description": "Flow specification (recommended) \nThe IoMax and IoMaxSpec must be optional. \nWhen filling in at the same time, subject to IoMaxSpec. \nIt is recommended that you only fill in the flow specification \n",
      "Default": "alikafka.hw.2xlarge"
    },
    "PayType": {
      "Type": "String",
      "Description": "Pay by hour or month.",
      "AllowedValues": [
        "Hour",
        "Month"
      ],
      "Default": "Hour"
    },
    "DiskType": {
      "Type": "String",
      "Description": "The type of the disk to be configured for the Message Queue for Apache Kafka instance. Valid values: \n0: Ultra disk \n1: SSD",
      "AllowedValues": [
        "0",
        "1"
      ],
      "Default": "1"
    },
    "DeployOption": {
      "Type": "Json",
      "Description": "If you want to deploy instance after create at once, the VSwitchId and DeployModule parameters is required",
      "Default": {
        "VpcId": "vpc-bp1vo0eez19cmlv1w****",
        "ZoneId": "cn-hangzhou-i",
        "VSwitchId": "vsw-bp1mq4dvcnvzbyevo****",
        "SecurityGroup": "sg-bp1gjon8qil2uf1a****",
        "DeployModule": "vpc",
        "ServiceVersion": "0.10.2",
        "Config": {
          "kafka.log.retention.hours": "33"
        }
      }
    },
    "DeletionForce": {
      "Type": "Boolean",
      "Description": "Whether delete all topics, consumer groups of the kafka instance and then delete instance. Default is false",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ],
      "Default": "false"
    },
    "DiskSize": {
      "Type": "Number",
      "Description": "The size of the disk to be configured for the Message Queue for Apache Kafka instance.",
      "Default": 500
    },
    "TopicQuota": {
      "Type": "Number",
      "Description": "The number of topics to be configured for the Message Queue for Apache Kafka instance. \nThe default value of this parameter varies with different peak traffic values. \nAdditional fees are charged if the default values are exceeded.\n Different specifications have different default values, and extra fees are charged. \nFor more information, see Billing.",
      "Default": 50
    },
    "OpenConnector": {
      "Type": "Boolean",
      "Description": "Whether open kafka connector or not",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ],
      "Default": "false"
    }
  },
  "Resources": {
    "Instance": {
      "Type": "ALIYUN::KAFKA::Instance",
      "Properties": {
        "DeployType": {
          "Ref": "DeployType"
        },
        "SpecType": {
          "Ref": "SpecType"
        },
        "PayType": {
          "Ref": "PayType"
        },
        "DiskType": {
          "Ref": "DiskType"
        },
        "DeployOption": {
          "Ref": "DeployOption"
        },
        "DeletionForce": {
          "Ref": "DeletionForce"
        },
        "DiskSize": {
          "Ref": "DiskSize"
        },
        "TopicQuota": {
          "Ref": "TopicQuota"
        },
        "OpenConnector": {
          "Ref": "OpenConnector"
        },
        "IoMaxSpec": {
          "Ref": "IoMaxSpec"
        }
      }
    }
  },
  "Outputs": {
    "InstanceId": {
      "Description": "Id of the instance. ",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "InstanceId"
        ]
      }
    },
    "OrderId": {
      "Description": "Id of the order. ",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "OrderId"
        ]
      }
    },
    "Name": {
      "Description": "Name of the instance.",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "Name"
        ]
      }
    }
  }
}

更多示例,请参见创建Kafka实例和创建Topic的组合示例:JSON示例YAML示例