华为云用户手册

  • GaussDB (for MySQL)标准版支持开启查询缓存吗 查询缓存(query_cache)相关的参数,不支持通过控制台设置。如需开启查询缓存,请提交工单申请。 不建议开启查询缓存,原因有以下几点: 仅在用户频繁访问同一条SQL的场景下,query_cache会带来一定的性能优化,在其他场景下,query_cache带来的额外资源消耗会降低SQL执行的性能。 从实际的测试情况来看,关闭query_cache后的性能优势会更明显。 query_cache功能在MySQL社区已停止维护。 父主题: 数据库参数修改
  • 设置指定用户的密码过期策略 创建用户的同时设置密码过期策略 create user 'script'@'localhost' identified by '*********' password expire interval 90 day; 创建用户后设置密码过期策略 ALTER USER 'script'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY; 设置密码永不过期 CREATE USER 'mike'@'%' PASSWORD EXPIRE NEVER; ALTER USER 'mike'@'%' PASSWORD EXPIRE NEVER; 设置密码遵从全局到期策略 CREATE USER 'mike'@'%' PASSWORD EXPIRE DEFAULT; ALTER USER 'mike'@'%' PASSWORD EXPIRE DEFAULT;
  • 服务端问题导致连接失败 GaussDB(for MySQL)标准版服务端可能出现的问题如下,请依次进行检测。 连接方式有误。 解决方法:检查连接方式。如果是通过内网连接GaussDB(for MySQL)标准版实例,弹性云服务器与GaussDB(for MySQL)标准版实例必须处于同一虚拟私有云内,且只能通过弹性云服务器连接。如果通过公网连接GaussDB(for MySQL)标准版实例,该弹性云服务器可以与目标实例不在同一个虚拟私有云内。 连接数满。 解决方法:通过GaussDB(for MySQL)标准版的资源监控功能查看连接数、CPU使用率等指标是否正常。如果达到上限,需要重启GaussDB(for MySQL)标准版实例数据库,断开实例连接或升级GaussDB(for MySQL)标准版实例规格解决。 实例状态异常。比如实例重启卡住,GaussDB(for MySQL)标准版系统故障,实例或表被锁定等。 解决方法:尝试重启功能。如果无法解决,请联系售后技术支持。 父主题: 数据库连接
  • GaussDB(for MySQL)标准版跨地域内网能访问吗 跨地域内网默认不能访问,不同区域的云服务之间内网互不相通。您可以通过公网访问,或者通过云连接/VPN打通网络实现内网访问。 弹性公网IP:不能通过内网IP地址访问GaussDB(for MySQL)标准版实例时,可以使用公网访问。 云连接:对于不同区域的VPC,不区分是否同一账号,都可以互连,跨区域连接实现全球云上网络。具体请参见跨区域VPC互连。 虚拟专用网络 VPN:基于Internet使用加密隧道将不同区域的VPC连接起来。具备成本低、配置简单、即开即用等优点。但它的网络质量依赖Internet。具体请参见通过VPN连接VPC。 父主题: 数据库连接
  • 最大连接数取值多少合适 GaussDB(for MySQL)标准版允许客户端同时连接的数量除了受制于参数max_connections外,还受操作系统对单进程允许打开最大文件数的限制。例如,当操作系统控制每个进程的最大打开文件数为100时,即使设置参数max_connections为200也不会起作用。 查看操作系统对单进程打开最大文件数的限制(默认为1024)。 ulimit -n 查看参数open_files_limit的值(open_files_limit是在GaussDB(for MySQL)标准版启动过程中从操作系统读取的单进程打开最大文件数的值)。 show variables like 'open_files_limit'; 取值建议 GaussDB(for MySQL)标准版的最大连接数可以自定义取值,但前提是实例的规格可以支撑该值,最大连接数与实例的内存规格息息相关,具体如下: max_connections:允许同时连接的客户端总数。如果设定值为default,表示该参数和数据库实例的内存(单位:GB)相关,计算公式如下: max_connections上限估计数值 = 节点可用内存 / 单个连接预估占用内存 节点可用内存=总内存 - Buffer Pool占用内存 - 1GB(mysqld进程/操作系统/监控程序等) 单个连接预估占用内存(single_thread_memory) = thread_stack(256KB) + binlog_cache_size(32KB) + join_buffer_size(256KB) + sort_buffer_size(256KB) + read_buffer_size(128KB) + read_rnd_buffer_size(256KB)= 大约1MB 华为云不同内存规格配置的默认max_connections值如下表所示。 表1 不同内存规格配置的默认max_connections值 内存(GB) 连接数 512 100000 384 80000 256 60000 128 30000 64 18000 32 10000 16 5000 8 2500 4 1500 2 800 在实际业务中,最大连接数并不是设置的越大越好,建立的连接数越多,对应的资源开销也就越多。
  • GaussDB(for MySQL)标准版实例做OPTIMIZE TABLE操作是否会锁表 GaussDB(for MySQL)标准版实例做OPTIMIZE TABLE操作时,不会一直锁表,整个过程中一小段时间会锁表。锁表期间可以做DML操作,不能同时做其他DDL操作,并且该操作会重建表,过程有点长,会耗费CPU和磁盘资源,如果并发DML很多,最终锁表的时间会更长,建议在业务低峰时间做OPTIMIZE TABLE操作。 父主题: 数据库基本使用
  • 用户平时需要关注GaussDB(for MySQL)标准版实例的哪些监控指标 用户需要关注的监控指标有:CPU利用率、内存利用率、磁盘空间利用率。 可以根据实际应用场景配置告警提示,当收到告警,可采取相应措施消除告警。 配置示例: 如果在某段时间内(如5min),CPU的利用率出现多次(如3次)不低于某特定值(如90%)的情况,则发出相应Cloud Eye告警。 如果在某段时间内(如5min),内存的利用率出现多次(如4次)不低于某特定值(如90%)的情况,则发出相应Cloud Eye告警。 如果在某段时间内(如5min),磁盘的使用率出现多次(如5次)不低于某特定值(如85%)的情况,则发出相应Cloud Eye告警。 Cloud Eye告警详细配置方法,请参见《 云监控 用户指南》中“创建告警规则”。 采取措施: 收到与CPU利用率、内存利用率有关的告警,通过实例规格变更分别增大CPU、内存。 收到与磁盘空间利用率有关的告警: 调查磁盘空间消耗,查看是否可以从实例中删除数据或是将数据存档到其他系统以释放空间。 通过磁盘空间扩容增大磁盘空间。 父主题: 数据库监控
  • GaussDB(for MySQL)标准版实例内能运行多少个数据库 GaussDB(for MySQL)标准版没有强制限制在一个实例内能运行多少个数据库,这取决于数据库引擎自身设置。 如果CPU、内存和磁盘大小均满足的情况下,实例允许数据库数量没有限制。数据库中表的数量会影响备份速度。表数量超过50万,备份将会失败。 GaussDB(for MySQL)标准版创建的数据库、表数量没有限制。 父主题: 产品咨询
  • 解决方案 随着业务数据的增加,原来申请的数据库磁盘容量可能会不够用,您需要为GaussDB(for MySQL)标准版实例进行扩容。 针对数据空间过大,可以删除无用的历史表数据进行释放空间(DROP或TRUNCATE操作,如果是执行DELETE操作,需要使用OPTIMIZE TABLE来释放空间);如果没有可删除的历史数据,需要进行磁盘扩容。 针对大量排序查询导致的临时文件过大,建议进行优化SQL查询。 应用中存在大量的排序查询,产生了大量的临时文件。 短期内大量增、删、改,产生大量Binlog文件占用空间。 由于大量的事务和写入操作产生了大量的Binlog日志文件。 云监控服务 目前可以监控存储空间的大小、使用量、利用率等,并且设置告警策略。
  • 如何防止任意源连接GaussDB(for MySQL)标准版数据库 数据库开放EIP后,如果公网上的恶意人员获取到您的EIP DNS和数据库端口,那么便可尝试破解您的数据库并进行进一步破坏。因此,强烈建议您保护好EIP DNS、数据库端口、数据库账号和密码等信息,并通过GaussDB(for MySQL)标准版实例的安全组限定源IP,保障只允许可信源连接数据库。 为避免恶意人员轻易破解您的数据库密码,请按照GaussDB(for MySQL)标准版实例的密码策略设置足够复杂度密码,并定期修改。 父主题: 网络安全
  • 如何将GaussDB(for MySQL)标准版数据库备份到弹性云服务器上 您可以通过导出SQL语句的方式将数据库备份到弹性云服务器上。弹性云服务器不限制存放哪些数据,但是数据必须符合国家法律法规。您可以在弹性云服务器上存放数据库备份,但不建议将弹性云服务器作为数据库备份空间使用。 强烈推荐使用GaussDB(for MySQL)标准版的自动备份和手动备份功能将备份数据存放到专业的 对象存储服务 上,以获得更高的数据可靠性和服务保障。 父主题: 备份与恢复
  • GaussDB(for MySQL)标准版支持导入哪些数据库引擎的数据 相同引擎数据库之间数据导入导出,称之为同构型数据库之间数据导入导出。 不同引擎数据库之间数据导入导出,称之为异构型数据库之间数据导入导出。例如,从Oracle导入数据到GaussDB(for MySQL)标准版支持的数据库引擎。 异构型数据库之间由于格式不同,不支持直接导入导出。但只要导入导出的格式数据兼容,理论上,导入表数据也是可行的。 异构型数据库之间数据导入导出,一般需要第三方软件,通过数据复制的方式来实现。 父主题: 数据库迁移
  • 主实例和只读实例之间可以设置数据同步方式吗 只读实例为单个物理节点的架构(没有备节点),采用MySQL的原生复制功能,将主实例的更改同步到所有只读实例,而且主实例和只读实例之间的数据同步不受网络延时的影响。即使数据库没有主键ID,数据也会给只读库同步。 GaussDB(for MySQL)标准版界面上展示的数据同步方式,指的是主节点和备节点之间的数据同步方法,支持半同步(默认)和异步两种。关注数据安全,请选择半同步,关注性能,请选择异步。 对于主实例和只读实例之间,默认是异步方式,不可以修改同步方式。 父主题: 产品咨询
  • 使用GaussDB(for MySQL)标准版要注意些什么 实例的操作系统,对用户都不可见,这意味着,只允许用户应用程序访问数据库对应的IP地址和端口。 对象存储服务(Object Storage Service,简称OBS)上的备份文件以及GaussDB(for MySQL)标准版使用的弹性云服务器(Elastic Cloud Server,简称E CS ),都对用户不可见,它们只对GaussDB(for MySQL)标准版的后台管理系统可见。 查看实例列表时请确保与购买实例选择的区域一致。 申请GaussDB(for MySQL)标准版实例后,您不需要进行数据库的基础运维(比如高可用、安全补丁等),但是您还需要重点关注以下事情: GaussDB(for MySQL)标准版实例的CPU、IOPS、空间是否足够,如果不够需要变更规格或者扩容。 GaussDB(for MySQL)标准版实例是否存在性能问题,是否有大量的慢SQL,SQL语句是否需要优化,是否有多余的索引或者缺失的索引等。 父主题: 产品咨询
  • GaussDB(for MySQL)标准版和企业版有什么区别 GaussDB(for MySQL)支持标准版和企业版两种产品形态,具体的区别如下: 表1 GaussDB(for MySQL)支持标准版和企业版的区别 类别 GaussDB(for MySQL) 企业版 GaussDB(for MySQL)标准版 产品架构 存算分离架构,计算节点共享一份数据,无需通过binlog同步数据。 经典主备架构。 数据库版本 100%兼容MySQL8.0 100%兼容MySQL5.7和8.0 扩展性 最多支持15个只读节点,由于共享存储,添加只读节点所需时间与数据量大小无关,且无需增加一份存储。 存储自动扩容,最大支持128T存储容量。 最多支持5个只读实例,添加只读所需时间与数据量大小相关,并且需要增加一份存储。 存储自动扩容,最大支持4T存储容量。 适用场景 针对于金融,游戏,电商具有高性能场景的应用,可选择企业版。企业版具有7倍开源吞吐,主备毫秒级时延,存储容量大等优势。 针对于中小型网站,高可用性,小于4T数据量诉求的业务场景可以选择标准版。 更多关于企业版的内容请参见什么是GaussDB(for MySQL)企业版。 父主题: 产品咨询
  • GaussDB(for MySQL)标准版实例为什么自动备份会失败 GaussDB(for MySQL)标准版实例出现自动备份失败可能有以下原因: 图1 自动备份失败排查思路 网络环境稳定性不足。 如网络延时、中断,系统会识别并延时半小时再次执行备份,您也可以及时进行一次手动备份。 系统多任务执行。 如任务等待、中止,系统会识别并延时半小时再次执行备份,您也可以及时进行一次手动备份。 实例状态异常。 如实例故障、状态变更中,系统会识别并在状态恢复正常后再次执行备份,您也可以及时进行一次手动备份。 数据库中表的数量会影响备份速度。 表数量超过50万,备份将会失败。 参数修改异常。 如修改参数并关联实例后导致实例故障,您可以对比参数修改前后的值是否正确、修改的参数是否存在关联参数需要一并修改、或者尝试恢复默认参数重启实例。 导入数据异常。 如导入数据不当导致系统表记录丢失,可以重新导入数据。 如果以上操作仍无法解决问题,请联系客服人员处理。 父主题: 备份与恢复
  • 冻结、解冻、释放资源时对业务的影响 资源冻结时: 资源将被限制访问和使用,会导致您的业务中断。例如GaussDB(for MySQL)标准版实例被冻结时,会使得用户无法再连接至数据库。 包周期资源被冻结后,将被限制进行变更操作。 资源被冻结后,可以手动进行退订/删除。 资源解冻时:资源将被解除限制,用户可以连接至数据库。 资源释放时:资源将被释放,实例将被删除,删除前将依据用户策略决定是否执行回收站备份。
  • mysqlbinlog工具使用方法 本章节介绍mysqlbinlog工具的使用方法,用于本地解析Binlog。 Binlog的基本组成单元是binlog_event,同时server是以二进制的格式写入Binlog文件,所以如果想通过文本格式显示Binlog内容,需要mysqlbinlog工具来解析。该工具一般放在mysqld的同级目录下。 调用方式为:mysqlbinlog [options] log_file ... 示例:mysqlbinlog masterbin.000001 Binlog内容示例: # at 141#210309 9:28:36 server id 123 end_log_pos 245Query thread_id=3350 exec_time=11 error_code=0 at 141:Binlog文件中的位置信息。 #210309 9:28:36:时间戳信息,表示写入此条Binlog的时间为UTC时间21年3月9日 9点28分36秒。 Query thread_id:表示线程号。 mysqlbinlog的常用参数: --start-position:表示从指定的起始位置开始解析。 --start-datetime:表示从指定的时间开始解析。 --stop-position:表示解析到指定的位置。 --stop-datetime:表示解析到指定的时间。 --skip-gtids:跳过打印gtid_log_event。 --short-form:表示只显示statements。 --result-file:将Binlog解析生成SQL文件。 父主题: 数据库基本使用
  • 为什么要采用mysqldump工具迁移GaussDB(for MySQL)标准版实例 该方案优点是简单,容易上手,缺点是停机时间较长。因此它适用于数据量不大,或者允许停机的时间较长,并且在这个时间范围内能够完成的数据。 由于GaussDB(for MySQL)标准版提供的服务与原来的数据库服务是完全兼容的,所以对于用户来说,从原有数据库迁移到GaussDB(for MySQL)标准版的过程,与从一台数据库服务器迁移到另外一台数据库服务器的过程基本类似。 父主题: 数据库迁移
  • MySQL 8.0是否支持全文检索 MySQL 8.0版本支持全文检索,关键字为FULLTEXT。可执行如下SQL语句测试。 创建表 CREATE TABLE ARTICLE ( id int unsigned NOT NULL AUTO_INCREMENT, title varchar(200) DEFAULT NULL, content text, PRIMARY KEY (id), FULLTEXT KEY title (title,content), FULLTEXT KEY fulltext_article (title,content) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建索引 ALTER TABLE ARTICLE ADD FULLTEXT INDEX fulltext_article (title,content); 查看索引 SHOW INDEX FROM ARTICLE; 父主题: 数据库基本使用
  • 为什么GaussDB(for MySQL)标准版数据表会丢失或数据被删除 GaussDB(for MySQL)标准版不会删除和操作用户的任何数据。出现这种情况,请检查是否为误操作,必要时可利用已有备份恢复文件。 检查误操作:如果已经开启SQL审计日志,可通过审计日志查看数据执行记录。 已有备份恢复文件: 使用GaussDB(for MySQL)标准版实例的恢复功能。 将备份数据从弹性云服务器导入GaussDB(for MySQL)标准版实例 。 父主题: 备份与恢复
  • 中国大陆境外计费区域划分 计费大区 国家及地区(以华为内部业务划分区域) 亚太1 中国香港、中国澳门、中国台湾、日本、韩国 亚太2 印度 亚太3 越南、印尼、泰国、菲律宾、新加坡、马来西亚、柬埔寨、老挝、吉尔吉斯斯坦、文莱、缅甸、尼泊尔、孟加拉、蒙古、斯里兰卡、哈萨克斯坦、乌兹别克斯坦 欧洲 英国、德国、法国、荷兰、西班牙、意大利、 爱尔兰、瑞典、比利时、奥地利、波兰、罗马尼亚、白俄罗斯、葡萄牙、土耳其、摩尔多瓦、保加利亚、拉脱维亚、瑞士、捷克、匈牙利、卢森堡、希腊、克罗地亚、塞尔维亚、芬兰 中东&非洲 阿联酋、沙特、巴基斯坦、卡塔尔、阿曼、科威特、巴林、伊拉克、南非、埃及、肯尼亚、坦桑尼亚、马达加斯加、吉布提、毛里求斯、加纳、安哥拉、尼日利亚、约旦、也门、以色列、格鲁吉亚、亚美尼亚、塞浦路斯、阿塞拜疆 北美洲 美国、加拿大 大洋洲 澳大利亚、新西兰、斐济 南美洲 巴西、智利、阿根廷、秘鲁、哥伦比亚、厄瓜多尔、墨西哥
  • 计费方式 计费项 计费方式 描述 参考文档 基础服务计费 流量计费 按照每小时实际使用的流量进行计费,也可以购买流量包抵扣使用的流量。 流量计费 预付费流量包 峰值带宽计费 按照每日峰值带宽进行计费,系统每5分钟统计1个峰值带宽,每日得到288个值,取其中的最大值作为计费带宽。 峰值带宽计费 月结95峰值带宽计费 在一个自然月内,将每个有效日的所有峰值带宽的统计点进行排序,去掉数值最高的5%的统计点,取剩下的数值最高统计点为计费点,再根据合同约定的单价计费。 月结95峰值带宽计费 日峰值月平均计费 在一个自然月内,对所有有效日的最大峰值带宽求和取平均,获得当月的计费带宽,再根据合同约定的单价计费。 日峰值月平均计费 预付费流量包 购买相应加速区域的流量包进行抵扣。优先扣除流量包里的流量,超出部分采用按流量计费方式结算。 预付费流量包 增值服务计费 全站加速请求数 全站加速的动态请求数和静态请求数计费。 增值服务计费 服务概览和统计分析页面展示的是加速 域名 日志中记录的流量数据,是应用层日志统计出的流量,但是实际产生的网络流量由于TCP/IP包头消耗和TCP重传消耗要比应用层统计到的流量高出7%~15%。因此按照业界标准,应用于账单的计费数据会在控制台监控数据的基础上上浮10%。 流量计费或峰值带宽计费转为月结95峰值带宽计费、日峰值月平均计费方式的商务可当月生效。月结95峰值带宽计费、日峰值月平均计费方式商务发生变更的次月1日生效,当月仍按照变更前的商务执行。 CDN计费分中国大陆、中国大陆境外区域,各区域单独计费,不同区域流量包不能相互抵扣。 CDN支持中国大陆境外分区计费,区域划分请参见中国大陆境外计费区域划分,可提交工单申请开通。
  • 注意事项 流量计费或峰值带宽计费变更为其他计费方式,新的计费方式将在次日00:00:00生效。 95峰值计费或日峰值月平均计费变更为其他计费方式,新的计费方式将在次月1日00:00:00生效。 您可以在控制台将“95峰值计费或日峰值月平均计费”变更为“流量计费或带宽计费”,如果想要将“流量计费或带宽计费”变更为“95峰值计费或日峰值月平均计费”,请联系华为云大客户经理进行商务洽谈及业务变更。 V0、V1的用户默认只能使用“流量计费”,如需变更为“峰值带宽计费”,请提交工单申请。 在新的计费方式生效前,变更次数不限,系统以最后一次修改为准。
  • HTTP(S)取消订阅消息的格式 HTTP(S)订阅终端取消订阅确认后,终端将收到 SMN 推送的取消订阅确认消息,下面将描述HTTP Content信息,它是JSON串,具体字段说明如表4所示。 表4 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/Vj646cQMMaI0PPQ30QzGYD0MtzgDZi12m8jMTHAnMkTEcbLaEgaqmaoEnATSpEcspFKNXv2skwk7rsVakMOISpMH3+qC6RzhE******", "topic_urn": "urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******", "message_id": "d86c201092574e71a3ca85826652c58b", "signature_version": "v1", "type": "UnsubscribeConfirmation", "message": "You are unsubscribed from topic: urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******. To subscribe to this topic again, please visit the subscribe_url included in this message. The subscribe_url is valid only within 48 hours.", "subscribe_url": "https://console.******.com/smn/subscription/confirm?token=0a419ac94f80f2c62f14c01e34ae5dfcf6b0b92ef46241218eaae5b4cb90d5d423cf104593284665a1f98691b1576976785114fb4408450e8de153b9f1******&topic_urn=urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******®ion=region01®ion_id=region01", "signing_cert_url": "https://smn.region01.******.com/smn/SMN_region01_3190c26a56fb435f9882e3435b******.pem", "timestamp": "2024-07-10T11:45:00Z" }
  • HTTP(S)订阅确认消息的格式 添加HTTP(S)订阅终端以后,SMN会向订阅终端推送一条订阅确认的消息,下面将描述消息的HTTP Content,它是JSON格式的字符串,其中包括subscribe_url值,订阅确认需要GET请求subscribe_url地址进行确认,具体JSON字段说明如表2所示。 表2 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)订阅确认消息样例如下: { "subscribe_url": "https://console.******.com/smn/subscription/confirm?token=0a419ac94f80f2c62f14c01e34ae5dfcf6b0b92ef46241218eaae5b4cb90d5d423cf104593284665a1f98691b1576976785114fb4408450e8de153b9f1******&topic_urn=urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******®ion=region01®ion_id=region01", "signature": "W/DQSiqpRkY6En0jNaFtCYOpmUjMhzoJIdMPLhnRv37iPzNhH+SxlievFoUIyS29z7Ig4hL/ECWNfGrRhTqoasiAeOaXOjoRNoQ73YfyqWm7x7OdX+2c202zxaOS5GcsUHohxAS+wCYd6W6aVhx6eQpWzpzLwrGgE+iPmsd5I00HXIBeZEeBx/VuoqkPyBDnSvGNNDTJ2gw+fL7XuKqf/DUUjjI8dkPsp3gAcETe/XMgf3UTMFDvLLrq2fAZVhr/jMR/9m81PwuDs1k9i3iBxT67afzmQ1AhY/a/ayQX7Fmwf/FBpehG1o8e98lXAZFS2nzhvTpttawUFG8Z82******", "topic_urn": "urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******", "message_id": "54bb04eddfc842e9b44ca36393f77cd3", "signature_version": "v1", "type": "SubscriptionConfirmation", "message": "You are invited to subscribe to topic: urn:smn:regionid:0a419ac94f80f2c62f14c01e34******:test_******. To confirm this subscription, please visit the subscribe_url included in this message. The subscribe_url is valid only within 48 hours.", "signing_cert_url": "https://smn.region01.******.com/smn/SMN_region01_3190c26a56fb435f9882e3435b******.pem", "timestamp": "2024-07-10T09:43:44Z" }
  • HTTP(S)推送消息的格式 HTTP(S)订阅终端订阅确认后,终端将收到SMN推送的消息,下面将描述HTTP Content信息,它是JSON串,具体字段说明如表3所示。 表3 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": "WmSQ2/0kp2v2u2T33lMqKYrrLxnJoW2NHqIy5QowDuHH3y+HvhCNlCgHDUiAGpb3suCXJm16hWF+EJAYR+tPaTY1q0N3p0p+oBbhlD30fOTxRNsEWRAg73k4qArmQajhdDZOtd57xelQiNhzl2r6iCs0en4kR2iY78zZM/9caZQGBTlNcjkd2lyXYP6aSc7MOgxTsYrRus0A6yipD3zsUA7TvTdfsauAe2hZLR5W0l+um+S3ytT7sA1CMlIJPBXHP5WlqS4iMAeivmufZv7T+G43DbwWfw/seKnK6uFKWd214oqsY2/oLY3C4dcyLdvsy0/7/W8zvxXbgHeSL4******", "subject": "SMN", "topic_urn": "urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******", "message_id": "d84bd6629ef04513ad2e37bffd6e17cb", "signature_version": "v1", "type": "Notification", "message": "{\"enterpriseProjectId\": \"0\", \"eventTime\": \"2019-08-12 22:40:55.040632\", \"chargingMode\": \"postPaid\", \"cloudserviceType\": \"xxx.service.type.bandwidth\", \"eventType\": 1, \"regionId\": \"region01\", \"tenantId\": \"057eefe55400d2742f8cc00178******\", \"resourceType\": \"xxx.resource.type.bandwidth\", \"resourceSpecCode\": \"19_bgp\", \"resourceSize\": 10, \"resourceId\": \"e091f1b1-08ef-4e2b-a27e-f85e4c******\", \"resouceSizeMeasureId\": 15, \"resourceName\": \"elbauto_2019_08_13_06_40_46\"}", "unsubscribe_url": "https://console.******.com/smn/subscription/unsubscribe?region=region01®ion_id=region01&subscription_urn=urn:smn:region01:0a419ac94f80f2c62f14c01e34******:test_******:23cf104593284665a1f98691b1******", "signing_cert_url": "https://smn.region01.******.com/smn/SMN_region01_3190c26a56fb435f9882e3435b******.pem", "timestamp": "2024-07-10T09:45:00Z" }
  • 操作场景 接收SMN服务发送的HTTP(S)消息时,终端证书的CN名称请参考业界规范,部分特殊字符可能导致https消息发送失败。 在互联网上传递未加密的http协议消息内容存在信息泄漏风险,推荐用户终端添加订阅时对接通道优先使用https类型。 描述SMN服务向HTTP(S)终端发送消息的格式,您可以通过消息头部信息中的消息类型来区分消息格式。消息格式包括:HTTP(S)订阅确认消息的格式、HTTP(S)推送消息的格式和HTTP(S)取消订阅消息的格式三种消息格式,HTTP/HTTPS协议均为POST方式。 当SMN服务向HTTP(S)终端发送消息时,头部包括请求X-SMN-MESSAGE-TYPE,X-SMN-MESSAGE-ID,X-SMN-TOPIC-URN,如表1所示。 表1 消息HTTP(S)头部参数说明 参数 说明 X-SMN-MESSAGE-TYPE 消息类型,消息类型分别有: SubscriptionConfirmation Notification UnsubscribeConfirmation X-SMN-MESSAGE-ID 消息唯一标识。 X-SMN-TOPIC-URN 主题的唯一标识,表示消息归属的主题。 关于HTTP(S)头部字段的说明: RFC 7230 章节3.2中规定,HTTP(S)头部的字段名称不区分大小写。 RFC 7540 章节8.1.2中规定,对于支持HTTP/2的服务端,头部字段信息需要统一改为全小写。 对于用户自定义的HTTP(S)头部字段,SMN也将采用上述的处理策略。 用户如果从HTTP(S)头部中获取相关字段,建议采用不区分大小写的方式。
  • 查看访问日志 当您配置了消息传输日志,可以查看消息传输日志的详细信息。 日志显示格式如下: {"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
共100000条