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樣本。