ALIYUN::AMQP::Queue

ALIYUN::AMQP::Queue类型用于创建Queue。

语法

{
  "Type": "ALIYUN::AMQP::Queue",
  "Properties": {
    "DeadLetterExchange": String,
    "MaximumPriority": Number,
    "InstanceId": String,
    "ExclusiveState": Boolean,
    "DeadLetterRoutingKey": String,
    "VirtualHost": String,
    "MaxLength": Number,
    "AutoDeleteState": Boolean,
    "QueueName": String,
    "MessageTTL": Number,
    "AutoExpireState": Number
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

InstanceId

String

实例ID。

QueueName

String

队列名称。

队列名称要求:

  • 队列名称只能包含字母、数字、短划线(-)、下划线(_)、半角句号(.)、井号(#)、正斜线(/)、at符号(@),长度限制为1~255字符。

  • 当队列被创建后,名称无法修改。如果您想修改队列名称,只能删除后重建。

VirtualHost

String

Vhost名称。

只能包含字⺟、数字、短划线(-)、下划线(_)、半角句号(.)、井号(#)、正斜线(/)、at符号(@)。

⻓度限制为1~255字符。

AutoDeleteState

Boolean

是否自动删除。

取值:

  • true:自动删除。

    如果订阅该队列的最后一个消费端取消订阅后,则队列将会自动删除。

  • false:不自动删除。

AutoExpireState

Number

队列的自动过期时间。

如果队列在指定时间内没有被访问,则会被自动删除。

说明

该参数对应的功能需要开通后才能使用。如需使用,请提交工单开通。

DeadLetterExchange

String

死信Exchange。

该类Exchange是用来接收被拒绝的消息。

如果消费端拒绝一个不重新发送的消息,那么消息队列RabbitMQ版将会把消息路由到指定的死信Exchange,该Exchange再将消息路由到绑定的Queue进行存储。

DeadLetterRoutingKey

String

死信Routing Key。

只能包含字⺟、数字、短划线(-)、下划线(_)、半角句号(.)、井号(#)、正斜线(/)、at符号(@)。

⻓度限制为1~255字符。

ExclusiveState

Boolean

是否为排他性Exchange。

取值:

  • true:是排他性Exchange。

    只能被排他性Exchange的Connection使用。该Connection断开后排他性Exchange自动删除。

  • false:不是排他性Exchange。

MaximumPriority

Number

不支持优先级功能。

MaxLength

Number

队列中消息的最大数量。

当前版本不支持该参数。

如果超出队列中消息的最大数量,则先到达队列的消息将会被删除。

MessageTTL

Number

消息在队列中的有效期。

取值要求:

  • 当某条消息在队列中的留存时间超过配置的消息存活时间时,则该消息过期。

  • 消息存活时间的值必须为非负整型数,最大为1天。单位为毫秒。例如,某条消息的存活时间的值是1000,则代表该消息最多会在Queue中存活1秒。

返回值

Fn::GetAtt

QueueName:队列名称。

示例

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  InstanceId:
    Type: String
    Description: InstanceId
  VirtualHost:
    Type: String
    Description: The name of the virtual host.
  QueueName:
    Type: String
    Description: The name of the queue.
    MaxLength: 255
Resources:
  Queue:
    Type: ALIYUN::AMQP::Queue
    Properties:
      InstanceId:
        Ref: InstanceId
      VirtualHost:
        Ref: VirtualHost
      QueueName:
        Ref: QueueName
Outputs:
  QueueName:
    Description: The name of the queue.
    Value:
      Fn::GetAtt:
        - Queue
        - QueueName

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "InstanceId": {
      "Type": "String",
      "Description": "InstanceId"
    },
    "VirtualHost": {
      "Type": "String",
      "Description": "The name of the virtual host."
    },
    "QueueName": {
      "Type": "String",
      "Description": "The name of the queue.",
      "MaxLength": 255
    }
  },
  "Resources": {
    "Queue": {
      "Type": "ALIYUN::AMQP::Queue",
      "Properties": {
        "InstanceId": {
          "Ref": "InstanceId"
        },
        "VirtualHost": {
          "Ref": "VirtualHost"
        },
        "QueueName": {
          "Ref": "QueueName"
        }
      }
    }
  },
  "Outputs": {
    "QueueName": {
      "Description": "The name of the queue.",
      "Value": {
        "Fn::GetAtt": [
          "Queue",
          "QueueName"
        ]
      }
    }
  }
}