ALIYUN::KAFKA::Topic类型用于创建Topic。

语法

{
  "Type": "ALIYUN::KAFKA::Topic",
  "Properties": {
    "InstanceId": String,
    "Topic": String,
    "Remark": String,
    "PartitionNum": Integer,
    "ReplicationFactor": Integer,
    "LocalTopic": Boolean,
    "CompactTopic": Boolean,
    "Config": Map,
    "MinInsyncReplicas": Integer,
    "Tags": List
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
InstanceId String 实例ID。
Topic String Topic的名称。 长度为3~64个字符,可包含英文字母、数字、下划线(_)和短划线(-)。
说明 Topic名称一旦创建,将无法修改。
Remark String Topic的备注信息。 长度为3~64个字符,可包含英文字母、数字、下划线(_)和短划线(-)。
PartitionNum Integer Topic的分区数。 取值范围:1~48。

建议分区数取值为6的倍数,减少数据倾斜风险。

ReplicationFactor Integer Topic的副本数。 当LocalTopic取值为true时,该参数有效。

取值范围:1~3。

说明 副本数为1时,有数据丢失的风险,请谨慎设置。
LocalTopic Boolean Topic的存储引擎。 取值:
  • false:云存储。
  • true:Local存储。
CompactTopic Boolean 日志清理策略。 当LocalTopic取值为true时,该参数有效。

取值:

  • false:消息清理策略。在磁盘容量充足的情况下,保留在最长保留时间范围内的消息;在磁盘容量不足时(一般磁盘使用率超过85%视为不足),将提前删除旧消息,以保证服务可用性。
  • true:Log Compaction日志清理策略。相同Key的消息,最新的Value值一定会被保留。
Config Map 补充配置。 当LocalTopic取值为true时,该参数有效。

取值示例:{"replications": 3},其中replications表示Topic副本数,取值范围为1~3。

MinInsyncReplicas Integer 最小ISR同步副本数。 当LocalTopic取值为true时,该参数有效。

取值范围:1~3,取值需小于Topic副本数。

Tags List 标签。 更多信息,请参见Tags属性

Tags语法

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

Tags属性

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

返回值

Fn::GetAtt

  • InstanceId:实例ID。
  • Topic:Topic的名称。

示例

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test create Topic",
  "Parameters": {
    "InstanceId": {
      "Type": "String",
      "Description": "Kafka实例ID。"
    },
    "TopicName": {
      "Type": "String",
      "Description": "Topic名称,长度为3~64个字符,可包含英文字母、数字、下划线(_)和短划线(-)。"
    },
    "Remark": {
      "Type": "String",
      "Description": "Topic备注信息,长度为3~64个字符,可包含英文字母、数字、下划线(_)和短划线(-)。"
    },
    "PartitionNum": {
      "Type": "Number",
      "Description": "Topic分区数。取值范围:1~48。建议分区数取值为6的倍数,减少数据倾斜风险。",
      "MinValue": 1,
      "MaxValue": 48,
      "Default": null
    }
  },
  "Resources": {
    "Topic": {
      "Type": "ALIYUN::KAFKA::Topic",
      "Properties": {
        "InstanceId": {
          "Ref": "InstanceId"
        },
        "Topic": {
          "Ref": "TopicName"
        },
        "Remark": {
          "Ref": "Remark"
        },
        "PartitionNum": {
          "Ref": "PartitionNum"
        }
      }
    }
  },
  "Outputs": {
    "TopicName": {
      "Value": {
        "Fn::GetAtt": [
          "Topic",
          "Topic"
        ]
      }
    }
  }
}