云服务器内容精选

  • 创建RDS for MySQ L实例 本章节介绍创建RDS for MySQL实例。 进入购买云数据库RDS页面。 配置实例名称和实例基本信息。选择区域“华南-广州”。 选择实例规格。 选择实例所属的VPC和安全组、配置数据库端口。 VPC和安全组已在创建VPC和安全组中准备好。 配置实例密码。 单击“立即购买”。 进行规格确认。 如果需要重新选择实例规格,单击“上一步”,回到上个页面修改实例信息。 如果规格确认无误,单击“提交”,完成购买实例的申请。 返回云数据库实例列表。当RDS实例运行状态为“正常”时,表示实例创建完成。 父主题: 其他云MySQL迁移到云数据库 RDS for MySQL
  • Notebook中无法打开“checkpoints”文件夹 checkpoints是Notebook的关键字,如果用户创建文件夹命名为checkpoints,则在JupyterLab上无法打开、重命名和删除。此时可以在Terminal里使用命令行打开checkpoints,或者新建文件夹将checkpoints里的数据移动到新的文件夹下。 图1 JupyterLab浏览器左侧导航无法打开checkpoints 操作步骤: 打开Terminal,用命令行进行操作。 方法一:执行cd checkpoints命令打开checkpoints文件夹。 方法二:新建一个文件夹,移动checkpoints文件夹的数据到新建的文件夹下。 执行mkdir xxx命令,新建一个文件夹,例如“xxx”(不要用checkpoints关键字命名) 然后移动checkpoints文件夹的数据到新建的文件夹下,删除根目录下checkpoints文件夹即可。 mv checkpoints/* xxx rm -r checkpoints 父主题: 其他故障
  • 迁移步骤 使用Redis-cli连接目标端Redis实例,获取目标端Cluster集群的Master节点IP地址与端口。 redis-cli -h {target_redis_address} -p {target_redis_port} -a {target_redis_password} cluster nodes {target_redis_address}:目标Redis实例的连接地址。 {target_redis_port}:目标Redis实例的连接端口号。 {target_redis_password}:目标Redis实例的连接密码。 在命令返回的结果中,获取所有master节点的IP端口,如下如所示: 在准备好的华为云E CS 上安装迁移工具RedisShake。 登录华为云ECS。 在华为云ECS中执行以下命令下载RedisShake,本文以下载2.0.3版本为例进行说明。您可以根据实际需要下载其他RedisShake版本。 wget https://github.com/tair-opensource/RedisShake/releases/download/release-v2.0.3-20200724/redis-shake-v2.0.3.tar.gz 执行命令解压RedisShake文件。 tar -xvf redis-shake-v2.0.3.tar.gz 如果源端集群部署在数据中心内网,还需在内网服务器上安装RedisShake,并参考下述步骤进行数据导出,然后将数据文件上传到云服务器。 从源端Redis控制台导出RDB文件,如果无法导出RDB文件,请联系源端技术支持获取。 导入RDB文件。 将导出的RDB文件(含多个)上传到云服务器上。云服务器与目标端DCS Cluster集群实例的网络连通。 编辑RedisShake工具配置文件redis-shake.conf。 vim redis-shake.conf 补充目标端所有master节点的连接信息: target.type = cluster #如果无密码,本项不填 target.password_raw = {target_redis_password} #目标Cluster集群所有master节点的IP地址与端口,以分号分隔 target.address = {master1_ip}:{master1_port};{master2_ip}:{master2_port}…{masterN_ip}:{masterN_port} #需要导入的rdb文件列表,用分号分隔 rdb.input = {local_dump.0};{local_dump.1};{local_dump.2};{local_dump.3} 编辑完成后,按下Esc键退出编辑模式,输入:wq!按回车键保存配置并退出编辑界面。 使用如下命令导入RDB文件到目标Cluster集群: ./redis-shake -type restore -conf redis-shake.conf 执行日志中出现如下信息时导入备份文件完成: Enabled http stats, set status (incr), and wait forever. 迁移后验证。 数据同步结束后,可使用redis-cli工具连接目标端DCS Cluster集群,通过info命令查看Keyspace中的Key数量,确认数据是否完整导入。 如果数据不完整,可使用flushall或者flushdb命令清理实例中的缓存数据后重新同步。
  • DLI 委托 在使用DLI前,为了确保正常使用DLI的功能,建议先进行DLI委托权限设置。 DLI默认提供以下类型的委托:dli_admin_agency、dli_management_agency、dli_data_clean_agency(名称固定,权限需自定义)。其他场景需用户自定义委托。委托的详细说明请参考表1。 DLI为了满足细粒度的委托权限需求,DLI升级了系统委托,将原有的dli_admin_agency升级为dli_management_agency,新的委托包含跨源操作、 消息通知 、用户授权操作所需的权限。配置DLI云服务委托权限。 使用Flink 1.15和Spark 3.3.1(Spark通用队列场景)及以上版本的引擎执行作业时,需完成以下配置操作: 需用户自行在 IAM 页面创建相关委托,并在作业配置中添加新建的委托信息。具体操作请参考创建DLI自定义委托权限。 常见新建委托场景:允许DLI读写OBS数据、日志转储、Flink checkopoint;允许DLI在访问DEW获取数据访问凭证、允许访问Catalog获取元数据等场景。 委托名称不可与系统默认委托重复,即不可以是dli_admin_agency、dli_management_agency、dli_data_clean_agency。 引擎版本低于Flink1.15,执行作业时默认使用dli_admin_agency;引擎版本低于Spark 3.3.1,执行作业时使用用户认证信息(AKSK、SecurityToken)。 即引擎版本低于Flink1.15和Spark 3.3.1版本的作业不受更新委托权限的影响,无需自定义委托。 为兼容存量的作业委托权限需求,dli_admin_agency仍为您保留在IAM委托中。 服务授权需要主账号或者用户组admin中的子账号进行操作。 请勿删除系统默认创建的委托。 表1 DLI委托 权限名 类型 权限说明 dli_admin_agency 系统默认委托 该委托已废弃,不推荐使用,请尽快更新委托升级至dli_management_agency。 更新委托请参考配置DLI云服务委托权限。 dli_management_agency 系统默认委托 DLI系统委托,用于将操作权限委托给DLI服务,让DLI服务以您的身份使用其他云服务,代替您进行一些资源运维工作。该委托包含跨源操作、消息通知、用户授权操作所需的权限。详细委托包含的权限请参考表2 dli_data_clean_agency 系统默认委托,需用户自行授权 数据清理委托,表生命周期清理数据及lakehouse表数据清理使用。需用户自行在IAM创建名为dli_data_clean_agency的DLI云服务委托并授权。 该委托需新建后自定义权限,但委托名称固定为dli_data_clean_agency。 委托的权限策略示例请参考常见场景的委托权限策略。 其他自定义委托 自定义委托 使用Flink 1.15和Spark 3.3及以上版本的引擎执行作业时,请自行在IAM页面创建相关委托,并在作业配置中添加新建的委托信息。创建DLI自定义委托权限 常见新建委托场景:允许DLI读写OBS将日志转储、允许DLI在访问DEW获取数据访问凭证、允许访问Catalog获取元数据等场景。 委托名称不可与系统默认委托重复,即不可以是dli_admin_agency、dli_management_agency、dli_data_clean_agency。 委托的权限策略示例请参考常见场景的委托权限策略。 表2 dli_management_agency委托包含的权限 权限名 权限说明 IAM ReadOnlyAccess DLI对未登录过DLI的用户进行授权时,需获取IAM用户相关信息。因此需要IAM ReadOnlyAccess权限。 DLI Datasource Connections Agency Access 访问和使用VPC、子网、路由、对等连接的权限 DLI Notification Agency Access 作业执行失败需要通过 SMN 发送通知消息的权限
  • 什么是委托? 华为云各服务之间存在业务交互关系,一些云服务需要与其他云服务协同工作,需要您创建云服务委托,将操作权限委托给DLI服务,让DLI服务以您的身份使用其他云服务,代替您进行一些资源运维工作。 例如:在DLI新建Flink作业所需的AKSK存储在 数据加密 服务DEW中,如需允许DLI在执行作业时访问DEW数据,需要提供IAM委托将DEW数据操作权限委托给DLI,允许DLI服务以您的身份访问DEW服务。 图1 DLI云服务委托
  • 样式 设置平行坐标系的样式参数。 表2 基础样式参数 参数 说明 卡片标题 卡片支持有和无标题的设置。设置卡片的标题,在卡片的左上角展示。 无标题:当未勾选框时,为无标题格式。 有标题:当勾选框时,为有标题格式。 文本 设置文本字体的大小和字体颜色。可通过输入修改字体大小也可通过和修改字体的大小。 说明: 输入不能为空,且输入值必须在14到32之间。 对齐方式 支持左对齐和居中对齐方式。 下边距 设置平行坐标系图标题与图表之间的距离。可通过输入修改边距的大小也可通过和修改边距的大小。 说明: 输入不能为空,且输入值必须在0到32之间。 分割线 卡片支持无和有分割线的设置。 无分割线:当未勾选框时,为无分割线格式。 有分割线:当勾选框时,为有分割线格式。支持对分割线的样式和下框边距进行设置。分割线样式和下边框支持输入设置,也可通过和进行设置。 说明: 分割线样式的输入不能为空,且输入值必须在0到8之间。在设置样式之后才可以设置下边距,分割线的下边距输入不能为空,且输入值必须在0到32之间。 卡片背景 卡片背景支持有背景和无背景设置。 无背景:当未勾选框时,为无背景格式。 有背景:当勾选框时,为有背景格式。支持背景颜色的设置。 状态icon 可以设置icon的显示方式和颜色,支持始终显示和悬停显示。卡片icon支持有状态icon和无状态icon设置。 无背景:当未勾选框时,为无状态icon。 有背景:当勾选框时,为有状态icon。 表3 图表样式 参数 说明 显示图例 支持显示或不显示,设置为不显示下述参数则不支持设置。 文本 设置文本字体大小。 位置 设置图例的位置,支持设置为下方和上方。 色板 支持设置为系统或自定义。 数值设置 支持对数值的语境、单位、科学计数法、使用千分位分割符、小数位的设置。 表4 坐标轴参数 参数 说明 显示坐标轴 支持对坐标轴的坐标线和颜色的设置。 显示轴标签 支持对轴标签的文本和文本颜色的设置。 显示网格 支持对网格线的粗细和颜色设置。 显示刻度线 支持对尺度类型设置,有线性和对数两种功能。 表5 系列设置 参数 说明 选择度量 根据字段里面选择的度量选择。 语境 对系列的语境进行设置,支持中文(简体)和English 单位 单位支持自动、无、百、千、万、亿、百亿、万亿。 科学计数法 支持使用科学计数法或不支持。 使用千分位分割符 支持使用千分位分割符或不支持。 小数位 支持设置小数位或不支持。 功能设置:支持对空值处理设置,有删除、智能删除、置零功能选择。
  • 样式 本章节介绍线状图的样式的各项配置的含义。 尺寸位置 W:设置图表的宽,单位为px。 H:设置图表的高,单位px。 X:设置图表在画布中的位置。单位为px。 Y:设置图表在画布中的位置。单位为px。 不透明度:设置图表在画布上的透明度,可通过滑动条进行设置,也可手动输入百分比,比例越大透明程度越低。 图1 尺寸位置 图表基础样式 图表切换类型有里程碑和时间粒度。 节点 配色分为单色和按节点,颜色用户自定义。 大小:节点大小用户可自定义设置,取值范围8~48。 距离可设置按比例和等分。 线条粗细、颜色用户可自定义设置,线条粗细取值范围1~48。 节点标签 显示节点标签:可通过勾选框设置是否显示节点标签。 标签设置 标签布局类型:上下交错、轴上方、轴下方。 对齐方式类型:左对齐、居中、右对齐。 显示时间轴字段:勾选框后,图表显示时间轴字段,不勾选只显示时间。 显示标签字段:勾选框后,图表显示节点标签,不勾选不显示节点标签。 显示今天:勾选框后,里程碑会显示当天的标签(今天),不勾选则不显示。 条件格式 条件格式中的系列由字段中的“状态维度”所定义,可以设置不同状态的样式设置。 设置条件格式的步骤: 选择系列字段。 勾选自定义样式,单击“自定义样式”右边的笔图标,进入自定义样式页面。 单击添加规则,选择状态,设置节点颜色、状态图标、节点图标大小,设置线条颜色以及粗细。 设置好参数后,单击“确定”,条件格式设置成功。 单击右上角的“预览”按钮,产查看设置的条件格式。 设置的状态,按照条件格式展示,未设置的状态按照全局演示展示。
  • 代码样例 此用例用于生成带授权信息的临时URL。 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 from obs import ObsClient import os import traceback import base64 # 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 # 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak = os.getenv("AccessKeyID") sk = os.getenv("SecretAccessKey") # 【可选】如果使用临时AKSK和SecurityToken访问OBS,则同样推荐通过环境变量获取 # security_token = os.getenv("SecurityToken") # server填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 server = "https://obs.cn-north-4.myhuaweicloud.com" # 创建obsClient实例 # 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过security_token参数指定securityToken值 obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, server=server) try: # 生成创建桶的带授权信息的URL res1 = obsClient.createSignedUrl(method='PUT', bucketName='bucketname', expires=3600) print('signedUrl:', res1.signedUrl) print('actualSignedRequestHeaders:', res1.actualSignedRequestHeaders) # 生成上传对象的带授权信息的URL res2 = obsClient.createSignedUrl(method='PUT', bucketName='bucketname', objectKey='objectkey', expires=3600, headers={'Content-Type': 'text/plain'}) print('signedUrl:', res2.signedUrl) print('actualSignedRequestHeaders:', res2.actualSignedRequestHeaders) # 生成设置对象ACL的带授权信息的URL res3 = obsClient.createSignedUrl(method='PUT', bucketName='bucketname', objectKey='objectkey', specialParam='acl', expires=3600, headers={'x-obs-acl': 'private'}) print('signedUrl:', res3.signedUrl) print('actualSignedRequestHeaders:', res3.actualSignedRequestHeaders) # 生成下载对象的带授权信息的URL res4 = obsClient.createSignedUrl(method='GET', bucketName='bucketname', objectKey='objectkey', expires=3600) print('signedUrl:', res4.signedUrl) print('actualSignedRequestHeaders:', res4.actualSignedRequestHeaders) # 生成删除对象的带授权信息的URL res5 = obsClient.createSignedUrl(method='DELETE', bucketName='bucketname', objectKey='objectkey', expires=3600) print('signedUrl:', res5.signedUrl) print('actualSignedRequestHeaders:', res5.actualSignedRequestHeaders) # 生成删除桶的带授权信息的URL res6 = obsClient.createSignedUrl(method='DELETE', bucketName='bucketname', expires=3600) print('signedUrl:', res6.signedUrl) print('actualSignedRequestHeaders:', res6.actualSignedRequestHeaders) # 生成设置初始化分段任务的带授权信息的URL res7 = obsClient.createSignedUrl(method='POST', bucketName='bucketname', objectKey='objectkey', specialParam='uploads', expires=3600) print('signedUrl:', res7.signedUrl) print('actualSignedRequestHeaders:', res7.actualSignedRequestHeaders) # 生成上传段的带授权信息的URL, res8 = obsClient.createSignedUrl(method='PUT', bucketName='bucketname', objectKey='objectkey', expires=3600, queryParams={'partNumber': '1', 'uploadId': '00000*****'}) print('signedUrl:', res8.signedUrl) print('actualSignedRequestHeaders:', res8.actualSignedRequestHeaders) # 生成合并段的带授权信息的URL res9 = obsClient.createSignedUrl(method='POST', bucketName='bucketname', objectKey='objectkey', expires=3600, queryParams={'uploadId': '00000*****'}) print('signedUrl:', res9.signedUrl) print('actualSignedRequestHeaders:', res9.actualSignedRequestHeaders) # 生成图片持久化处理的带授权信息的URL # 原对象所在的桶名 bucketName = 'originBucketName'; # 处理前的原对象名 objectKey = 'test.png'; # 处理后的对象名 targetObjectName ="save.png" # 处理后保存的桶名, 可选参数 targetBucketName ="saveBucketName" queryParams={} queryParams["x-image-process"]="image/resize,w_100" queryParams["x-image-save-object"]=base64.b64encode(targetObjectName .encode("utf-8")).decode() # 可选参数 queryParams["x-image-save-bucket"]=base64.b64encode(targetBucketName .encode("utf-8")).decode() res10 = obsClient.createSignedUrl(method='GET', bucketName=bucketName, objectKey=objectKey, queryParams=queryParams, expires=3600) print('signedUrl:', res10.signedUrl) print('actualSignedRequestHeaders:', res10.actualSignedRequestHeaders) except: print(traceback.format_exc())
  • 接口约束 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 如果遇到跨域报错、签名不匹配问题,请参考以下步骤排查问题: 未配置跨域,需要在控制台配置CORS规则,请参考配置桶允许跨域请求。 签名计算问题,请参考URL中携带签名排查签名参数是否正确;比如上传对象功能,后端将Content-Type参与计算签名生成授权URL,但是前端使用授权URL时没有设置Content-Type字段或者传入错误的值,此时会出现跨域错误。解决方案为:Content-Type字段前后端保持一致。
  • 请求参数 表1 请求参数列表 参数名称 参数类型 是否必选 描述 method str 必选 参数解释: HTTP方法类型 取值范围: GET POST PUT DELETE HEAD 默认取值: 无 bucketName str 可选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 objectKey str 可选 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 specialParam str 可选 参数解释: 特殊操作符,代表要操作的子资源, 取值范围: versions uploads location storageinfo quota storagePolicy acl append logging policy lifecycle website versioning cors notification tagging delete restore 默认取值: 无 expires int 可选 参数解释: 带授权信息的URL的过期时间。 取值范围: 大于等于0的整型数,单位:秒。 默认取值: 300秒 headers dict 可选 参数解释: 请求中携带的头域。 默认取值: 无 queryParams dict 可选 参数解释: 请求中携带的查询参数。 默认取值: 无 如果遇到跨域报错、签名不匹配问题,请参考以下步骤排查问题: 未配置跨域,需要在控制台配置CORS规则,请参考配置桶允许跨域请求。 签名计算问题,请参考URL中携带签名排查签名参数是否正确;比如上传对象功能,后端将Content-Type参与计算签名生成授权URL,但是前端使用授权URL时没有设置Content-Type字段或者传入错误的值,此时会出现跨域错误。解决方案为:Content-Type字段前后端保持一致。
  • 问题原因 预读机制:访问内存的速度比访问硬盘或者网络存储快很多,如果每一次访问文件数据都要从磁盘读取数据,就会导致非常严重的时延及等待问题,因此Linux为了提高读取性能,通过预读机制,将文件数据提前预读缓存到内存中,从而大大加快读取性能。参数“read_ahead_kb”为操作系统读业务可提前读取的最大KB数。 在Linux内核5.4版本前,“read_ahead_kb”被设置为挂载参数中rsize的15倍,如果不另外修改挂载参数,则rsize默认设置为1M,“read_ahead_kb”即为15M;在内核5.4及之后版本“read_ahead_kb”被固定为128 KB,导致顺序读场景下预读机制基本不会触发甚至不触发。 因此可以根据上层业务场景,适当调整参数“read_ahead_kb”,以优化大文件顺序读场景的性能。在小文件读取场景中将该值调整过大,可能会导致预读浪费,进而浪费带宽。
  • 示例代码 为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创建表salary,并添加数据,命令示例如下: CREATE EXTERNAL TABLE salary ( dept_id STRING, -- 部⻔ userid string, -- 员⼯ID sal INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile; 添加数据如下: d1,user1,1000 d1,user2,2000 d1,user3,3000 d2,user4,4000 d2,user5,5000 示例 返回每个部门的名称 当 dept_id 的值为d1时,返回DLI;值为d2时,返回 MRS ;其他场景返回Others。 select dept, decode1(dept, 'd1', 'DLI', 'd2', 'MRS', 'Others') as result from sale_detail; 返回结果: d1 DLI d2 MRS d3 Others d4 Others d5 Others
  • 参数说明 表1 参数说明 参数 是否必选 参数类型 说明 expression 是 所有数据类型。 要比较的表达式。 search 是 与expression一致。 与expression进行比较的搜索项。 result 是 所有数据类型。 search和expression的值匹配时的返回值。 default 否 与result一致。 如果所有的搜索项都不匹配,则返回default值,如果未指定,则返回NULL。
  • 网络配置流程 创建DRS公网网络任务,为DRS实例绑定弹性公网IP。 在创建公网网络的DRS任务时,可在实例信息页面为DRS实例绑定弹性公网IP。 其他云申请弹性公网IP并绑定到数据库。 不同数据库对应方法不同,具体操作步骤可参考其他云官网资料进行设置。 其他云数据库添加白名单。 其他云数据库需要添加DRS弹性公网IP远程访问数据库的权限。 各厂商云数据库添加白名单的方法不同,请参考各厂商云数据库官方文档进行操作。 测试连接。 登录DRS控制台,单击已经创建的DRS任务操作列的“编辑”,重新进入“源库及目标库”界面,输入其他云的数据库IP、端口、用户名、密码进行测试连接。
  • 上行短信和下行短信分别是什么?如何关联? 上行短信是指短信接收方收到短信后,回复的短信。 下行短信是指调用发送短信API,通过运营商下发到短信接收方手机的短信。 通过接收手机号+通道号组合,可以关联下行短信和上行短信,示例如下: 下行短信接收号码收到短信并直接回复时,可以实现下行短信与上行短信的关联;如果更换其他号码回复短信,即下行短信接收号码和上行短信发送号码不一致时,则无法实现关联。 针对同一个通道号,同一个下行短信接收号码,仅有一条下行短信时,可以实现下行短信与上行短信的关联;如果存在多条下行短信,则无法实现一对一关联。 如果您对下行短信和上行短信的关联有明确要求,请联系华为云客服,报备业务场景,申请通道号支持自定义扩展码。 数据项 1.客户发送下行短信 2.响应消息 3.用户回复短信 4.上行短信通知 通道号 from from (上行短信) to 模板ID templateId - - 下行短信接收号码(上行短信发送号码) to originTo from 下行短信ID - smsMsgId - 用户回复的短信内容 - - body 上行短信ID - - smsMsgId 父主题: 其他问题