ALIYUN::MNS::Subscription

ALIYUN::MNS::Subscription类型用于描述一个订阅关系,包括被订阅的主题和接收消息的终端地址(Endpoint)。

语法

{
  "Type": "ALIYUN::MNS::Subscription",
  "Properties": {
    "Endpoint": String,
    "NotifyStrategy": String,
    "FilterTag": String,
    "NotifyContentFormat": String,
    "SubscriptionName": String,
    "TopicName": String,
    "DlqPolicy": Map,
    "PushType": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

TopicName

String

主题名称。

同一账号同一地域下,主题名称不能重复。

长度不超过256个字符。必须以英文字母开头,可包含英文字母、数字和短划线(-)。

SubscriptionName

String

订阅名称。

长度不超过256个字符。必须以英文字母开头,可包含英文字母、数字和短划线(-)。

Endpoint

String

此次订阅中接收消息的终端地址。

取值:

  • HttpEndpoint:必须以http://作为前缀。

  • QueueEndpoint:格式为acs:mns:{REGION}:{AccountID}:queues/{QueueName}

  • MailEndpoint:格式为mail:directmail:{MailAddress}

  • SmsEndpoint:格式为sms:directsms:anonymoussms:directsms:{Phone}

FilterTag

String

此次订阅中消息过滤的标签。

不超过16个字符,默认不进行消息过滤。

说明

标签一致的消息才会被推送。

NotifyStrategy

String

Endpoint推送消息出现错误时的重试策略。

取值:

  • BACKOFF_RETRY(默认值)

  • EXPONENTIAL_DECAY_RETRY

重试策略详情,请参见NotifyStrategy

NotifyContentFormat

String

Endpoint推送的消息格式。

取值:

  • XML(默认值)

  • JSON

  • SIMPLIFIED

消息格式详情,请参见NotifyContentFormat

DlqPolicy

Map

死信策略。

更多信息,请参考DlqPolicy属性。

PushType

String

终端类型。

取值:

  • http:HTTP 推送类型。

  • queue:队列推送类型。

  • mpush:移动推送类型。

  • alisms:阿里短信推送类型。

  • email:邮箱推送类型。

DlqPolicy语法

"DlqPolicy": {
  "DeadLetterTargetQueue": String,
  "Enabled": Boolean
}

DlqPolicy属性

属性名称

类型

必须

允许更新

描述

约束

DeadLetterTargetQueue

String

死信消息投递目标队列。

Enabled

Boolean

是否开启死信消息投递。

返回值

Fn::GetAtt

  • SubscriptionUrl:创建的订阅URL。

  • SubscriptionName:订阅名称。

  • TopicName:主题名称。

示例

ROSTemplateFormatVersion: '2015-09-01'
Parameters: {}
Resources:
  Subscription:
    Type: ALIYUN::MNS::Subscription
    Properties:
      TopicName: TestTopic
      SubscriptionName: TestSubscription
      Endpoint: http://endpoint.com
Outputs:
  SubscriptionUrl:
    Description: URL of created subscription
    Value:
      Fn::GetAtt:
        - Subscription
        - SubscriptionUrl
  SubscriptionName:
    Description: Subscription name
    Value:
      Fn::GetAtt:
        - Subscription
        - SubscriptionName
  TopicName:
    Description: Topic name
    Value:
      Fn::GetAtt:
        - Subscription
        - TopicName
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
  },
  "Resources": {
    "Subscription": {
      "Type": "ALIYUN::MNS::Subscription",
      "Properties": {
        "TopicName": "TestTopic",
        "SubscriptionName": "TestSubscription",
        "Endpoint": "http://endpoint.com"
      }
    }
  },
  "Outputs": {
    "SubscriptionUrl": {
      "Description": "URL of created subscription",
      "Value": {
        "Fn::GetAtt": [
          "Subscription",
          "SubscriptionUrl"
        ]
      }
    },
    "SubscriptionName": {
      "Description": "Subscription name",
      "Value": {
        "Fn::GetAtt": [
          "Subscription",
          "SubscriptionName"
        ]
      }
    },
    "TopicName": {
      "Description": "Topic name",
      "Value": {
        "Fn::GetAtt": [
          "Subscription",
          "TopicName"
        ]
      }
    }
  }
}

更多示例,请参见创建主题、创建消息队列和描述订阅关系的组合YAML示例