你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建订阅

重要

此 API 已 过时且自2021 年 11 月 1 日 停用,不应再使用。

创建新订阅。 创建后,订阅资源清单是不可变的。 此操作不是幂等的。 在成功创建同一主题和命名空间) 下同名 (订阅后重复创建调用,会导致 409 冲突错误消息。

如果创建的名称包含特殊或编码字符的订阅, (例如“test?Name=value&“,编码为”test%3FName%3Dvalue%26“) ,生成 (401) 未授权异常。

请注意以下订阅名称限制:

  1. 只能包含字母、数字、句点 (.) 、连字符 ( ) 和下划线 (_) 。

  2. 不允许多个段。

  3. 不允许将正斜杠 (/) 作为订阅名称的前缀或后缀。

  4. 最大字符数为 50。

请求

方法 请求 URI HTTP 版本
PUT https://management.core.windows.net/{subscription ID}/services/ServiceBus/Namespaces/Topics/Subscriptions/{Subscription Name} HTTP/1.1

请求标头

下表介绍必需的和可选的请求标头。

请求标头 说明
Content-Type application/xml;type=entry;charset=utf-8
命名空间 管理终结点 URL
x-ms-version 2012-03-01

请求还需要客户端证书。 此证书必须与你为特定订阅上载的证书匹配。

请求正文

下表介绍了请求正文中的主要元素:

属性名称 类型 说明
DefaultMessageTimeToLive XML Datetime 根据是否启用死信,如果消息在主题中存储的时间超过指定时间,则会自动将其移动到死信队列或删除。 如果消息 TTL 小于主题上设置的 TTL,则在消息上指定的 TTL 会覆盖此值。 此值在创建主题后不可变:

- 范围:1 秒 - 14 天。

- 默认值:14 天。
LockDuration XML Datetime 此设置确定应锁定消息以供接收方处理的时间(以秒为单位)。 此锁定期限过后,消息将解锁并可供下一个接收者使用。 只能在创建主题时设置:

- 范围:0-5 分钟 0 表示消息未锁定。

- 默认值:30s。
RequiresSession 布尔 只可以在创建主题时设置。 如果设置为 true,则主题是会话感知主题,并且仅 SessionReceiver 受支持。 REST 不支持会话感知主题。

- 默认值:False。
EnableDeadLetteringOnMessageExpiration 布尔 只可以在创建订阅时设置。

- 默认值:False。

此字段确定服务总线如何处理 TTL 已过期的消息。 如果 true 和 消息过期,服务总线会将消息从主题移到该主题的死信子队列中。 如果 false为 ,则会从主题中永久删除该消息。
DeadLetteringOnFilterEvaluationExceptions 确定服务总线如何处理在订阅筛选器评估期间导致异常的消息。 如果 true为 ,则导致异常的消息将移动到订阅的死信队列中。 否则,会丢弃它。 默认情况下,此参数设置为 true,允许你调查引发异常的原因。 它可能来自格式不正确的消息,或者在筛选器中对消息形式的错误假设。 只可以在创建主题时设置。

- 默认值:true
EnableBatchedOperations 对特定队列执行操作时,启用或禁用服务端批处理行为。 启用后,服务总线会将多个操作收集/批处理到后端,以便提高连接效率。 如果需要较低的操作延迟,可以禁用此功能。

默认值: false
MaxDeliveryCount 无符号整数 在消息死信或丢弃之前,服务总线尝试传递消息的最大次数。

- 默认值: 10
MessageCount 无符号整数 报告订阅中尚未取消排队的消息数,如监视系统报告的那样。

响应

响应包括 HTTP 状态代码和一组响应标头。

响应代码

注意

如果创建名称中包含特殊或编码字符的命名空间,例如 test?Name=value&, (编码为 test%3FName%3Dvalue%26) ,则会生成 (401) “未授权”异常。

代码 说明
201 已成功创建订阅。
400 请求正文无效。
401 授权失败。
403 已超出配额;未创建订阅。
409 指定的订阅已存在(或指定的路径已被占用)。
500 内部错误。

有关状态代码的信息,请参阅 状态和错误代码

响应标头

无。

响应正文

返回订阅说明,因为当 PUT 请求未指定订阅的所有属性的值时,某些说明属性可以包含默认值。