华为云用户手册

  • 如何保证请求幂等性 客户端在发送请求时,可以在HTTP请求消息头中增加X-Client-Token作为幂等性标识,字段描述参见表1。 表1 幂等标识消息头 名称 描述 是否必选 示例 X-Client-Token 保证客户端请求幂等性的标识。 该标识为32位UUID格式,由客户端生成,且需确保不同请求之间该标识具有唯一性。 否 46436810-d999-454c-bd85-e515fd258600 通常情况下,客户端只需要在服务端内部异常、连接超时等响应状态码为5xx的错误,或者无法获取响应结果重试请求。重试请求仍然使用相同的幂等标识和请求参数,则服务端会返回与第一次请求相同的请求结果。 幂等标识的详细信息如下所示: 幂等标识是一个大小写敏感的32位UUID,其格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。如果您提供了一个非UUID格式的标识,则服务端会返回DBS.280497错误码。 幂等标识需要具有唯一性,如果您提供了一个已经使用过的标识,但请求参数有变化,则服务端会返回DBS.280495错误码。 幂等标识具有时效性(8小时),如果您提供了一个已经失效的标识,则服务端会返回DBS.280498错误码。 使用幂等标识后: 返回结果状态码为2xx时,重试后客户端可以得到与上次相同的结果,但对您的服务端状态没有影响。 返回结果状态码为4xx时,重试不会成功。您需要根据错误信息排查问题后再重试请求。
  • 请求消息 参数说明 表2 参数说明 名称 是否必选 参数类型 说明 comment 否 String 数据库用户名备注。 取值范围:长度1~512个字符。 URI样例 PUT https://rds.cn-north-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/f569f1358436479dbcba8603c32cc4aein03/db-users/root/comment 请求样例 { "comment": "this is a comment"}
  • URI URI格式 POST /v3/{project_id}/instances/{instance_id}/proxy URI样例 https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/f569f1358436479dbcba8603c32cc4aein03/proxy 参数说明 表1 参数说明 名称 是否必选 说明 project_id 是 租户在某一region下的project ID。 获取方法请参见获取项目ID。 instance_id 是 实例ID。
  • URI URI格式 PUT /v3/{project_id}/instances/{instance_id}/proxy/delay-threshold URI样例 https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/f569f1358436479dbcba8603c32cc4aein03/proxy/delay-threshold 参数说明 表1 参数说明 名称 是否必选 说明 project_id 是 租户在某一region下的project ID。 获取方法请参见获取项目ID。 instance_id 是 实例ID。
  • URI URI格式 POST /v3/{project_id}/instances/{instance_id}/proxy/scale URI样例 https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/f569f1358436479dbcba8603c32cc4aein03/proxy/scale 参数说明 表1 参数说明 名称 是否必选 说明 project_id 是 租户在某一region下的project ID。 获取方法请参见获取项目ID。 instance_id 是 实例ID。
  • 请求消息 参数说明 表2 参数说明 名称 是否必选 参数类型 说明 is_force_delete 否 Boolean 是否强制删除数据库,默认是false。 URI样例 DELETE https://{endpoint}/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/a8abe84a41364097be7c233c39275087in04/database/rds-test 请求样例 { "is_force_delete" : false }
  • 概述 欢迎使用云数据库 RDS(Relational Database Service,简称RDS)。云数据库 RDS是一种基于云计算平台的稳定可靠、弹性伸缩、便捷管理的在线云数据库 RDS服务。云数据库 RDS服务具有完善的性能监控体系和多重安全防护措施,并提供了专业的数据库管理平台, 让用户能够在云中轻松的进行设置和扩展云数据库 RDS。 您可以使用本文档提供API对数据库实例进行相关操作,如创建、备份恢复、查询、参数配置、删除等。支持的全部操作请参见API概览。 在调用关系型数据库API之前,请确保已经充分了解云数据库 RDS相关概念,详细信息请参见《云数据库 RDS用户指南》的“产品介绍”。 父主题: 使用前必读
  • 调用说明 云数据库 RDS提供了REST(Representational State Transfer)风格API,支持您通过HTTPS请求调用,调用方法请参见如何调用API。 同时关系型数据库还提供多种编程语言的SDK供您使用,SDK的使用方法请参见https://sdkcenter.developer.huaweicloud.com/。 调用API时有流控策略,用于限制单位时间内API的被调用次数。单位时间内API请求次数过多,可能会请求失败。 标准流控策略:单用户每分钟60次,API总流量每分钟8000次。 父主题: 使用前必读
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" }}
  • 响应消息体(可选) 该部分可选。响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中Content-Type对应,传递除响应消息头之外的内容。 对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "az-01",...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 {"error_code": "AS.0001","error_msg": "The format of message is error"} 其中,“error_code”表示错误码,“error_msg”表示错误描述信息。
  • 注意事项 MySQL引擎库和表名称是否大小写敏感,可通过参数“lower_case_table_names”配置,使用以下接口可能会受到此配置的影响。比如创建数据库时通过接口输入了大写的库名称,则实际创建出的库名可能为小写(当数据库被配置为表名大小写不敏感时)。因此,使用以下接口请保持您的输入大小写和数据库中实际的大小写完全一致,避免受到大小写配置的影响。 父主题: 管理数据库和用户(MySQL)
  • URI URI格式 PUT /v3/{project_id}/instances/{instance_id}/slowlog-sensitization/{status} 参数说明 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一region下的project ID。 获取方法请参见获取项目ID。 instance_id 是 String 要查询的实例ID。 status 是 String 开启或关闭慢日志敏感信息明文,取值为on或off。 on:表示开关打开。 off:表示开关关闭。
  • 数据修改 建议慎用delete、update的mutation操作 标准SQL的更新、删除操作是同步的,即客户端要等服务端反回执行结果(通常是int值);而ClickHouse的update、delete是通过异步方式实现的,当执行update语句时,服务端立即返回执行成功还是失败结果,但是实际上此时数据还没有修改完成,而是在后台排队等着进行真正的修改,可能会出现操作覆盖的情况,也无法保证操作的原子性。 业务场景要求有update、delete等操作,建议使用ReplacingMergeTree、CollapsingMergeTree、VersionedCollapsingMergeTree引擎,使用方式参见:https://clickhouse.tech/docs/zh/engines/table-engines/mergetree-family/collapsingmergetree/。 建议少或不增删数据列 业务提前规划列个数,如果将来有更多列要使用,可以规划预留多列,避免在生产系统跑业务过程中进行大量的alter table modify列操作,导致不可以预知的性能、数据一致性问题。 对于批量数据清理,建议根据分区来操作: ALTER TABLE table_name DROP PARTITION partition_name; 禁止修改索引列 对索引列的修改会导致现有索引失效,触发重建索引,期间查询数据不准确。 如果业务场景必须修改索引列,推荐用ReplacingMergeTree引擎建表,使用数据写入+去重引擎代替数据更新场景:https://clickhouse.tech/docs/zh/engines/table-engines/mergetree-family/collapsingmergetree/。 父主题: 数据查询
  • 普通物化视图与projection对比 表1 普通物化视图与projection对比表 物化视图类型 原表数据与物化视图一致性 灵活性 物化视图开发及维护复杂度 普通物化视图 数据从原表同步到物化视图需要时间窗 灵活性较高,有新的业务可开发新的物化视图; 可开发复杂逻辑SQL语句的物化视图。 复杂度较高,需要开发很多物化视图,每个物化视图都需要单独去管理和维护 projection 数据实时同步,数据写入即可查询到物化视图最新数据 创建表时指定的物化视图语法,新的SQL业务需要修改表结构 不需要开发很多物化视图,任意查询SQL会自动重写命中物化视图 Projection仅在MRS 3.2.0及以上的版本中支持。 父主题: 物化视图设计
  • 步骤3:安装Flume客户端 以root用户登录待安装Flume客户端所在节点。 进入客户端安装包解压路径,例如客户端安装包以上传至“/tmp”目录下并解压。 执行以下命令安装Flume客户端,其中“/opt/FlumeClient”为自定义的Flume客户端安装路径。 cd /tmp/FusionInsight-Client/FusionInsight_Cluster_1_Services_ClientConfig/Flume/FlumeClient ./install.sh -d /opt/FlumeClient -c flume/conf/client.properties.properties CST ... [flume-client install]: install flume client successfully.
  • 方案架构 Flume-NG由一个个Agent来组成,而每个Agent由Source、Channel、Sink三个模块组成,其中Source负责接收数据,Channel负责数据的传输,Sink则负责数据向下一端的发送。 图1 Flume-NG架构 表1 模块说明 名称 说明 Source Source负责接收数据或通过特殊机制产生数据,并将数据批量放到一个或多个Channel。Source的类型有数据驱动和轮询两种。 典型的Source类型如下: 和系统集成的Sources:Syslog、Netcat。 自动生成事件的Sources:Exec、SEQ。 用于Agent和Agent之间通信的IPC Sources:Avro。 Source必须至少和一个Channel关联。 Channel Channel位于Source和Sink之间,用于缓存来自Source的数据,当Sink成功将数据发送到下一跳的Channel或最终目的地时,数据从Channel移除。 Channel提供的持久化水平与Channel的类型相关,有以下三类: Memory Channel:非持久化。 File Channel:基于WAL(预写式日志Write-Ahead Logging)的持久化实现。 JDBC Channel:基于嵌入Database的持久化实现。 Channel支持事务,可提供较弱的顺序保证,可以和任何数量的Source和Sink工作。 Sink Sink负责将数据传输到下一跳或最终目的,成功完成后将数据从Channel移除。 典型的Sink类型如下: 存储数据到最终目的终端Sink,比如:HDFS、HBase。 自动消耗的Sink,比如:Null Sink。 用于Agent间通信的IPC sink:Avro。 Sink必须作用于一个确切的Channel。 Flume也可以配置成多个Source、Channel、Sink,如图2所示: 图2 Flume结构图
  • 步骤1:创建MRS集群 创建并购买一个包含有Flume、HDFS组件的MRS集群,详情请参见购买自定义集群。 本文以购买的MRS 3.1.0版本的集群为例,集群未开启Kerberos认证。 集群购买成功后,登录集群的FusionInsight Manager界面,下载集群客户端并解压。 由于Flume客户端需要单独安装,我们需要首先下载集群的客户端安装包到待安装Flume客户端的节点上并解压。 在FusionInsight Manager“主页”页签的集群名称后单击,单击“下载客户端”下载集群客户端。 在“下载集群客户端”弹窗中填写集群客户端下载信息。 图3 下载集群客户端 “选择客户端类型”中选择“完整客户端”。 “选择平台类型”必须与待安装节点的架构匹配,以“x86_64”为例。 勾选“仅保存到如下路径”,填写下载路径,本示例以“/tmp/FusionInsight-Client/”为例,需确保omm用户对该路径有操作权限。 客户端软件包下载完成后,以root用户登录集群的主OMS节点,复制安装包到指定节点。 客户端软件包默认下载至集群的主OMS节点(可通过FusionInsight Manager的“主机”界面查看带有标识的节点),如需要在集群内其他节点上安装,执行以下命令将软件包传输至其他节点,否则本步骤可忽略。 cd /tmp/FusionInsight-Client/ scp -p FusionInsight_Cluster_1_Services_Client.tar 待安装Flume客户端节点的IP地址:/tmp 以root用户登录待安装Flume客户端的节点,进入客户端软件包所在目录后,执行以下命令解压软件包。 tar -xvf FusionInsight_Cluster_1_Services_Client.tar tar -xvf FusionInsight_Cluster_1_Services_ClientConfig.tar
  • 应用场景 Flume是一个分布式、可靠和高可用的海量日志聚合的系统。它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。支持在系统中定制各类数据发送方,用于收集数据。同时,提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 Flume分为客户端和服务端,两者都是FlumeAgent。服务端对应着FlumeServer实例,直接部署在集群内部。而客户端部署更灵活,可以部署在集群内部,也可以部署在集群外。它们之间没有必然联系,都可以独立工作,并且提供的功能是一样的。 Flume客户端需要单独安装,支持将数据直接导到集群中的HDFS和Kafka等组件上。 本案例中,我们通过MRS自定义集群中的Flume组件,自动采集指定节点日志目录下新产生的文件并存储到HDFS文件系统中。
  • 创建集群时配置LakeFormation数据连接 该操作指导用户在创建MRS集群时配置LakeFormation数据连接。 登录MRS管理控制台。 单击“购买集群”,进入“购买集群”页面。 在购买集群页面,选择“自定义购买”。 参考购买自定义拓扑集群进行配置并创建集群,且集群需满足表1中要求。 表1 LakeFormation数据连接参数说明 参数 参数说明 版本类型 LTS版 集群版本 MRS 3.1.2-LTS.6.Beta 当前仅MRS 3.1.2-LTS.6.Beta版本支持在创建集群时配置LakeFormation数据连接。 组件选择 必须包含Ranger、Hive、Guardian、Spark2x(可选)等组件。 元数据 选择“外置数据连接”,并配置以下参数: LakeFormation元数据:单击按钮开启。 LakeFormation连接实例:选择创建LakeFormation数据连接已创建的LakeFormation数据连接名称。 数据连接类型:保持默认。 虚拟私有云 与LakeFormation数据连接所在的虚拟私有云保持一致。 子网 选择子网名称。 拓扑调整 选择“开启”,并确认Ranger组件至少添加1个PolicySync(PSC)实例、Guardian组件至少添加2个TokenSever(TS)实例。 Kerberos认证 开启 委托 选择创建对接ECS/BMS云服务委托创建的委托(例如:lakeformation_test)。 参考配置MRS集群章节,配置Guardian组件、Hive/Spark2x存算分离、下载客户端等操作。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”,您可以从地区和终端节点获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取用户Token。 1 2 3 4 5 6 7 8 91011121314151617181920212223242526 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } }} 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 12 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json
  • 状态码 表1 正常返回值 返回值 说明 200 任务提交成功 201 创建成功 表2 异常返回值 返回值 说明 400 Bad Request 请求参数错误。 401 Unauthorized 鉴权失败。 403 Forbidden 没有权限对资源访问。 404 Not Found 请求的资源不存在。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。 父主题: 通用请求返回值
  • 响应示例 状态码: 200 OK { "request_id" : "6a63a18b8bab40ffb71ebd9cb80d0085", "topic_count" : 1, "topics" : [ { "topic_urn" : "urn:smn:regionId:8bad8a40e0f7462f8c1676e3f93a8183:test_topic_v2", "display_name" : "testtest", "name" : "test_topic_v1", "push_policy" : 0, "enterprise_project_id" : "0", "topic_id" : "84698185946d44d08431aa441d8e2cf2" } ]}
  • URI GET /v2/{project_id}/notifications/topics 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取项目ID请参考 获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量。 偏移量为一个大于0小于资源总个数的整数,表示查询该偏移量后面的所有的资源,默认值为0。 缺省值:0 limit 否 Integer 查询的数量限制。 取值范围:1~100,取值一般为10,20,50。功能说明:每页返回的资源个数。默认值为100。 缺省值:100 enterprise_project_id 否 String 企业项目id,默认企业项目id为0。 缺省值:0 name 否 String 检索的主题名称,完全匹配。 fuzzy_name 否 String 检索的主题名称,模糊匹配,按照startwith模式进行匹配。 topic_id 否 String 检索的主题ID,完全匹配。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 topic_count Integer 返回的Topic个数。该参数不受offset和limit影响,即返回的是您账户下所有的Topic个数。 topics Array of ListTopicsItem objects Topic结构体数组。 表5 ListTopicsItem 参数 参数类型 描述 topic_urn String Topic的唯一的资源标识。 name String 创建topic的名字。 display_name String Topic的显示名,推送邮件消息时,作为邮件发件人显示。 push_policy Integer 消息推送的策略,该属性目前不支持修改,后续将支持修改。0表示发送失败,保留到失败队列,1表示直接丢弃发送失败的消息。 enterprise_project_id String 企业项目ID。 topic_id String 主题ID。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。
  • 模板操作 权限 对应API接口 授权项 IAM项目 企业项目 创建消息模板 POST /v2/{project_id}/notifications/message_template smn:template:create √ × 查询消息模板 GET /v2/{project_id}/notifications/message_template smn:template:list √ × 更新消息模板 PUT /v2/{project_id}/notifications/message_template/{message_template_id} smn:template:update √ × 删除消息模板 DELETE /v2/{project_id}/notifications/message_template/{message_template_id} smn:template:delete √ × 父主题: 权限和授权项
  • 操作步骤 Token认证,具体操作请参考认证鉴权。 创建Topic。 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics”。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入如下参数: 详细的参数说明请参见创建主题。 { "name": "test_topic_v2", //Topic名称(必填String) "display_name": "test" , //显示名(非必填String) "enterprise_project_id": "0" //企业项目ID(企业项目场景下为必填String)} 响应示例: { "request_id": "6a63a18b8bab40ffb71ebd9cb80d0085", "topic_urn": "urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_topic_v2" } 添加订阅。 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/{topic_urn}/subscriptions”。 其中,topic_urn可在2.c的返回体中获取。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下。 { "protocol": "email", //订阅协议(必填String) "endpoint": "xxx@xx.com", //邮件地址(必填String) "remark": "订阅终端" //备注(非必填String) } 响应示例: { "subscriptions_result": [{ "request_id": "126c17f805934e5eadf647b0860c7a0a", "subscription_urn": "urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_topic_v2", "http_code": 201}]} 可为Topic添加多种以及多个订阅终端,支持的订阅协议请参考订阅。 订阅终端会收到一条确认订阅的消息,请在邮箱中进行确认订阅的操作。 发送消息。 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/{topic_urn}/publish”。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下: { "subject":"test message v2", //标题,邮件订阅终端使用(非必填String) "message": "Message test message v2." //需要发送的消息(必填String) } 响应示例: { "request_id": "6a63a18b8bab40ffb71ebd9cb80d0085", "message_id": "992bbd32819448af95f83814cb3c7454" } 已完成3.c的确认订阅操作的订阅终端都能接收到该消息,否则无法接收消息。
  • 响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 topic_urn String Topic的唯一的资源标识,可通过查询主题列表获取该标识。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 403 表6 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 404 表7 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 code String 服务异常错误信息编码。 message String 服务异常错误信息描述。
共100000条