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

语法

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

属性

属性名称类型必须允许更新描述约束
TopicNameString主题名称。

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

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

SubscriptionNameString订阅名称。长度不超过256个字符。必须以英文字母开头,可包含英文字母、数字和短划线(-)。
EndpointString此次订阅中接收消息的终端地址。取值:
  • HttpEndpoint:必须以http://作为前缀。
  • QueueEndpoint:格式为acs:mns:{REGION}:{AccountID}:queues/{QueueName}
  • MailEndpoint:格式为mail:directmail:{MailAddress}
  • SmsEndpoint:格式为sms:directsms:anonymoussms:directsms:{Phone}
FilterTagString此次订阅中消息过滤的标签。不超过16个字符,默认不进行消息过滤。
说明 标签一致的消息才会被推送。
NotifyStrategyString向Endpoint推送消息出现错误时的重试策略。取值:
  • BACKOFF_RETRY(默认值)
  • EXPONENTIAL_DECAY_RETRY
重试策略详情,请参见NotifyStrategy
NotifyContentFormatString向Endpoint推送的消息格式。取值:
  • XML(默认值)
  • JSON
  • SIMPLIFIED

消息格式详情,请参见NotifyContentFormat

返回值

Fn::GetAtt

  • SubscriptionUrl:创建的订阅URL。
  • SubscriptionName:订阅名称。
  • TopicName:主题名称。

示例

  • YAML格式

    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
  • JSON格式

    {
      "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"
            ]
          }
        }
      }
    }

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