华为云用户手册

  • 步骤2:创建APIG触发器 URI:POST /v2/{project_id}/fgs/triggers/{function_urn} API文档详情请参见:创建触发器 请求示例 POST https://{Endpoint}/v2/{project_id}/fgs/triggers/{function_urn}{ "event_data": { "group_id": "a9ad0d5df4d7475c9bc35a7c17d89304", "env_id": "DEFAULT_ENVIRONMENT_RELEASE_ID", "auth": "NONE", "protocol": "HTTP", "name": "API_GetHtml", "path": "/test", "match_mode": "SWA", "req_method": "ANY", "backend_type": "FUNCTION", "sl_domain": "a9ad0d5df4d7475c9bc35a7c17d89304.apig.xxx.xxxapis.com", "type": 1, "env_name": "RELEASE" }, "event_type_code": "APICreated", "trigger_status": "ACTIVE", "trigger_type_code": "APIG"} function_urn为步骤1:创建一个返回的静态页面函数中记录的函数URN,group_id为API分组的ID,sl_domain为APIG给API分组分配的子 域名 。 响应示例 { "trigger_id": "1b3ec74b86454aa39001a9f89cc70ee2", "trigger_type_code": "APIG", "trigger_status": "ACTIVE", "event_data": { "api_id": "cbc698153d1f4265bdd8384b5cf6e581", "api_name": "API_GetHtml", "auth": "NONE", "env_id": "", "env_name": "", "func_info": { "function_urn": "urn:fss:{project_name}:{project_id}:function:default:get_html", "invocation_type": "sync", "timeout": 5000, "version": "latest" }, "group_id": "a9ad0d5df4d7475c9bc35a7c17d89304", "group_name": "APIGroup_gethtml", "invoke_url": "http://a9ad0d5df4d7475c9bc35a7c17d89304.apig.xxx.xxxapis.com/test", "match_mode": "SWA", "name": "API_GetHtml", "path": "/test", "protocol": "HTTP", "req_method": "ANY", "triggerid": "1b3ec74b86454aa39001a9f89cc70ee2", "type": 1 }, "last_updated_time": "2020-06-04T17:14:32+08:00", "created_time": "2020-06-04T17:14:32+08:00"} 记录“invoke_url”的值。
  • 响应示例 状态码: 200 OK [ { "trigger_id" : "1b3b264db3b849118d007884b9bc8a60", "trigger_type_code" : "APIG", "trigger_status" : "ACTIVE", "event_data" : { "api_id" : "4a59f6a7263c4d1dab3f69c34f98d949", "api_name" : "API_test_triggers", "auth" : " IAM ", "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID", "env_name" : "RELEASE", "func_info" : { "function_urn" : "urn:fss:xxxxx:46b6f338fc3445b8846c71dfb1fbxxxx:function:default:test_triggers", "invocation_type" : "sync", "timeout" : 5000, "version" : "latest" }, "group_id" : "9205f83fe721481eb490870d380cf31d", "group_name" : "APIGroup_2mbe", "invoke_url" : "https://ed94ae9494ba4f70ac24224747202140.{apig_endpoint}/test_triggers", "match_mode" : "SWA", "name" : "API_test_triggers", "path" : "/test_triggers", "protocol" : "HTTPS", "req_method" : "ANY", "trigger_id" : "1b3b264db3b849118d007884b9bc8a60", "type" : 1 }, "last_updated_time" : "2022-11-09 16:37:24", "created_time" : "2022-11-09 16:37:24"} ]
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 [数组元素] Array of ListFunctionTriggerResult objects 表4 ListFunctionTriggerResult 参数 参数类型 描述 trigger_id String 触发器ID。 trigger_type_code String 触发器类型。 TIMER: "定时触发器。" APIG: "APIG触发器。" CTS : " 云审计 服务触发器。" DDS: "文档数据库服务触发器。" DMS: "分布式服务触发器。" DIS: " 数据接入服务 触发器。" LTS: " 云日志 服务触发器。" OBS: "对象存储触发器。" SMN : " 消息通知 服务触发器。" KAFKA: "专享版消息通知服务触发器。" 枚举值: TIMER APIG CTS DDS DMS DIS LTS OBS SMN KAFKA RABBITMQ DEDICATEDGATEWAY OPENSOURCEKAFKA APIC GAUSSMONGO EVENTGRID IOTDA trigger_status String "触发器状态" ACTIVE: 启用状态。 DISABLED: 禁用状态。 枚举值: ACTIVE DISABLED event_data Object 触发器源事件。 last_updated_time String 最后更新时间。 created_time String 触发器创建时间。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 使用ClusterServer模式连接实例 样例代码: import org.redisson.Redisson;import org.redisson.api.RedissonClient;import org.redisson.config.Config; public class ClusterServerTests { private static void testClusterServer() { Config config = new Config(); config.useClusterServers() .addNodeAddress("172.xx.xx.xx:8635").setPassword(password); RedissonClient redisson = Redisson.create(config); execute(redisson); // send requests to database redisson.shutdown(); } public static void main(String[] args) { testClusterServer(); }} 上述代码中“172.xx.xx.xx”为待连接 GaussDB (for Redis)实例的负载均衡地址。 您可以单击实例名称,进入“基本信息”页面,在网络信息区域获取“负载均衡地址”。 图3 查看负载均衡地址 上述代码中的“8635”为待连接GaussDB(for Redis)实例的端口,具体请以实际端口为准。获取端口的方法请参见查看IP地址和端口。 GaussDB(for Redis)支持与限制的命令,详情请参见开发规范。 由于GaussDB(for Redis)和开源Redis集群计算hash算法不同,因此GaussDB(for Redis)的部分命令需要给对应的key打上hash tag,否则会出现非预期的行为。hash tag使用建议参考开发规范。
  • 前提条件 创建弹性云服务器,以Linux操作系统为例。详情请参见《弹性云服务器快速入门》中购买弹性云服务器的内容。 已注册域名和弹性公网IP。 GaussDB(for Redis)实例节点需要绑定弹性公网IP并设置安全组规则,具体操作请参见绑定弹性公网IP和配置安全组规则。 GaussDB(for Redis)实例下存在多个节点,选择任意一个节点绑定弹性公网IP即可。 下载Redis客户端安装包。
  • 实例状态 数据库实例状态是数据库实例的运行情况。可以通过管理控制台查看数据库实例状态。 表1 实例状态 状态 说明 正常 数据库实例正常和可用。 异常 数据库实例不可用。 创建中 正在创建数据库实例。 创建失败 数据库实例创建失败。 重启中 正在重启数据库实例。 重置密码中 正在重置管理员密码。 节点扩容中 正在扩容该实例下的节点个数。 节点缩容中 正在删除该实例下的节点。 存储扩容中 正在扩容实例的磁盘容量。 规格变更中 正在变更实例的CPU和内存规格。 转包周期中 实例的计费方式正在由“按需计费”转为“包年/包月”。 转按需中 实例的计费方式正在由“包年/包月”转为“按需计费”。 备份上传中 正在上传备份文件。 备份中 正在创建数据库备份。 恢复检查中 该实例下的备份正在恢复到新实例。 SSL切换中 正在开启或关闭SSL安全连接。 冻结 账户余额小于或等于0元,系统对该用户下的实例进行冻结。您需前往费用中心充值成功,欠款核销后,冻结的实例才会解冻。 解冻中 欠款核销后,正在解冻数据库实例。 包周期变更资源检查中 包周期实例在进行变更过程中所持续的状态。 父主题: 用户指南
  • 使用JedisCluster访问 样例代码 import org.apache.commons.pool2.impl.GenericObjectPoolConfig;import redis.clients.jedis.HostAndPort;import redis.clients.jedis.JedisCluster;public class ClusterTests { private static void testCluster() { String pwd = "a"; JedisCluster cluster = new JedisCluster(new HostAndPort("172.xx.xx.xx", 8635), 200, 2000, 5, pwd, new GenericObjectPoolConfig()); System.out.println(cluster.hgetAll("676296")); System.out.println(cluster.set("key1", "value1")); } public static void main(String[] args) { testCluster(); }}
  • 前提条件 已成功创建GaussDB(for Redis)实例,且实例状态正常。创建GaussDB(for Redis)实例的方法请参见购买实例(成本优先)。 已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器快速入门》中“创建弹性云服务器”章节。 弹性云服务器上已经安装GCC等编译工具。 创建的弹性云服务器与GaussDB(for Redis)实例要保证区域、可用区、VPC和安全组一致。
  • 布隆过滤器 GaussDB(for Redis)的布隆过滤器底层使用Hash结构实现,请不要使用Hash类型的同名Key。 表15 布隆过滤器支持与限制的命令 命令名称 GaussDB(for Redis)是否支持该命令 是否支持在Lua脚本中执行 备注 bf.reserve √ √ 出于安全考虑,bf.reserve初始设置的capacity上限为2621440, 当输入的capacity值超过2M时会将capacity自动设置为2M。如需要更大的capacity,请使用布隆过滤器的扩展功能,expansion参数上限为10,超过限制时会调整为10。 bf.add √ √ - bf.exists √ √ - bf.madd √ √ - bf.mexists √ √ - bf.insert √ √ 出于安全考虑,bf.reserve初始设置的capacity上限为2621440(2M), 当输入的capacity值超过2M时会将capacity自动设置为2M。如需要更大的capacity,请使用布隆过滤器的扩展功能,expansion参数上限为10,超过限制时会调整为10。 部分命令的校验相比开源更严谨,如bf.insert中,不允许同时使用expansion与nonscaling这两个语义上冲突的选项。 bf.info √ √ - bf.loadchunk × × - bf.scandump × × -
  • Pub/Sub类型 表13 Pub/Sub类型支持与限制的命令 命令名称 GaussDB(for Redis)是否支持该命令 是否支持在Lua脚本中执行 是否需要给多key增加相同hashtag 备注 psubscribe √ × × 在执行pub/sub命令的连接时,不允许执行常规命令(如set/get等),因为GaussDB(for Redis)多线程架构下,常规命令会通过多线程执行来提升性能,但是由于pubsub命令采用专有线程处理,普通命令和pubsub混用连接后会导致普通命令也无法使用多线程,从而影响影响性能。 publish √ × × - pubsub √ × × 原生Redis的pubsub channels命令返回值不排序,每次返回不一致;GaussDB(for Redis)的返回值一致。 punsubscribe √ × × - subscribe √ × × 在执行pub/sub命令的连接时,不允许执行常规命令(如set/get等),因为GaussDB(for Redis)多线程架构下,常规命令会通过多线程执行来提升性能,但是由于pubsub命令采用专有线程处理,普通命令和pubsub混用连接后会导致普通命令也无法使用多线程,从而影响影响性能。 unsubscribe √ × × -
  • 冻结、解冻、释放资源时对业务的影响 资源冻结时: 资源将被限制访问和使用,会导致您的业务中断。例如GaussDB(for Cassandra)被冻结时,会使得用户无法再连接至数据库。 包周期资源被冻结后,将被限制进行变更操作。 资源被冻结后,可以手动进行退订/删除。 资源解冻时:资源将被解除限制,用户可以连接至数据库。 资源释放时:资源将被释放,实例将被删除,删除前将依据用户策略决定是否执行回收站备份。
  • 解决方案 通过查看监控指标,观察单个节点的CPU使用率、读写pending、读写时延等指标的使用情况。 如果单个节点负载已经达到上限,则需要进行节点个数扩容,具体操作请参见添加节点。 如果单个节点负载还处于较低水平,则需要调整Driver端的配置。 将“ConnectionsPerHost”调大, 但需要所有连接对该集群总的连接数,不超过用户设置的告警阈值。 将“MaxRequestsPerConnection”调大 ,调整时,不要超过单个节点的负载能力,需要观察CPU,读写时延,读写pending个数指标。
  • 可能原因 客户端的并发数受限于Driver的配置参数,主要和Host个数,Session个数,ConnectionsPerHost,MaxRequestsPerConnection这几个参数相关。 例如:用户启动一个Cluster,一个Cluster建立了一个Session,集群中有3个Host, ConnectionsPerHost设置为2,MaxRequestsPerConnection使用默认值128,则该Session总的最大并发请求数为768,单个节点最大请求数为256。 详细的参数解析请见官方文档。
  • 解决方案 在cqlsh同目录下执行如下命令,查找到cqlshrc文件。 touch cqlshrc rm -rf ~/.cassandra/cqlshrc* cqlshrc文件中配置如下内容,并保存。 [csv] field_size_limit = 9223372036854775807 通过cqlsh连接实例时,增加如下参数。 –cqlshrc=cqlshrc 命令示例:cqlsh 127.0.0.1 8635 -u rwuser -p password --cqlshrc=cqlshrc
  • 使用限制 物化视图的primary key必须包含源表的所有primary key,不允许使用静态列。 视图中primary key的所有列必须是“IS NOT NULL”。 任何物化视图中,必须将一个cql行从源表映射到物化视图的另一行,即视图和源表之间的行是逐一对应的。 创建物化视图的select语句的where条件中,不能对视图的非primary key列进行限制,“IS NOT NULL”除外。 图1 示例 不支持使用静态列、counter、superColumn、duration类型。
  • 如何使用物化视图 在源表中插入一条记录,并查询结果。 源表示例: CREATE TABLE person ( id int, name text, addr text, age int, email text, PRIMARY KEY (id, name)); 插入一条记录: insert into person(id, name, age, addr, email) values (0, 'ruby', 26, 'beijing', 'ruby@email.com'); 查看数据插入结果: 图2 查询结果 创建物化视图。 CREATE MATERIALIZED VIEW person_addr AS SELECT * from person WHERE id IS NOT NULL AND addr IS NOT NULL AND name IS NOT NULL primary key (addr, id, name); “system_schema.views”记录了视图和源表的关联关系: 图3 视图与源表的关联关系 不符合该条件的查询不显示,示例:IS NOT NULL。 插入“addr”为“null”的记录。 insert into person(id, name, age, addr, email) values (1, 'mike', 30, null, 'mike@email.com'); 查看源表数据和物化视图数据: 图4 查询结果 删除物化视图。 DROP MATERIALIZED VIEW person_adder; 图5 删除视图
  • GaussDB(for Cassandra)的包年/包月和按需计费模式有什么区别 包年/包月的计费模式也称为包周期计费模式,是一种预付费方式,按订单的购买周期计费,适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于长期使用者,推荐该方式。 按需计费是后付费模式,按实际使用时长计费,这种购买方式比较灵活,可以即开即停。以自然小时为单位整点计费,不足一小时按使用时长计费。 父主题: 计费相关
  • COUNT查询 在数据库大的情况下,请不要使用如下语句进行查询,避免出现查询失败的情况。 select count(*) from "test" where sds_uid='100000000000000006250004'; 建议使用如下语句进行查询: select sum(row_count) From system_distributed.size_estimates WHERE keyspace_name='' and table_name=''; 该查询是一个异步后台任务,不能实时查询到完全准确的数值,对数据量评估只能做参考。
  • 概述 视频直播 服务为您提供了Referer防盗链、Key防盗链和IP黑白名单鉴权机制,对访问者的身份进行识别和过滤,符合规则的才可使用直播服务。 其中,Key防盗链鉴权功能旨在保护直播源站资源不被非法下载盗用。采用Referer防盗链方法添加Referer黑、白名单方式可以解决部分盗链问题。但是,由于Referer内容可以伪造,所以Referer防盗链方式不能很好的保护直播源站的资源。因此,建议采用Key防盗链鉴权方式保护直播源站资源更为安全有效。视频直播服务鉴权机制如表1所示。 表1 直播鉴权 项目 描述 配置 Referer防盗链 您可以配置访问的Referer黑白名单,对访问者身份进行识别和过滤。 请参见Referer防盗链。 Key防盗链 您可以配置防盗链Key,通过URL鉴权方式保障直播资源的安全。 请参见Key防盗链。 IP黑白名单 您可以配置访问的IP黑白名单,对访问者身份进行识别和过滤。 请参见IP黑白名单。 父主题: 播放鉴权
  • 中级CA机构颁发的证书 中级机构颁发的证书文件包含多份证书,配置HTTPS时,需要将所有证书拼接在一起组成一份完整的证书后再上传。拼接后的证书类似图2。 通过记事本打开所有*.PEM格式的证书文件,将服务器证书放在首位,再放置中间证书。一般情况下,机构在颁发证书的时候会有对应说明,请注意查阅相关规则。通用的规则如下: 证书之间没有空行。 证书链的格式如下: -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
  • RSA私钥格式要求 PEM格式的文件可以存放证书或私钥,如果*.PEM只包含私钥,一般用*.KEY代替。 通过记事本打开*.PEM或*.KEY的私钥文件,可以查看到类似图3所示的全部私钥信息。 RSA格式私钥: 以证书链“-----BEGIN RSA PRIVATE KEY-----”开头,以证书链“-----END RSA PRIVATE KEY-----”结尾。 证书链之间的内容,要求每行64个字符,最后一行允许不足64个字符。 证书内容不包含空格。
  • Root CA机构颁发的证书 Root CA机构颁发的证书是一份完整的证书,配置HTTPS时,仅上传该证书即可。 通过记事本打开*.PEM格式的证书文件,可以查看到类似图1所示的全部证书信息。 PEM格式证书: 以证书链“-----BEGIN CERTIFICATE-----”开头,以证书链“-----END CERTIFICATE-----”结尾。 证书链之间的内容,要求每行64个字符,最后一行允许不足64个字符。 证书内容不包含空格。
  • 格式转换 配置HTTPS仅支持PEM格式的证书/私钥,其他格式均不支持。其他格式的证书/私钥需要转换成PEM格式,建议通过OpenSSL工具进行转换。下面是几种比较流行的证书格式转换为PEM格式的方法。 以下示例均假设转换前证书名为old_certificate,私钥名为old_key,转换后证书名为new_certificate,私钥文件名为new_key。 DER转换为PEM openssl x509 -inform der -in old_certificate.cer -out new_certificate.pemopenssl rsa -inform DER -outform pem -in old_key.der -out new_key.pem P7B转换为PEM openssl pkcs7 -print_certs -in old_certificate.p7b -out new_certificate.cer PFX转换为PEM openssl pkcs12 -in old_certificat.pfx -nokeys -out new_certificate.pemopenssl pkcs12 -in old_certificat.pfx -nocerts -out new_key.pem 若需要将PK CS 8格式私钥转换为PKCS1格式,则参考如下方法: openssl rsa -in old_certificat.pem -out pkcs1.pem
  • 录制流程 直播录制管理相关操作流程,如图1所示。 图1 直播录制至VOD流程图 配置消息通知(可选):若您需要实时了解录制的状态,可以在直播开始录制前,配置录制通知。若您不需要消息通知,可直接跳转到2。 配置录制模板:为直播配置录制规则,配置完成后,与推流地址中的AppName相同的录制规则生效。 推流:录制规则配置完成后,获取推流地址进行直播推流,直播服务会根据配置的录制规则对正在直播的视频进行录制。 管理录制文件:直播录制完成后,可以在直播服务中获取录制文件基本信息并预览,也可以在点播服务中管理录制文件,如预览、发布、转码和播放等。
  • 费用说明 直播的消息通知将用到消息通知服务,实际使用的消息通知费用由消息通知服务单独收取,具体价格详情请参见SMN价格详情。 直播录制生成的视频文件是存储在点播服务中,因此,产生的相关费用是按点播的价格进行计费收取的,具体价格详情请参见VOD价格详情。 录制文件存储费用 按录制文件的实际大小收费,若配置了录制转码,原始录制文件和转码录制文件都将产生存储费用。 录制文件转封装费用 仅在勾选了“录制转码格式”时才产生该项费用。录制文件上传点播系统后,点播将使用转封装模板对录制文件的格式进行转换,将产生转封装费用。若勾选多种格式,则产生多份转封装费用。
  • 修改/删除录制回调配置 录制回调配置完成后,您还可以根据实际需要进行如下操作。 修改录制回调配置 录制回调配置完成后,若您需要修改部分参数,可以在录制模板回调配置列表中通过单击操作列的“修改”,修改录制回调配置中的相关参数。 图2 修改录制回调信息 删除录制回调配置 录制回调配置完成后,若您需要删除录制回调配置,可以在录制回调配置列表中通过单击操作列的“删除”,删除该录制回调配置。 图3 删除录制回调信息
  • 回调示例 录制文件生成事件回调示例如下。回调消息体字段如表2所示。 { "project_id": "70b76xxxxxx34253880af501cdxxxxxx", "job_id": "dc0a1773-0cef-xxxx-xxxx-9a38fdb095d2", "task_id": "51126d0ebe94b1da00d2e21a10xxxxxx", "event_type": "RECORD_FILE_COMPLETE", "publish_domain": "push.example.com", "app": "live", "stream": "mystream", "record_format": "HLS", "download_url": "https://obs.cn-north-4.myhuaweicloud.com/live/record-xxxx-mystream-1589967495/record-push.example.com-live-mystream-1589967495.m3u8", "asset_id": "1a0d8e9bfaexxxxxxbe5021e62aa1e96", "play_url": "https://2-cn-north-4.cdn-vod.huaweicloud.com/asset/1a0d8e9bfae388cxxxxxx21e62aa1e96/55c634374750cexxxxxxc035a26ecfac.m3u8", "file_size": 3957964, "record_duration": 120, "start_time": "2020-03-08T14:10:25Z", "end_time": "2020-03-08T14:12:25Z", "width": 1280, "height": 720, "obs_location": "https://obs.cn-north-4.myhuaweicloud.com", "obs_bucket": "mybucket", "obs_object": "live/record-xxxx-mystream-1589967495/record-hwpublish.myun.tv-live-mystream-1589967495.m3u8", "auth_sign": "4f97f46759axxxxxx7ad21e9935dc175", "auth_timestamp": 1587954140}
  • RSA私钥格式要求 PEM格式的文件可以存放证书或私钥,如果*.PEM只包含私钥,一般用*.KEY代替。 通过记事本打开*.PEM或*.KEY的私钥文件,可以查看到类似图3所示的全部私钥信息。 RSA格式私钥: 以证书链“-----BEGIN RSA PRIVATE KEY-----”开头,以证书链“-----END RSA PRIVATE KEY-----”结尾。 证书链之间的内容,要求每行64个字符,最后一行允许不足64个字符。 证书内容不包含空格。
  • 格式转换 配置HTTPS仅支持PEM格式的证书/私钥,其他格式均不支持。其他格式的证书/私钥需要转换成PEM格式,建议通过OpenSSL工具进行转换。下面是几种比较流行的证书格式转换为PEM格式的方法。 以下示例均假设转换前证书名为old_certificate,私钥名为old_key,转换后证书名为new_certificate,私钥文件名为new_key。 DER转换为PEM openssl x509 -inform der -in old_certificate.cer -out new_certificate.pemopenssl rsa -inform DER -outform pem -in old_key.der -out new_key.pem P7B转换为PEM openssl pkcs7 -print_certs -in old_certificate.p7b -out new_certificate.cer PFX转换为PEM openssl pkcs12 -in old_certificat.pfx -nokeys -out new_certificate.pemopenssl pkcs12 -in old_certificat.pfx -nocerts -out new_key.pem 若需要将PKCS8格式私钥转换为PKCS1格式,则参考如下方法: openssl rsa -in old_certificat.pem -out pkcs1.pem
  • 中级CA机构颁发的证书 中级机构颁发的证书文件包含多份证书,配置HTTPS时,需要将所有证书拼接在一起组成一份完整的证书后再上传。拼接后的证书类似图2。 通过记事本打开所有*.PEM格式的证书文件,将服务器证书放在首位,再放置中间证书。一般情况下,机构在颁发证书的时候会有对应说明,请注意查阅相关规则。通用的规则如下: 证书之间没有空行。 证书链的格式如下: -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
共100000条