本接口用于创建一个新的消息队列。
Request
Request的构造主要由以下几个部分组成。
- 请求行
PUT /$queueName HTTP/1.1
- 特有Request Header
无,请参见公共参数。
- Request Body
Request Body为XML格式,XML中包含创建Queue的属性,这些属性都为可选属性。
参数名称 | 说明 | 参数值 |
---|---|---|
DelaySeconds | 发送到该Queue的所有消息默认将以DelaySeconds参数指定的秒数延后可被消费,单位为秒。 | 0s~604800s(7天)范围内某个整数值,默认值为0s。 |
MaximumMessageSize | 发送到该Queue的消息体的最大长度,单位为Byte。 | 1024(1 KB)~65536(64 KB)范围内的某个整数值,默认值为65536(64 KB)。 |
MessageRetentionPeriod | 消息在该Queue中最长的存活时间,从发送到该队列开始经过此参数指定的时间后,不论消息是否被取出过都将被删除,单位为秒。 | 60s(1 分钟)~604800s(7 天)范围内某个整数值,默认值为259200s(3 天)。 |
VisibilityTimeout | 消息从该Queue中取出后从Active状态变成 Inactive 状态后的持续时间,单位为秒。 | 1s~43200s(12 小时)范围内的某个值整数值,默认值为30s。 |
PollingWaitSeconds | 当Queue消息量为空时,针对该Queue的ReceiveMessage请求最长的等待时间,单位为秒。 | 0s~30s范围内的某个整数值,默认值为0s。 |
说明
只要Queue设置了PollingWaitSeconds,针对该Queue的所有ReceiveMessage请求在Queue无消息时,都将默认进入到Polling等待状态,在PollingWaitSeconds期间一直保持无消息,则会返回MessageNotExist;如果在此期间有新的消息进入到Queue中,则会唤醒相应的ReceiveMessage请求进行返回。
Response
返回消息由返回状态行、HTTP头和消息体三部分组成。
- HTTP Status Code
HTTP/1.1 201 Created
同一个所有者名下的消息队列不能重名,当出现创建重名消息队列时,如果创建消息队列的属性与已经存在的消息队列的属性相同,返回204(No Content);否则返回409(Conflict)。
- 特有Response Header
参数名称 说明 Location 返回创建的QueueURL,格式如下: http://$AccountId.mqs-<Region>.aliyuncs.com/$queueName
。 - Response Body
无。
Special Error
错误代码 | 错误消息 | 状态码 |
---|---|---|
QueueAlreadyExist | The queue you want to create is already exist. | 409 |
InvalidArgument | The value of Element should between Low and High seconds/bytes. | 400 |
- 请求示例
PUT /$queueName HTTP/1.1 Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com Date: Wed, 08 Mar 2012 12:00:00 GMT x-mqs-version: 2014-07-08 Authorization:MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= <?xml version=”1.0” encoding=”UTF-8”?> <Queue xmlns=”http://mqs.aliyuncs.com/doc/v1/”> <VisibilityTimeout>60</VisibilityTimeout> <MaximumMessageSize>65536</MaximumMessageSize> <MessageRetentionPeriod>1209600</MessageRetentionPeriod> </Queue>
- 返回示例
HTTP/1.1 201 Created x-mqs-request-id: 512B2A634403E52B1956133E x-mqs-version: 2015-06-06 Location: http://$AccountId.mqs-cn-hangzhou.aliyuncs.com/$queueName