云服务器内容精选
-
查看访问日志 当您配置了消息传输日志,可以查看消息传输日志的详细信息。 日志显示格式如下: {"message_id":"$message_id","project_id":"$project_id","topic_urn":"$topic_urn","subscriber_urn":"$subscriber_urn","protocol_name":"$protocol_name","endpoint":"$endpoint","status":"$status","http_code":$http_code,"create_time":"$create_time","send_time":"$send_time"} 不支持修改日志格式。日志字段说明如表1所示。 表1 字段说明 参数 参数类型 描述 message_id String 消息ID。 project_id String 项目ID。 topic_urn String Topic的唯一的资源标识 subscriber_urn String 订阅者的唯一资源标识。 protocol_name String 不同协议对应不同的endpoint(接受消息的接入点)。目前支持的协议包括: “email”:邮件传输协议,endpoint为邮箱地址。 “sms”:短信传输协议,endpoint为手机号码。 “functiongraph” FunctionGraph(函数)传输协议,endpoint为一个函数 “functionstage”:。FunctionStage(工作流)传输协议,endpoint为一个 函数工作流 “http”、“https”:HTTP/HTTPS传输协议,endpoint为URL。 endpoint String 接受消息的接入点。 status String 消息状态。目前包括以下状态: “DELIVERED”:已送达。 “FAIL_DELIVERED”:发送失败。 “REJE CTS ”:已拒绝。触发流控机制。 http_code Integer HTTP返回码,仅支持HTTP/HTTPS协议消息。 create_time String 消息创建时间。时间格式为UTC时间,YYYY-MM-DDTHH:MM:SSZ。 send_time String 消息发送时间。时间格式为UTC时间,YYYY-MM-DDTHH:MM:SSZ。
-
日志示例 {"message_id":"1ae49922602a42fc83acb9689a2eb5f4","project_id":"5a9f32e4f1ec4bbe9695ff9da51c2925","topic_urn":"urn:smn:regionid:5a9f32e4f1ec4bbe9695ff9da51c2925:demo","subscriber_urn":"urn:smn:regionid:5a9f32e4f1ec4bbe9695ff9da51c2925:demo:b55c3c6fa7cd471b9f24818d530a8740","protocol_name":"https","endpoint":"https://127.0.0.1:443/https","status":"DELIVERED","http_code":200,"create_time":"2022-11-01T00:00:00Z","send_time":"2022-11-01T00:00:10Z"} 以上日志示例对应的字段如下: 表2 日志示例对应的字段 参数 示例 message_id 1ae49922602a42fc83acb9689a2eb5f4 project_id 5a9f32e4f1ec4bbe9695ff9da51c2925 topic_urn urn:smn:regionid:5a9f32e4f1ec4bbe9695ff9da51c2925:demo subscriber_urn urn:smn:regionid:5a9f32e4f1ec4bbe9695ff9da51c2925:demo:b55c3c6fa7cd471b9f24818d530a8740 protocol_name https endpoint https://127.0.0.1:443/https status DELIVERED http_code 200 create_time 2022-11-01T00:00:00Z send_time 2022-11-01T00:00:10Z
-
取消订阅 不同的订阅协议对应不同的取消订阅方式: 短信取消订阅:因为短信长度有限,无法每次推送消息时候附带取消订阅的链接,用户需通过请求确认的链接进入WEB页面进行取消订阅。 具体流程如下: 添加订阅后, 消息通知 服务会向订阅终端发送订阅确认短信,如图1所示,短信中包含订阅确认的链接。 图1 订阅确认短信 单击短信中的确认链接 ,进入WEB页面提示“订阅成功”。 该页面下方有提示信息:如果您不希望订阅这个主题,点击“这里”取消订阅。 图2 订阅成功 单击“这里”,进入取消订阅页面,确认待取消订阅的相关信息,包含主题名称、主题URN、订阅URN。 图3 确认取消订阅 确认无误后,单击“确定”,取消订阅成功。 图4 取消订阅成功 邮件取消订阅:消息通知服务向指定邮箱地址发送电子邮件消息,其中包含取消订阅的链接,订阅者单击进入取消订阅的页面。如果取消成功,页面会显示取消订阅成功,稍后消息通知服务会向这个订阅者发送一封确认取消订阅的邮件(48小时内有效)。如果误操作了取消订阅,可以通过该消息重新订阅。 具体流程如下: 添加订阅后,消息通知服务会向指定邮箱地址发送电子邮件消息,如图5所示,邮件中包含订阅确认的链接。 图5 订阅确认邮件 单击邮件中的“订阅确认”链接 ,进入WEB页面提示“订阅成功”。 该页面下方有提示信息:如果您不希望订阅这个主题,点击“这里”取消订阅。 图6 订阅成功 单击“这里”,进入取消订阅页面,确认待取消订阅的相关信息,包含主题名称、主题URN、订阅URN。 图7 确认取消订阅 确认无误后,单击“确定”,取消订阅成功。 图8 取消订阅成功 HTTP(S)取消订阅,消息通知服务向指定的URL发送消息。消息体中包含取消订阅的链接,订阅者需要访问该链接,如果取消订阅成功,将获取HTTPS协议的200返回码,稍后消息通知服务会向这个订阅者发送一次取消订阅的消息(48小时内有效)。如果误操作了取消订阅,可以通过访问重新订阅的链接重新订阅。HTTP(S)消息头和消息体参数含义请参见HTTP(S)终端节点使用样例简介。
-
支持审计的关键操作列表 在您的账户中启用 云审计 服务后, SMN 服务的API被调用时,日志文件可能会跟踪记录该操作,并依据时间和数据的变化将日志文件转储到对象存储桶。 如果您在没有登录的情况下调用SMN的取消订阅(Unsubscribe)操作,云审计则不会记录这些操作。例如,当您需要取消订阅时,在电子邮件通知中单击取消订阅的链接,此时会在未登录的情况下调用Unsubscribe,这种情况下您的取消订阅操作则不会被云审计记录。 云审计支持的消息通知服务操作列表如表1所示。 表1 云审计支持的SMN操作列表 操作名称 资源类型 事件名称 创建主题 topic createTopic 删除主题 topic deleteTopic 更新主题 topic updateTopic 更新主题策略 topic updateTopicAttribute 删除所有主题策略 topic deleteTopicAttributes 删除指定名称的主题策略 topic deleteTopicAttributeByName 添加订阅 subscription subscribe 删除订阅 subscription delsubscribe 更新订阅备注 subscription updateSubscriberRemark 添加订阅用户 subscription addSubscriptionFromSubscriptionUser 创建消息模板 message_template createMessageTemplate 批量创建消息模板 message_template batchCreateMessageTemplate 更新消息模板 message_template updateMessageTemplate 删除消息模板 message_template deleteMessageTemplate 批量添加标签 tag batchCreateTag 添加标签 tag createTag 批量删除标签 tag batchDeleteTag 删除标签 tag deleteTag 绑定 云日志 logtank createLogtank 解绑云日志 logtank deleteLogtank 更新云日志 logtank updateLogtank 批量创建订阅过滤策略 filter_polices batchCreateFilterPolices 批量删除订阅过滤策略 filter_polices batchDeleteFilterPolices 批量更新订阅过滤策略 filter_polices batchUpdateFilterPolices 创建通知策略 notify_policy createNotifyPolicy 删除通知策略 notify_policy deleteNotifyPolicy 修改通知策略 notify_policy updateNotifyPolicy 父主题: 记录消息通知服务
-
使用限制 单账号跟踪的事件可以通过云审计控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的CTS/system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到 对象存储服务 (OBS)或云日志服务(LTS),才可在OBS桶或LTS日志组里面查看历史事件信息。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。 CTS新版事件列表不显示数据类审计事件,您需要在旧版事件列表查看数据类审计事件。
-
JSON格式体说明 JSON格式主要用来处理用户想对不同的订阅者类型发送不同的消息,目前支持的协议Default、HTTP、HTTPS、email、FunctionGraph(函数)、FunctionGraph(工作流),其中Default是必须的,Email的内容将发给邮件类型的订阅者,其它协议依次如下所示: { "default": "Dear Sir or Madam, this is a default message.", "email": "Dear Sir or Madam, this is an email message.", "http": "{'message':'Dear Sir or Madam, this is an HTTP message.'}", "https": "{'message':'Dear Sir or Madam, this is an HTTPS message.'}", "sms": "This is an SMS message.", "functionstage": "Dear Sir or Madam, this is a functiongraph(function) message.", "functiongraph": "Dear Sir or Madam, this is a functiongraph(workflow) message." } 推荐将Default设置为通用的消息内容,对于特殊的订阅者类型再设置相应消息内容。 以下示例展现由于短信内容长度有限制,将短信设置为特殊的消息,其中HTTP、HTTPS、Email、FunctionGraph(函数)、FunctionGraph(工作流)类型的订阅收到"Dear Sir or Madam, this is a default message."的内容,而SMS类型的订阅者收到“This is an SMS message”。 { "sms": "This is an SMS message.", "default": "Dear Sir or Madam, this is a default message." }
-
添加订阅 在已创建的主题下添加以下两种订阅。添加订阅详细操作步骤请参见订阅主题。 用户在主题下添加订阅终端A,并且希望在每周周日和周三的早上或下午将消息通知给A。则用户可以在创建订阅A时配置如下订阅筛选策略: { "filter_polices": [ { "name": "week", "string_equals": [ "sunday", "wednesday" ] }, { "name": "time", "string_equals": [ "morning", "afternoon" ] } ]} 用户在主题下添加订阅终端B,并且希望在每周周一、周二和周三的晚上或深夜将消息通知给B。则用户在创建订阅B时配置如下订阅筛选策略: { "filter_polices": [ { "name": "week", "string_equals": [ "monday", "tuesday", "wednesday" ] }, { "name": "time", "string_equals": [ "night", "midnight" ] } ]}
-
发布消息 向已创建的主题发布消息,根据添加的不同订阅,会出现以下场景。 发布消息详细操作步骤请参见发布主题消息简介。 场景一: 消息属性字段为: { "name": "week", "type": "STRING", "value": [ "sunday" ]} 发送结果:在消息中只规定了消息属性字段中的week字段,而没有规定time字段,因此本条消息只会发送给订阅A。 场景二: 消息属性字段为: [ { "name": "week", "type": "STRING", "value": [ "sunday" ] }, { "name": "time", "type": "STRING", "value": [ "night" ] }] 发送结果:此条消息含义为发送给周日晚上接收消息的订阅者,订阅A和订阅B均不符合条件。因此本条消息不会发送给订阅A和订阅B。 场景三: 消息属性字段为: [ { "name": "week", "type": "STRING", "value": [ "monday" ] }, { "name": "time", "type": "STRING", "value": [ "night" ] }] 发送结果:此条消息含义为发送给周一晚上接收消息的订阅者,订阅A不符合条件。因此本条消息只发送给订阅B。 场景四: 消息属性字段为: [ { "name": "week", "type": "STRING", "value": [ "sunday" ] }, { "name": "time", "type": "STRING", "value": [ "morning" ] }] 发送结果:此条消息含义为发送给周日早上接收消息的订阅者,订阅A符合条件,订阅B不符合条件。因此本条消息不会发送给订阅B。 场景五: 消息属性字段为: [ { "name": "week", "type": "STRING_ARRAY", "value": [ "sunday", "monday" ] }, { "name": "time", "type": "STRING_ARRAY", "value": [ "morning", "night" ] }] 发送结果:此条消息含义为发送给周日或周一的早上或晚上接收消息的订阅者,订阅A和订阅B均符合条件。因此本条消息会发送给订阅A和订阅B。 场景六: 订阅筛选策略字段没有配置。 发送结果:带有任何消息属性的消息不会发送给未配置订阅筛选策略的订阅。
-
JSON消息计算 选择不同的协议,生成的JSON格式消息的大小不同。JSON格式消息的字节数包含消息框中显示的花括号、双引号、空格、回车、协议名称和消息内容累计字节数。具体字节计算方式以输入消息“This is a default message.”为例。 消息:“This is a default message.”,消息本身包含26个字节。 输入消息,选择协议,生成JSON消息时,系统默认生成Default协议的消息。 { "default": "This is a default message.", "protocol1": "This is a default message.", "protocol2": "This is a default message.", ……} 1个Default协议加上用户选择的协议个数,记为N。 消息体包含的固定字节数: 每种协议的消息包含3个空格,共N个协议:3× N = 3N 每种协议的消息包含4个双引号,共N个协议: 4 × N = 4N 每种协议的消息包含1个冒号,共N个协议:1 × N = N 每种协议的消息包含1条消息内容This is a default message.,共N个协议:26 × N = 26N 逗号(N - 1)个:1 × (N - 1) = (N - 1) 回车(N + 1)个:1 ×(N + 1) = (N + 1) 花括号2个:1 × 2 = 2 协议名称 default 1个:7 × 1 = 7 选择的协议字节数: 协议名称 HTTP 1个:4 × 1 = 4 协议名称 HTTPS1个:5 × 1 = 5 协议名称 email 1个:5 × 1 = 5 协议名称 sms 1个:3 × 1 = 3 协议名称 functionstage 1个:13 × 1 = 13 协议名称 functiongraph 1个:13 × 1 = 13 合计:36N + 9 + 选择的协议字节数 例如,您选择了“HTTP”、“HTTPS”和“email”3个协议,生成的消息如下: { "default": "This is a default message.", "email": "This is a default message.", "http": "This is a default message.", "https": "This is a default message."} 加上Default,则N的值为4,生成的JSON消息字节数计算如下: 固定字节数:36 × 4 + 9 = 153 协议名称 HTTP 1个:4 × 1 = 4 协议名称 HTTPS 1个:5 × 1 = 5 协议名称 email 1个:5 × 1 = 5 合计:153 + 4 + 5 + 5 = 167
-
不同协议消息说明 不同的订阅协议接收到的消息包含的内容可能有所不同。 邮件和HTTP(S)终端收到的消息包含:消息主题、消息内容和取消订阅的链接。 短信终端接收到的消息只包含消息内容。 FunctionGraph(函数)终端收到的消息包含消息属性、消息标题、消息内容、主题URN等信息。消息样例类似如下。字段说明如表1所示。 { "record": [{ "event_version": "1.0", "smn": { "message_attributes": "", "subject": "Welcome", "message_id": "e6fa59c6b3e0424c9c02cbed35b680e7", "topic_urn": "urn:smn:regionId:66e0f4622d6f4e3fb2db2e495298a61a:smn_123", "type": "notification", "message": "Hello", "timestamp": "2017-08-17T10:07:14Z" }, "event_source": "smn", "event_subscription_urn": "urn:cff:regionId:66e0f4622d6f4e3fb2db2e495298a61a:function:DEFAULT:mytest:latest" }]} 表1 字段说明 字段配置项 类型 说明 record JSON对象 消息列表 event_version String 版本 message_attributes String 消息属性 subject String 消息标题 message_id String 消息ID topic_urn String 主题URN type String 消息类型 message String 消息内容 timestamp String 时间戳 event_source String 消息来源 event_subscription_urn String 订阅URN FunctionGraph(工作流)终端收到的消息包含消息标题、消息内容、主题URN等信息。消息样例类似如下。字段说明如表2所示。 { "records":[{ "event_version":"1.0", "smn":{ "topic_urn":"urn:smn:regionId:995960e6a6094fdeb00b7c9991d35791:11-16", "type":"notification", "message":"Hello", "timestamp":"2017-11-27T09:53:41Z", "subject":"test_1127", "message_id":"27d6e9e1249240288b47817bf637192b" }, "event_source":"SMN", "event_subscription_urn":"urn:smn:regionId:995960e6a6094fdeb00b7c9991d35791:11-16:dcd78adcb194431587d4992c374f8465"}]} 表2 字段说明 字段配置项 类型 说明 records JSON对象 消息列表 event_version String 版本 topic_urn String 主题URN type String 消息类型 message String 消息内容 timestamp String 时间戳 subject String 消息标题 message_id String 消息ID event_source String 消息来源 event_subscription_urn String 订阅URN 父主题: 附录
-
订阅确认流控说明 为了控制用户对订阅者进行恶意的攻击,云平台对添加订阅时发送订阅确认消息进行了流控。流控策略既适用于从控制台发送订阅确认消息也适用于通过调用API发送订阅确认消息。 根据不同的协议有不同的流控策略: 对于一个邮件订阅者,1个小时最多允许发送20次订阅确认消息,2天最多允许发送40次订阅确认消息。如果超过1小时的流控阈值,则SMN会在接下来的1小时内不对该终端发送订阅确认邮件。如果超过2天的流控阈值,将7天之内不对这个邮件订阅者发送订阅确认邮件。如果这个邮件订阅者对这个用户的确认信息进行了确认,之前的流控状态将清空置零。 对于一个短信订阅者,1个小时最多允许发送10次订阅确认消息,2天最多允许发送20次订阅确认,如果超过1小时的流控阈值,则SMN会在接下来的1小时内不对该终端发送订阅确认短信。如果超过2天的流控阈值,将7天之内不对这个手机订阅者发送订阅确认短信。如果这个手机订阅者对这个用户的确认信息进行了确认,之前的流控状态将清空置零。 对于一个HTTP(S)订阅者,10分钟最多允许发送200次订阅确认消息。 以上参数仅供参考,SMN服务会根据实际业务情况进行调整。 父主题: 附录
-
监控指标 消息通知服务支持的监控指标如表1所示。 表1 消息通知服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) email_total_count 邮件订阅推送量 该指标为主题维度上针对邮件类型的订阅推送的消息总量 单位:条 ≥0 单个主题 5分钟 email_success_rate 邮件订阅推送成功率 该指标为主题维度上针对邮件类型的订阅推送成功的消息比率 单位:百分比 0-100% 单个主题 5分钟 sms_total_count 短信订阅推送量 该指标为主题维度上针对短信类型的订阅尝试推送的消息总量 单位:条 ≥0 单个主题 5分钟 sms_success_rate 短信订阅推送成功率 该指标为主题维度上针对短信类型的订阅推送成功的消息比率 单位:百分比 0-100% 单个主题 5分钟 http_total_count http(s)订阅推送量 该指标为主题维度上针对http和https类型的订阅推送的消息总量 单位:条 ≥0 单个主题 5分钟 http_2xx_count http(s)订阅 推送成功数量 该指标为主题维度上针对http和https类型的订阅推送的消息返回码为2xx的数量 单位:条 ≥0 单个主题 5分钟 http_4xx_count http(s)订阅推送 4xx异常数量 该指标为主题维度上针对http和https类型的订阅推送的消息返回码为4xx的数量 单位:条 ≥0 单个主题 5分钟 http_5xx_count http(s)订阅推送 5xx异常数量 该指标为主题维度上针对http和https类型的订阅推送的消息返回码为5xx的数量 单位:条 ≥0 单个主题 5分钟 http_success_rate http(s)订阅 推送成功率 该指标为主题维度上针对http和https类型的订阅推送成功的消息比率 单位:百分比 0-100% 单个主题 5分钟 message_published_count 发布到主题的消息数量 该指标为主题角度上发布到具体主题的消息数量 单位:条 ≥0 单个主题 5分钟 message_filtered_count 发布消息时因消息属性被拒绝的消息数 该指标为主题角度上发布消息时因为配置了消息属性而被订阅配置的筛选策略所拒绝的消息数量 单位:条 ≥0 单个主题 5分钟 message_publish_size 发布到主题的消息大小 该指标为主题角度上发布到具体主题的消息大小 单位:Byte ≥0 单个主题 5分钟
-
模板格式消息说明 模板格式消息指固定格式的消息,可以通过tag的方式来处理变量的部分。 通过模板发送消息,建议消息大小不超过256KB,模板格式消息如下所示: { "message_template_name":"confirm_message", "tags":{ "topic_urn":"urn:smn:regionId:xxxx:SMN_01" }} 表1 模板格式消息参数说明 参数 说明 message_template_name 模板名称,不能为空。模板名称可以在消息模板列表中获取,模板名称下面必须有一个Default协议的模板,没有匹配上的模板采用Default模板。 tags 模板中出的占位符标签,模板名称下面有不同的模板,不同的模板可能tags不一样,用户在此处需要把所有的tag标签都填在tags内,他是一个jsonmap对象 父主题: 附录
-
Go语言 package demoimport ("bytes""crypto""crypto/rsa""crypto/x509""encoding/base64""encoding/json""encoding/pem""fmt""io/ioutil")type Message struct {Signature string `json:"signature"`Subject *string `json:"subject"`TopicUrn string `json:"topic_urn"`MessageId string `json:"message_id"`SignatureVersion string `json:"signature_version"`Type string `json:"type"`Message string `json:"message"`SubscribeUrl string `json:"subscribe_url"`UnsubscribeUrl string `json:"unsubscribe_url"`SigningCertUrl string `json:"signing_cert_url"`Timestamp string `json:"timestamp"`}func VerifyMessage(pemFile string, message string) bool {msg := Message{}err := json.Unmarshal([]byte(message), &msg)if err != nil {fmt.Println("Convert json to struct failed")return false}pemContent, err := ioutil.ReadFile(pemFile)if err != nil {fmt.Println("Read pem file failed")return false}certDerblock, _ := pem.Decode(pemContent)if certDerblock == nil {fmt.Println("Decode pem file failed")return false}cert, err := x509.ParseCertificate(certDerblock.Bytes)if err != nil {fmt.Println("Parse cert failed")return false}msgString := buildMessage(&msg)msgHash := crypto.SHA256.New()msgHash.Write([]byte(msgString))msgHashSum := msgHash.Sum(nil)decodeSign, _ := base64.StdEncoding.DecodeString(msg.Signature)publicKey := cert.PublicKey.(*rsa.PublicKey)err = rsa.VerifyPK CS 1v15(publicKey, crypto.SHA256, msgHashSum, decodeSign)if err != nil {fmt.Println("Verify failed")return false} else {fmt.Println("Verify success")return true}}func buildMessage(msg *Message) string {if msg.Type == "Notification" {return buildNotificationMessage(msg)} else if msg.Type == "SubscriptionConfirmation" || msg.Type == "UnsubscribeConfirmation" {return buildSubscriptionMessage(msg)}return ""}func buildNotificationMessage(msg *Message) string {buf := bytes.Buffer{}buf.WriteString("message\n" + msg.Message + "\n")buf.WriteString("message_id\n" + msg.MessageId + "\n")// msg中存在Subject字段不存在的场景,需要特殊处理if msg.Subject != nil {buf.WriteString("subject\n" + *msg.Subject + "\n")}buf.WriteString("timestamp\n" + msg.Timestamp + "\n")buf.WriteString("topic_urn\n" + msg.TopicUrn + "\n")buf.WriteString("type\n" + msg.Type + "\n")return buf.String()}func buildSubscriptionMessage(msg *Message) string {buf := bytes.Buffer{}buf.WriteString("message\n" + msg.Message + "\n")buf.WriteString("message_id\n" + msg.MessageId + "\n")buf.WriteString("subscribe_url\n" + msg.SubscribeUrl + "\n")buf.WriteString("timestamp\n" + msg.Timestamp + "\n")buf.WriteString("topic_urn\n" + msg.TopicUrn + "\n")buf.WriteString("type\n" + msg.Type + "\n")return buf.String()} 该示例代码已在go 1.15版本上测试通过。
-
授权操作与SMN接口的映射关系 表1 授权操作与SMN接口的映射关系 授权操作 接口名称 接口功能 SMN:UpdateTopic UpdateTopic 修改主题的属性,目前仅支持修改topic的display_name字段。 SMN:DeleteTopic DeleteTopic 删除一个主题以及它的所有订阅者。删除Topic操作可能会导致未推送的消息无法再推送给该Topic的订阅者。 SMN:QueryTopicDetail QueryTopicDetail 查询Topic的详细信息。 SMN:ListTopicAttributes ListTopicAttributes 查询Topic的属性信息。 SMN:UpdateTopicAttribute UpdateTopicAttribute 更新Topic的属性。 SMN:DeleteTopicAttributes DeleteTopicAttributes 删除所有Topic属性。 SMN:DeleteTopicAttributeByName DeleteTopicAttributeByName 删除指定名称的Topic属性。 SMN:ListSubscriptionsByTopic ListSubscriptionsByTopic 分页获取特定主题的订阅列表,订阅列表按照订阅创建时间进行升序排列。分页查询可以指定offset以及limit。如果指定主题不存在订阅者,返回空列表。 SMN:Subscribe Subscribe 为指定Topic添加一个订阅者,并向订阅者发送一个确认的消息。待订阅者进行ConfirmSubscription确认后,该订阅者才能收到Topic发布的消息。 SMN:Unsubscribe Unsubscribe 删除一个订阅,订阅需要鉴权才能删除,仅订阅者或者这个主题的拥有者可以删除,删除时会对身份进行确认。 SMN:Publish Publish 将消息发送给Topic的所有订阅端点。当返回消息ID时,该消息已被保存并开始尝试将其推送给主题的订阅者。消息格式,取决于该主题每一个订阅者的通知协议。 父主题: 附录
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格