华为云用户手册

  • 按文件夹分组列举所有对象 OBS本身是没有文件夹的概念的,桶中存储的元素只有对象。文件夹对象实际上是一个大小为0且对象名以“/”结尾的对象,将这个文件夹对象名作为前缀,即可模拟列举文件夹中对象的功能。以下代码展示如何列举文件夹中的对象: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint/*, obs.WithSecurityToken(securityToken)*/) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.ListObjectsInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定返回的最大对象数,此处以 100 为例,返回的对象列表将是按照字典顺序的最多前max-keys个对象,默认值为1000。 input.MaxKeys = 100 // 指定对象名分组的分隔符,这里以/为例。 input.Delimiter = "/" // 列举桶内对象 output, err := obsClient.ListObjects(input) if err == nil { fmt.Printf("List objects under the bucket(%s) successful!\n", input.Bucket) fmt.Printf("RequestId:%s\n", output.RequestId) for index, val := range output.Contents { fmt.Printf("Content[%d]-OwnerId:%s, ETag:%s, Key:%s, LastModified:%s, Size:%d\n", index, val.Owner.ID, val.ETag, val.Key, val.LastModified, val.Size) } return } fmt.Printf("List objects under the bucket(%s) fail!\n", input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • 指定前缀列举 本示例用于指定前缀列举对象。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint/*, obs.WithSecurityToken(securityToken)*/) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.ListObjectsInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定列举对象前缀,此处以“test/”前缀为例,满足指定前缀的对象会被列举。 input.Prefix = "test/" // 指定返回的最大对象数,此处以 100 为例,返回的对象列表将是按照字典顺序的最多前max-keys个对象,默认值为1000。 input.MaxKeys = 100 // 列举桶内对象 output, err := obsClient.ListObjects(input) if err == nil { fmt.Printf("List objects under the bucket(%s) successful!\n", input.Bucket) fmt.Printf("RequestId:%s\n", output.RequestId) for index, val := range output.Contents { fmt.Printf("Content[%d]-OwnerId:%s, ETag:%s, Key:%s, LastModified:%s, Size:%d\n", index, val.Owner.ID, val.ETag, val.Key, val.LastModified, val.Size) } return } fmt.Printf("List objects under the bucket(%s) fail!\n", input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • 指定数目列举 本示例用于指定数目列举对象。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint/*, obs.WithSecurityToken(securityToken)*/) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.ListObjectsInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定返回的最大对象数,此处以 100 为例,返回的对象列表将是按照字典顺序的最多前max-keys个对象,默认值为1000。 input.MaxKeys = 100 // 列举桶内对象 output, err := obsClient.ListObjects(input) if err == nil { fmt.Printf("List objects under the bucket(%s) successful!\n", input.Bucket) fmt.Printf("RequestId:%s\n", output.RequestId) for index, val := range output.Contents { fmt.Printf("Content[%d]-OwnerId:%s, ETag:%s, Key:%s, LastModified:%s, Size:%d\n", index, val.Owner.ID, val.ETag, val.Key, val.LastModified, val.Size) } return } fmt.Printf("List objects under the bucket(%s) fail!\n", input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • 分页列举全部对象 本示例用于分页列举全部对象。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 // 本示例用于分页列举桶examplebucket的所有文件 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityToken(securityToken)) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.ListObjectsInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定返回的最大对象数,此处以 100 为例,返回的对象列表将是按照字典顺序的最多前max-keys个对象,默认值为1000。 input.MaxKeys = 100 // 指定编码方式,此处以“url”为例,如果列举对象中存在特殊字符,则该参数必传 input.EncodingType = "url" for { // 列举桶内对象 output, err := obsClient.ListObjects(input) if err != nil { fmt.Printf("List objects under the bucket(%s) fail!\n", input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } os.Exit(-1) } // 打印列举结果。默认情况下,一次返回100条记录。 fmt.Printf("List objects under the bucket(%s) successful!\n", input.Bucket) for index, val := range output.Contents { fmt.Printf("Content[%d]-OwnerId:%s, ETag:%s, Key:%s, LastModified:%s, Size:%d\n", index, val.Owner.ID, val.ETag, val.Key, val.LastModified, val.Size) } if output.IsTruncated { input.Marker = output.NextMarker } else { break } } }
  • 简单列举 本示例用于简单列举对象,最多返回1000个对象。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint/*, obs.WithSecurityToken(securityToken)*/) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.ListObjectsInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 列举桶内对象 output, err := obsClient.ListObjects(input) if err == nil { fmt.Printf("List objects under the bucket(%s) successful!\n", input.Bucket) fmt.Printf("RequestId:%s\n", output.RequestId) for index, val := range output.Contents { fmt.Printf("Content[%d]-OwnerId:%s, ETag:%s, Key:%s, LastModified:%s, Size:%d\n", index, val.Owner.ID, val.ETag, val.Key, val.LastModified, val.Size) } return } fmt.Printf("List objects under the bucket(%s) fail!\n", input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • 接口约束 每次接口调用最多返回1000个对象信息。 您必须是桶拥有者或拥有列举桶内对象的权限,才能列举桶内对象。建议使用 IAM 或桶策略进行授权,如果使用IAM则需授予obs:bucket:ListBucket权限,如果使用桶策略则需授予ListBucket权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、自定义创建桶策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。
  • 操作步骤 登录 云日志 服务控制台。 在左侧导航栏中,选择“日志管理”,进入日志管理页面。 在日志管理页面中,选择目标日志组和日志流,进入日志流详情页面。 在日志流详情页面中,输入查询和分析语句,然后单击15分钟(相对),设置查询和分析的时间范围。 选择“可视化”,单击图标。 在通用配置页签中,配置柱状图参数,查看柱状图。 表1 柱状图参数说明表 类别 参数 说明 标准配置 格式化 将Y轴按照指定格式进行显示。 单位 自定义配置Y轴的单位。 小数点位数 设置显示数值小数点位数。 图表名称字号 设置图表名称的字号大小。 柱配置 方向 选择基础柱状图或横向柱状图。 柱宽度 设置柱宽度。 是否显示值 开启后,显示各个条形体对应的数值。 值字体大小 设置各个条形体对应的数值字体大小 是否堆叠 开启后,将堆叠显示Y轴数据。 查询分析设置 X轴数据 支持数字或字符串数据。 Y轴数据 支持数字或字符串数据,可以选择多个数据。 图例配置 隐藏图例 开启后,可以隐藏图例和对比值的显示。 图例位置 图例在图表中的位置,选择图表顶部或图表右边。 对比数值 选择显示最大值、最小值、平均值、求和值等,可勾选多个。 图形配置 上边距 坐标轴距离图表上边界距离。 下边距 坐标轴距离图表下边界距离。 左边距 坐标轴距离图表左边界距离。 右边距 坐标轴距离图表右边界距离。 Tooltip配置 不排序、升序、降序 提示框配置,当Y轴数据选择多个时,可对其进行排序显示。 X轴 显示X轴 开启后,显示X轴数据。 X轴名称 设置X轴名称。 Y轴 显示Y轴 开启后,显示Y轴数据。 Y轴名称 设置Y轴名称。 图1 柱状图
  • 多个数据源编排 一个数据API可以包含多个数据源,因此一次API请求可以涉及多个数据源,例如取第一个数据源查询结果作为第二个数据源的参数。 以MySQL为例说明,假设数据API有数据源1和数据源2,user01是数据源1的数据表和user02是数据源2的数据表,两张表的结构如下: 表1 表结构 数据源 表名 参数 数据源1 user01 id(int) name(varchar) 数据源2 user02 user_id(int) user_age(int) user_sex(varchar) 数据源SQL设计如下: 数据源1,在表user01中查找name为“zhang”的数据记录id。假设数据源1的返回对象为“default1”。 select id from user01 where name='zhang'; 数据源2,根据user01中找到的id,在user02中找到对应的数据记录user_age。假设数据源2的返回对象为“default2”。 select user_age from user02 where user_id=${default1[0].id}; 其中,${default1[0].id}为数据源1的查询结果(default1为数据源1的返回对象,id为数据源1的查询字段)。 假设,数据表user01和user02中有如下数据记录: user01 user02 id name user_id user_age user_sex 1 zhang 2 17 女 2 li 3 18 男 3 wang 1 18 男 则调用该数据API将返回如下响应: { "default1":[{ "id":1 }], "default2":[{ "user_age":18 }] } 父主题: 自定义后端开发(数据后端)
  • 远程连接数据库 以root用户登录申请的弹性云服务器。 上传客户端工具包并配置gsql的执行环境变量。 执行以下命令创建“/tmp/tools”目录,用以存放客户端工具包。 mkdir /tmp/tools 参考获取驱动包,下载对应版本“ GaussDB _driver.zip”驱动包,并将其上传到申请的弹性云服务器“/tmp/tools”路径下。 执行以下命令解压“GaussDB_driver.zip”驱动包。 cd /tmp/tools unzip GaussDB_driver.zip 执行以下命令将解压出来的“GaussDB-Kernel_VxxxRxxxCxx_EULER_64bit-Gsql.tar.gz”客户端工具包拷贝到“/tmp/tools”路径下。 客户端工具包相对位置为解压后位置,请根据实际情况填写。此处以主备版实例Euler2.5_x86_64系统的gsql工具包为例。 cd /tmp/tools/GaussDB_driver/Centralized/Euler2.5_X86_64/ cp GaussDB-Kernel_VxxxRxxxCxx_EULER_64bit_Gsql.tar.gz /tmp/tools 执行以下命令解压文件。 cd /tmp/tools tar -zxvf GaussDB-Kernel_VxxxRxxxCxx_EULER_64bit_Gsql.tar.gz 配置环境变量。 执行以下命令打开“~/.bashrc”文件。 vim ~/.bashrc 按“G”将光标移至最后一行,按“i”进入INSERT模式,输入如下内容后,单击“ESC”退出INSERT模式,输入“:wq”命令保存并退出。 export PATH=/tmp/tools/bin:$PATH export LD_LIBRARY_PATH=/tmp/tools/lib:$LD_LIBRARY_PATH 执行以下命令使环境变量配置永久生效。 source ~/.bashrc 执行如下指令,根据提示输入密码,连接数据库。 数据库创建成功后,会默认生成名称为postgres的数据库,此处以postgres库为例。 gsql -d postgres -h 10.0.0.0 -U root -p 8000 Password for user root: postgres为需要连接的数据库名称,10.0.0.0为实例绑定的公网IP地址,root为登录数据库的用户名,8000为实例的端口号。
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 准备软件 制作Windows操作系统私有镜像需准备的软件如表1所示。 表1 所需软件包 软件包名称 软件包说明 获取方式 Workspace_HDP_WindowsDesktop_Installer_x.x.x.iso Windows镜像制作工具。 点此获取镜像制作工具 点此获取镜像工具校验文件 操作系统ISO文件 Windows 10 64位(中文,英文) Windows Server 2016标准版本 64位(中文、英文) Windows Server 2019标准版本 64位(中文、英文 请根据用户桌面需求类型从微软或者其他合法渠道获取正规操作系统ISO镜像文件。 须知: 操作系统的ISO镜像文件需为从正规渠道获取的官方纯净镜像。非官方镜像或私有定制镜像,对操作系统做了很多未知的修改,可能导致模板制作失败,或者与HDP不兼容导致无法使用,请勿使用此类镜像。 AnyBurn 光驱制作工具。 点此获取 VMTools驱动包 VMTools驱动 具体参考 镜像服务 安装UVP VMTools章节获取软件包下载链接。 应用程序 请用户根据个人需求准备应用软件(如办公、实时通讯等软件)。 自备 7z1900-x64.exe 7-Zip压缩软件,用于压缩/解压缩的软件包。 点此获取 VC_redist.x64.exe Visual Studio 2017运行库,安装桌面应用运行的基础库。 获取路径: 截至文档发布日期为止,有效链接为:点此获取 CloudbaseInitSetup_xxx.msi 在使用镜像创建云服务器时,可自定义设定云服务器的hostname、hosts文件以及用户名密码。 根据Windows操作系统的不同位数,您需要下载不同版本的Cloudbase-Init工具安装包。 Cloudbase-Init分为稳定版本和Beta版本两种。 稳定版本获取路径: 64位:点此获取 32位:点此获取 Beta版本获取路径: 64位:点此获取 32位:点此获取 说明: 外设驱动程序 请用户根据个人需求准备外设驱动程序。 自备 HW.SysAgent.Installer_64.msi HW.SysPrep.Installer_64.msi 桌面发放和HDA升级时使用。 安装方式:双击安装。 点此获取HW.SysAgent 点此获取HW.SysAgent校验文件 点此获取HW.SysPrep 点此获取HW.SysPrep校验文件 WKSAppCenterAgent.msi WKSAppCenter.msi 云桌面 使用应用中心需要安装。 安装方式:双击安装 点此获取WKSAPPCenterAgent 点此获取WKSAPPCenterAgent校验工具 点此获取WKSAppCenter 点此获取WKSAppCenter校验工具 父主题: 制作Windows普通桌面私有镜像
  • 上架流程 1、成为云商店服务商; 2、准备生产接口服务器,开发生产接口,可参考《SaaS类商品接入指南》; 3、调试生产接口成功并保存用例; 4、完成安全 漏洞扫描 ; 5、进入卖家中心商品发布页面,选择接入类型为“SaaS”; 6、填写商品信息,可参考《SaaS商品发布信息填写说明》; 7、提交商品发布申请; 8、云商店运营经理审核通过; 9、商品上架成功。 联营SaaS类商品接入可参考《联营SaaS类商品接入指导视频》。
  • URI URI格式 DELETE https://{Endpoint}/v3/{project_id}/instances/{instance_id}/kill-op-rule URI样例 https://dds.cn-north-1.myhuaweicloud.com/v3/2900b7b8d03e4619b8db8d43bc6234ee/instances/6390733773d64a748f3a7bc88df22384in02/kill-op-rule 表1 请求参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 从IAM服务获取的用户Token。请参考认证鉴权。 project_id 是 String 租户在某一Region下的项目ID。请参考获取项目ID章节获取项目编号。 instance_id 是 String 实例ID,可以调用“查询实例列表和详情”接口获取。如果未申请实例,可以调用“创建实例”接口创建。
  • 请求消息 参数说明 表2 请求Body参数 参数 是否必选 参数类型 描述 ids 是 Array of strings killOp规则ID列表。 action 是 String 启用/禁用 killOp规则。 enable,启用killOp规则。 disable,禁用killOp规则。 请求示例 { "ids" : [ "7d2f36b4-6edb-4093-8c78-810b30232943" ], "action" : "enable" }
  • URI URI格式 PUT https://{Endpoint}/v3/{project_id}/instances/{instance_id}/kill-op-rule URI样例 https://dds.cn-north-1.myhuaweicloud.com/v3/2900b7b8d03e4619b8db8d43bc6234ee/instances/6390733773d64a748f3a7bc88df22384in02/kill-op-rule 表1 请求参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 从IAM服务获取的用户Token。请参考认证鉴权。 project_id 是 String 租户在某一Region下的项目ID。请参考获取项目ID章节获取项目编号。 instance_id 是 String 实例ID,可以调用“查询实例列表和详情”接口获取。如果未申请实例,可以调用“创建实例”接口创建。
  • 响应消息 参数说明 表3 响应Body参数 参数 参数类型 说明 rules Array of 表4 列表。 total_count Integer 总数。 表4 KillOpRule参数 参数 参数类型 说明 id String killOp规则ID。 operation_types String Sql语句操作类型。最多支持同时选择6种语句类型。同时选择多种类型时,匹配任意一种类型时规则生效。 insert,表示插入语句。 update,表示更新语句。 query,表示查询语句。 command,表示命令语句。 remove,表示删除语句。 getmore,表示获取更多数据语句。 status String killOp规则状态。 ENABLED,规则生效中。 DISABLED,规则禁用中。 namespaces String 表命名空间。取值格式:库名或者库名.表名。同时配置多组信息时,匹配任意一组信息时规则生效。 目前仅支持配置一组信息 可为空,表示不做限制。 单独库名,表示对某个库下的所有集合生效。 库名.表名,表示对具体库下的具体的集合生效。 client_ips String 客户端连接IP。 只支持IPV4。 可为空,表示不做限制。 最多支持配置5个IP,同时配置多个IP时,匹配任意一个IP时规则生效。 plan_summary String 执行计划。默认值空,表示不做限制。 COLLSCAN SORT_KEY_GENERATOR SKIP LIMIT GEO_NEAR_2DSPHERE GEO_NEAR_2D AGGREGATE OR max_concurrency Integer 最大并发数。 取值:不能为负数,可为空,默认为0,表示不做限制,最小值为1,最大值为100000。 secs_running Integer 单条操作最大运行时长。 取值:不能为负数,可为空,默认为0,表示不做限制。单位:s。最小值为2,最大值为86400。 node_type String 节点类型。 mongos_shard,表示同时在mongos和shard节点生效。 mongos,表示只在集群mongos节点生效。 shard,表示只在集群shard节点生效。 replica,表示只在副本集节点生效。 响应示例 killOp规则列表: { "rules" : [ { "operation_types" : [ "query", "insert" ], "namespaces" : [ "db.collections" ], "client_ips" : [ "172.168.201.144" ], "status" : "ENABLED", "id" : "f6f2cea4-ce40-4d4c-9d2f-61253d215811", "plan_summary" : "COLLSCAN", "max_concurrency" : 0, "secs_running" : 5, "node_type" : "replica" } ], "total_count" : 1 }
  • URI URI格式 DELETE https://{Endpoint}/v3/{project_id}/instances/{instance_id}/readonly-node URI样例 https://dds.cn-north-1.myhuaweicloud.com/v3/0549b4a43100d4f32f51c01c2fe4acdb/instances/9136fd2a9fcd405ea4674276ce36dae8in02/readonly-node 表1 请求参数 名称 类型 IN 是否必选 描述 X-Auth-Token string header 是 从IAM服务获取的用户Token。请参考认证鉴权。 project_id string path 是 租户在某一Region下的项目ID。请参考获取项目ID章节获取项目编号。 instance_id string path 是 实例ID,可以调用“查询实例列表和详情”接口获取。如果未申请实例,可以调用“创建实例”接口创建。
  • 请求消息 参数说明 表2 Query参数 参数 是否必选 参数类型 描述 operation_types 是 Array of strings Sql语句操作类型。最多支持同时选择6种语句类型。同时选择多种类型时,匹配任意一种类型时规则生效。 insert,表示插入语句。 update,表示更新语句。 query,表示查询语句。 command,表示命令语句。 remove,表示删除语句。 getmore,表示获取更多数据语句。 namespaces 否 Array of strings 表命名空间。取值格式:库名或者库名.表名。同时配置多组信息时,匹配任意一组信息时规则生效。 目前仅支持配置一组信息 可为空,表示不做限制。 单独库名,表示对某个库下的所有集合生效。 库名.表名,表示对具体库下的具体的集合生效。 client_ips 否 Array of strings 客户端连接IP。 只支持IPV4。 可为空,表示不做限制。 最多支持配置5个IP,同时配置多个IP时,匹配任意一个IP时规则生效。 plan_summary 否 String 执行计划。默认值空,表示不做限制。 COLLSCAN SORT_KEY_GENERATOR SKIP LIMIT GEO_NEAR_2DSPHERE GEO_NEAR_2D AGGREGATE OR max_concurrency 否 Integer 最大并发数。 取值:不能为负数,可为空,默认为0,表示不做限制,最小值为1,最大值为100000。 max_concurrency和secs_running不可同时为0。 secs_running 否 Integer 单条操作最大运行时长。 可为空,默认为0,表示不做限制。单位:s。最小值为2,最大值为86400。 secs_running和max_concurrency不可同时为0。 node_type 是 String 节点类型。 mongos_shard,表示同时在mongos和shard节点生效。 mongos,表示只在集群mongos节点生效。 shard,表示只在集群shard节点生效。 replica,表示只在副本集节点生效。 请求示例 { "operation_types" : [ "query", "insert" ], "namespaces" : [ "db.collections" ], "client_ips" : [ "172.168.201.144" ], "plan_summary" : "COLLSCAN", "max_concurrency" : 0, "secs_running" : 5, "node_type" : "replica" }
  • URI URI格式 POST https://{Endpoint}/v3/{project_id}/instances/{instance_id}/kill-op-rule URI样例 https://dds.cn-north-1.myhuaweicloud.com/v3/2900b7b8d03e4619b8db8d43bc6234ee/instances/6390733773d64a748f3a7bc88df22384in02/kill-op-rule 表1 请求参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 从IAM服务获取的用户Token。请参考认证鉴权。 project_id 是 String 租户在某一Region下的项目ID。请参考获取项目ID章节获取项目编号。 instance_id 是 String 实例ID,可以调用“查询实例列表和详情”接口获取。如果未申请实例,可以调用“创建实例”接口创建。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 total_connection_count Integer 总客户端连接数。 active_connection_count Integer 活跃客户端连接数。 top_source_ips Array of objects 节点连接的各个客户端连接数汇总,从大到小取前十个,最多十个,展示客户端的ip地址和连接总数。详情请参考表4。 top_dbs Array of objects 节点各数据库连接的客户端的ip和该ip连接节点的连接数,按连接数从高到低取前十个,最多十个。详情请参考表5。 表4 SourceTopConnection 参数 参数类型 描述 client_ip String 客户端ip地址。 connection_count Integer 客户端连接数。 表5 TopDbConnection 参数 参数类型 描述 db String redis数据库id。 connection_count Integer 客户端连接数。
  • 响应示例 状态码: 200 Success { "total_connection_count" : 10, "active_connection_count" : 5, "top_source_ips" : [ { "client_ip" : "127.0.0.1", "connection_count" : 10 }, { "client_ip" : "192.10.14.1", "connection_count" : 9 } ], "top_dbs" : [ { "db" : "12", "connection_count" : 10 }, { "db" : "14", "connection_count" : 8 } ] }
  • 请求示例 ip网段123.123.123.0/24被设置成黑名单 PUT https://{Endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/054e292c9880d4992f02c0196d3ein12/lb/access-control { "type" : "blackList", "enabled" : true, "ip_groups" : [ { "ip" : "123.123.123.0/24", "description" : "test" } ] } 关闭负载均衡黑白名单 PUT https://{Endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/054e292c9880d4992f02c0196d3ein12/lb/access-control { "type" : "blackList", "enabled" : false, "ip_groups" : [ { "ip" : "123.123.123.123", "description" : "test" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 enabled 是 Boolean true:开启,false:关闭。 type 是 String 类型选项。 取值: whiteList:白名单,只允许指定ip或网段访问。 blackList:黑名单,不允许指定ip或网段访问。 ip_groups 是 Array of objects IP地址组中包含的IP或网段列表。详情请参考表4。 表4 IpGroupItem 参数 是否必选 参数类型 描述 ip 是 String IP地址或网段。支持IPv4、IPv6。 description 否 String 备注信息。长度:最小长度 0,最大长度 255。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 commands Array of objects 高危命令与对应重命名命令。详情请参考表4。 表4 CommandInfo 参数 参数类型 描述 origin_name String 原高危命令,当前支持的有:keys、flushdb、flushall、hgetall、hkeys、hvals、smembers name String 当前生效的命令名称,当为空时表示命令禁用,允许修改为30个字符以内数字、大写字母、小写字母和下划线的组合。 最小长度:0 最大长度:30
  • 响应示例 状态码: 200 Success { "commands" : [ { "origin_name" : "keys", "name" : "newKeys" }, { "origin_name" : "flushdb", "name" : "newFlushdb" }, { "origin_name" : "flushall", "name" : "newFlushall" }, { "origin_name" : "hgetall", "name" : "newHgetall" }, { "origin_name" : "hkeys", "name" : "newHkeys" }, { "origin_name" : "hvals", "name" : "newHvals" }, { "origin_name" : "smembers", "name" : "newSmembers" } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 enabled Boolean true:开启,false:关闭。 type String 类型选项。 取值: whiteList:白名单,只允许指定ip或网段访问。 blackList:黑名单,不允许指定ip或网段访问。 ip_groups Array of objects IP地址组中包含的IP或网段列表。详情请参考表4。 表4 IpGroupItem 参数 参数类型 描述 ip String IP地址或网段。支持IPv4、IPv6。 description String 备注信息。长度:最小长度 0,最大长度 255。
  • 请求示例 URI样例 PUT https://{Endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/41409e5a49ee467287d738b9b6d0adcbin12/high-risk-commands 修改高危命令 { "commands" : [ { "origin_name" : "keys", "name" : "newKeys" }, { "origin_name" : "flushdb", "name" : "newFlushdb" }, { "origin_name" : "flushall", "name" : "newFlushall" }, { "origin_name" : "hgetall", "name" : "newHgetall" }, { "origin_name" : "hkeys", "name" : "newHkeys" }, { "origin_name" : "hvals", "name" : "newHvals" }, { "origin_name" : "smembers", "name" : "newSmembers" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 commands 是 Array of objects 高危命令与对应重命名命令。详情请参考表4。 表4 CommandInfo 参数 是否必选 参数类型 描述 origin_name 是 String 原高危命令,当前支持的有:keys、flushdb、flushall、hgetall、hkeys、hvals、smembers name 是 String 当前生效的命令名称,当为空时表示命令禁用,允许修改为30个字符以内数字、字母和下划线的组合 最小长度:0 最大长度:30
  • 请求示例 URI样例 DELETE https://{Endpoint}/v3/619d3e78f61b4be68bc5aa0b59edcf7b/redis/nodes/784b3fb7bac14bc490659950dd4f022fno12/sessions 删除"1131"和"2323"的会话 { "is_all" : false, "session_ids" : [ "1131", "2323" ] }
  • 服务内容和服务场景 服务类型 服务内容 典型应用场景 AI平台架构规划服务 基于客户业务场景的需求分析,提供AI平台的规划设计可行性分析服务。 构建人工智能平台规划、工智能解决方案规划。AI平台架构规划通常包括以下几个方面:数据存储、数据处理、模型训练、模型部署和服务调用等。 AI平台场景化建模方案规划服务 基于客户业务场景的需求分析,提供AI平台的场景化建模可行性分析服务。 智慧城市:AI技术可以应用于智慧城市的各个领域,如交通、环保、安防等,以提高城市管理效率和服务质量。 工业制造:AI技术可以应用于工业制造的各个环节,如生产、质检、维护等,以提高生产效率和产品质量。 医疗健康:AI技术可以应用于医疗健康的各个领域,如疾病诊断、药物研发、健康管理等,以提高医疗服务水平和人民健康水平。此外,AI场景化建模还可以应用于金融、教育、农业等领域,以解决实际业务中的问题。 父主题: 关于服务咨询
共100000条