ALIYUN::MNS::Queue类型是消息存储的目的地,队列可以分成普通队列和延时队列两类。
如果发送消息时不指定消息延时参数,被发送到普通队列的消息可以立刻被消费,而发送到延时队列的消息需要经过设定的延时时间后才能被消费。
语法
{
  "Type": "ALIYUN::MNS::Queue",
  "Properties": {
    "PollingWaitSeconds": Integer,
    "LoggingEnabled": Boolean,
    "MessageRetentionPeriod": Integer,
    "MaximumMessageSize": Integer,
    "DelaySeconds": Integer,
    "VisibilityTimeout": Integer,
    "QueueName": String,
    "DlqPolicy": Map,
    "Tags": List
  }
}属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| QueueName | String | 是 | 否 | 队列名称。 | 同一账号同一地域, 队列名称不能重复。 长度不超过256个字符,必须以英文字母或数字开头,可包含英文字母、数字和短划线(-)。 | 
| DelaySeconds | Integer | 否 | 是 | 发送到该队列的所有消息默认以DelaySeconds参数指定的秒数延后。 | 取值范围:0~604,800(7天)。 单位:秒。 默认值:0。 | 
| DlqPolicy | Map | 否 | 是 | 死信策略。 | 更多信息,请参考DlqPolicy属性。 | 
| MaximumMessageSize | Integer | 否 | 是 | 发送到该队列消息体的最大长度。 | 取值范围:1024(1KB)~65,536(64KB)。 单位:byte。 默认值:65,536(64KB)。 | 
| MessageRetentionPeriod | Integer | 否 | 是 | 消息在该队列中最长的存活时间,从发送到该队列开始经过此参数指定的时间后,不论消息是否被取出过都将被删除。 | 取值范围:60(1分钟)~604,800(7 天) 。 单位:秒。 默认值:345,600(4 天)。 | 
| VisibilityTimeout | Integer | 否 | 是 | 消息从该队列中取出后从Active状态变成Inactive状态后的持续时间。 | 取值范围:1~43,200(12小时) 。 单位:秒。 默认值:30。 | 
| PollingWaitSeconds | Integer | 否 | 是 | 当队列中没有消息时,针对该队列的ReceiveMessage请求最长的等待时间。 | 取值范围:0~30。 单位:秒。 默认值:0。 | 
| LoggingEnabled | Boolean | 否 | 是 | 是否启用日志管理功能。 | 取值: 
 | 
| Tags | List | 否 | 是 | 资源标签列表。 | 更多信息,请参考Tags属性。 | 
DlqPolicy语法
"DlqPolicy": {
  "MaxReceiveCount": Integer,
  "DeadLetterTargetQueue": String,
  "Enabled": Boolean
}DlqPolicy属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| MaxReceiveCount | Integer | 是 | 是 | 消息最大投递次数。 | 无 | 
| DeadLetterTargetQueue | String | 是 | 是 | 死信消息投递目标队列。 | 无 | 
| Enabled | Boolean | 是 | 是 | 是否开启死信消息投递。 | 无 | 
Tags语法
"Tags": [{
  "Key": String,
  "Value": String
}]Tags属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| Key | String | 是 | 否 | 标签键。 | 无 | 
| Value | String | 否 | 否 | 标签值。 | 无 | 
返回值
Fn::GetAtt
- QueueUrl:队列的URL。 
- ARN.WithSlash:队列的ARN。 
- QueueName:队列名称。 
示例
ROSTemplateFormatVersion: '2015-09-01'
Parameters: {}
Resources:
  Queue:
    Type: ALIYUN::MNS::Queue
    Properties:
      QueueName: TestQueue
      MessageRetentionPeriod: 345600
Outputs:
  QueueName:
    Description: Queue name
    Value:
      Fn::GetAtt:
        - Queue
        - QueueName
  ARN:
    Description: The ARN for ALIYUN::ROS::CustomResource
    Value:
      Fn::GetAtt:
        - Queue
        - ARN
  ARN.WithSlash:
    Description: 'The ARN: acs:mns:$region:$accountid:/queues/$queueName'
    Value:
      Fn::GetAtt:
        - Queue
        - ARN.WithSlash
  QueueUrl:
    Description: URL of created queue
    Value:
      Fn::GetAtt:
        - Queue
        - QueueUrl{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
  },
  "Resources": {
    "Queue": {
      "Type": "ALIYUN::MNS::Queue",
      "Properties": {
        "QueueName": "TestQueue",
        "MessageRetentionPeriod": 345600
      }
    }
  },
  "Outputs": {
    "QueueName": {
      "Description": "Queue name",
      "Value": {
        "Fn::GetAtt": [
          "Queue",
          "QueueName"
        ]
      }
    },
    "ARN": {
      "Description": "The ARN for ALIYUN::ROS::CustomResource",
      "Value": {
        "Fn::GetAtt": [
          "Queue",
          "ARN"
        ]
      }
    },
    "ARN.WithSlash": {
      "Description": "The ARN: acs:mns:$region:$accountid:/queues/$queueName",
      "Value": {
        "Fn::GetAtt": [
          "Queue",
          "ARN.WithSlash"
        ]
      }
    },
    "QueueUrl": {
      "Description": "URL of created queue",
      "Value": {
        "Fn::GetAtt": [
          "Queue",
          "QueueUrl"
        ]
      }
    }
  }
}更多示例,请参见创建主题、创建消息队列和描述订阅关系的组合YAML示例。