A.8 HTTP(S)终端节点使用样例
A.8.2 HTTP(S)消息格式
操作场景
描述SMN服务向HTTP(S)终端发送消息的格式,您可以通过消息头部信息中的消息类 型来区分消息格式。消息格式包括:HTTP(S)订阅确认消息的格式、HTTP(S)推送消息 的格式和HTTP(S)取消订阅消息的格式三种消息格式,HTTP/HTTPS协议均为POST方 式。
当SMN服务向HTTP(S)终端发送消息时,头部包括请求X-SMN-TOPIC-URN,X-SMN-MESSAGE-ID,X-SMN-MESSAGE-TYPE,X-SMN-SUBSCRIPTION-URN,如表A-4所 示。
表A-4 消息 HTTP 头部参数说明
参数 说明
X-SMN-MESSAGE-TYPE 消息类型,消息类型分别有:
● SubscriptionConfirmation
● Notification
● UnsubscribeConfirmation X-SMN-MESSAGE-ID 消息唯一标识。
X-SMN-TOPIC-URN 主题的唯一标识,表示消息归属的主题。
X-SMN-SUBSCRIPTION-URN 订阅终端的唯一标识。
HTTP(S)订阅确认消息的格式
添加HTTP(S)订阅终端以后,SMN会向订阅终端推送一条订阅确认的消息,下面将描 述消息的HTTP Content,它是JSON格式的字符串,其中包括subscribe_url值,订阅确 认需要GET请求subscribe_url地址进行确认,具体JSON字段说明如表A-5所示。
表A-5 HTTP(S)订阅确认消息的格式参数说明
参数 说明
type 消息类型,SubscriptionConfirmation。
signature 签名信息。
签名字段包括message,message_id,subscribe_url,
timestamp,topic_urn和type,具体签名信息校验,请参 见校验消息签名。
topic_urn 主题的唯一标识,表示消息归属的主题。
message_id 消息唯一标识。
signature_version 签名的版本信息,目前是V1。
message 订阅确认消息的描述。
subscribe_url 订阅确认需要访问的URL。
signing_cert_url 用于消息签名的证书URL。
timestamp 消息第一次发送的时间戳。
HTTP(S)订阅确认消息样例如下:
{ "signature": "ViE96uGbBkl
+S8eWqgebi5KdmRht2U8+Rs88yuyMHq1k4h3jUkcDZ6HCqTqdpJ8nrLcdqETyyEiOQyTszJdU05z +LhfE8jerCCdSbL4zeInVkydHh0kcCRWmORye0/EuQ/gLC1UIXwvUsqbUCPnBRhNFXOeXMOPPCzK +d04xjy4QHd1H/bHxgsY3AlTe0gCFT068Zru7OK6w9aQaY44mXnN3OWGmBmoHyFab5TRXLSQNz/9u/
Vj646cQMMaI0PPQ30QzGYD0MtzgDZi12m8jMTHAnMkTEcbLaEgaqmaoEnATSpEcspFKNXv2skwk7rsVakMOI SpMH3+qC6RzhETA2A==",
"topic_urn": "urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic", "message_id": "d86c201092574e71a3ca85826652c58b",
"signature_version": "v1",
"type": "SubscriptionConfirmation",
"message": "{\"enterpriseProjectId\": \"0\", \"eventTime\": \"2019-08-12 22:40:55.040632\",
\"chargingMode\": \"postPaid\", \"cloudserviceType\": \"hws.service.type.bandwidth\", \"eventType\": 1,
\"regionId\": \"region01\", \"tenantId\": \"057eefe55400d2742f8cc0017870ceef\", \"resourceType\":
\"hws.resource.type.bandwidth\", \"resourceSpecCode\": \"19_bgp\", \"resourceSize\": 10, \"resourceId\":
\"e091f1b1-08ef-4e2b-a27e-f85e4c19026a\", \"resouceSizeMeasureId\": 15, \"resourceName\":
\"elbauto_2019_08_13_06_40_46\"}",
"subscribe_url": "https://console.xxx.com/smn/subscription/unsubscribe?
subscription_urn=urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic:
653e212a43884f7188ca656c537e31ce",
"signing_cert_url": "https://smn.cn-north-9.myhuaweicloud.com/smn/SMN_cn-north-9_94f60ccdfbee4588aa4d555935a56ba3.pem",
"timestamp": "2019-08-12T22:40:56Z"
}
HTTP(S)推送消息的格式
HTTP(S)订阅终端订阅确认后,终端将收到SMN推送的消息,下面将描述HTTP Content信息,它是JSON串,具体字段说明如表A-6所示。
用户指南 A 附录
表A-6 HTTP(S)推送消息的格式参数说明
参数 说明
type 消息类型,Notification。
signature 签名信息。
签名字段包括message,message_id,subject,
timestamp,topic_urn和type,具体签名信息校验,如果 subject不存在,则不参与校验,请参见校验消息签名。
subject 消息标题。
topic_urn 主题的唯一标识,表示消息归属的主题。
message_id 消息唯一标识。
signature_version 签名的版本信息,目前是V1。
message 订阅推送消息的描述。
unsubscribe_url 通过访问该链接可以取消终端订阅。
signing_cert_url 用于消息签名的证书URL。
timestamp 消息第一次发送的时间戳。
HTTP(S)推送消息样例如下:
{ "signature": "ViE96uGbBkl
+S8eWqgebi5KdmRht2U8+Rs88yuyMHq1k4h3jUkcDZ6HCqTqdpJ8nrLcdqETyyEiOQyTszJdU05z +LhfE8jerCCdSbL4zeInVkydHh0kcCRWmORye0/EuQ/gLC1UIXwvUsqbUCPnBRhNFXOeXMOPPCzK +d04xjy4QHd1H/bHxgsY3AlTe0gCFT068Zru7OK6w9aQaY44mXnN3OWGmBmoHyFab5TRXLSQNz/9u/
Vj646cQMMaI0PPQ30QzGYD0MtzgDZi12m8jMTHAnMkTEcbLaEgaqmaoEnATSpEcspFKNXv2skwk7rsVakMOI SpMH3+qC6RzhETA2A==",
"topic_urn": "urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic", "message_id": "d86c201092574e71a3ca85826652c58b",
"signature_version": "v1", "type": "Notification",
"message": "{\"enterpriseProjectId\": \"0\", \"eventTime\": \"2019-08-12 22:40:55.040632\",
\"chargingMode\": \"postPaid\", \"cloudserviceType\": \"hws.service.type.bandwidth\", \"eventType\": 1,
\"regionId\": \"region01\", \"tenantId\": \"057eefe55400d2742f8cc0017870ceef\", \"resourceType\":
\"hws.resource.type.bandwidth\", \"resourceSpecCode\": \"19_bgp\", \"resourceSize\": 10, \"resourceId\":
\"e091f1b1-08ef-4e2b-a27e-f85e4c19026a\", \"resouceSizeMeasureId\": 15, \"resourceName\":
\"elbauto_2019_08_13_06_40_46\"}",
"unsubscribe_url": "https://console.xxx.com/smn/subscription/unsubscribe?
subscription_urn=urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic:
653e212a43884f7188ca656c537e31ce",
"signing_cert_url": "https://smn.cn-north-9.myhuaweicloud.com/smn/SMN_cn-north-9_94f60ccdfbee4588aa4d555935a56ba3.pem",
"timestamp": "2019-08-12T22:40:56Z"
}
HTTP(S)取消订阅消息的格式
HTTP(S)订阅终端取消订阅确认后,终端将收到SMN推送的取消订阅确认消息,下面 将描述HTTP Content信息,它是JSON串,具体字段说明如表A-7所示。
表A-7 HTTP(S)取消订阅消息的格式参数说明
参数 说明
type 消息类型,UnsubscribeConfirmation。
signature 签名信息。
签名字段包括message,message_id,subscribe_url、
timestamp,topic_urn和type,具体签名信息校验,请参见 校验消息签名。
topic_urn 主题的唯一标识,表示消息归属的主题。
message_id 消息唯一标识。
signature_version 签名的版本信息,目前是V1。
message 取消订阅确认消息的描述。
subscribe_url 再次订阅确认需要访问的URL。
signing_cert_url 用于消息签名的证书URL。
timestamp 消息第一次发送的时间戳。
HTTP(S)取消订阅消息样例如下:
{ "signature": "ViE96uGbBkl
+S8eWqgebi5KdmRht2U8+Rs88yuyMHq1k4h3jUkcDZ6HCqTqdpJ8nrLcdqETyyEiOQyTszJdU05z +LhfE8jerCCdSbL4zeInVkydHh0kcCRWmORye0/EuQ/gLC1UIXwvUsqbUCPnBRhNFXOeXMOPPCzK +d04xjy4QHd1H/bHxgsY3AlTe0gCFT068Zru7OK6w9aQaY44mXnN3OWGmBmoHyFab5TRXLSQNz/9u/
Vj646cQMMaI0PPQ30QzGYD0MtzgDZi12m8jMTHAnMkTEcbLaEgaqmaoEnATSpEcspFKNXv2skwk7rsVakMOI SpMH3+qC6RzhETA2A==",
"topic_urn": "urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic", "message_id": "d86c201092574e71a3ca85826652c58b",
"signature_version": "v1",
"type": "UnsubscribeConfirmation",
"message": "{\"enterpriseProjectId\": \"0\", \"eventTime\": \"2019-08-12 22:40:55.040632\",
\"chargingMode\": \"postPaid\", \"cloudserviceType\": \"hws.service.type.bandwidth\", \"eventType\": 1,
\"regionId\": \"region01\", \"tenantId\": \"057eefe55400d2742f8cc0017870ceef\", \"resourceType\":
\"hws.resource.type.bandwidth\", \"resourceSpecCode\": \"19_bgp\", \"resourceSize\": 10, \"resourceId\":
\"e091f1b1-08ef-4e2b-a27e-f85e4c19026a\", \"resouceSizeMeasureId\": 15, \"resourceName\":
\"elbauto_2019_08_13_06_40_46\"}",
"subscribe_url": "https://console.xxx.com/smn/subscription/unsubscribe?
subscription_urn=urn:smn:region01:0553db98c800d5192f9bc01232b89622:vpc_status_report_topic:
653e212a43884f7188ca656c537e31ce",
"signing_cert_url": "https://smn.cn-north-9.myhuaweicloud.com/smn/SMN_cn-north-9_94f60ccdfbee4588aa4d555935a56ba3.pem",
"timestamp": "2019-08-12T22:40:56Z"
}