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
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
DeadLetterExchange String 死信Exchange。 该类Exchange是用来接收被拒绝的消息。

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

MaximumPriority Number 不支持优先级功能。
InstanceId String 实例ID。
ExclusiveState Boolean 是否为排他性Exchange。 取值:
  • true:是排他性Exchange。

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

  • false:不是排他性Exchange。
DeadLetterRoutingKey String 死信Routing Key。 只能包含字⺟、数字、短划线(-)、下划线(_)、半角句号(.)、井号(#)、正斜线(/)、at符号(@)。

⻓度限制为1~255字符。

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

⻓度限制为1~255字符。

MaxLength Number 队列中消息的最大数量。 当前版本不支持该参数。

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

AutoDeleteState Boolean 是否自动删除。 取值:
  • true:自动删除。

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

  • false:不自动删除。
QueueName String 队列名称。 队列名称要求:
  • 队列名称只能包含字母、数字、短划线(-)、下划线(_)、半角句号(.)、井号(#)、正斜线(/)、at符号(@),长度限制为1~255字符。
  • 当队列被创建后,名称无法修改。如果您想修改队列名称,只能删除后重建。
MessageTTL Number 消息在队列中的有效期。 取值要求:
  • 当某条消息在队列中的留存时间超过配置的消息存活时间时,则该消息过期。
  • 消息存活时间的值必须为非负整型数,最大为1天。单位为毫秒。例如,某条消息的存活时间的值是1000,则代表该消息最多会在Queue中存活1秒。
AutoExpireState Number 队列的自动过期时间。 如果队列在指定时间内没有被访问,则会被自动删除。
说明 该参数对应的功能需要开通后才能使用。如需使用,请提交工单开通。

返回值

Fn::GetAtt

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"
            ]
          }
        }
      }
    }
  • 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