华为云用户手册

  • 举例说明 例如您希望a、b两组员工之间的权限隔离,即a组员工使用区域一项目 云桌面 资源、b组员工使用区域二项目云桌面资源。 您可以创建A、B两个用户组并授权,即将用户组A赋予区域一项目中云桌面的管理员权限,将用户组B赋予区域二中云桌面的管理员权限。 再创建两个 IAM 用户user1、user2,并将IAM用户user1加入用户组A,将IAM用户user2加入用户组B。此时IAM用户user1即拥有区域一项目云桌面管理员权限,IAM用户user2拥有区域二项目云桌面管理员权限。 a组员工的管理员可以使用IAM用户user1的账号登录华为云,进入区域一项目的云桌面控制台页面,为a组员工购买桌面,并对区域一项目中的云桌面进行管理。b组员工的管理员可以使用IAM用户user2的账号登录华为云,进入区域二项目的云桌面控制台页面,为b组员工购买桌面,并对区域二项目中的云桌面进行管理。操作流程如图1所示。IAM用户创建请参见创建IAM用户。 图1 操作示意图
  • 云桌面服务管理员权限 权限根据授权的精细程度,分为策略和角色。云桌面服务使用角色授予IAM用户管理员权限。 默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予云桌面管理员权限,才能使得用户组中的用户获得对应权限,这一过程称为授权。授权后,IAM用户可以在对应拥有权限的项目中对云桌面资源进行操作。 如表1所示,包括了云桌面的所有系统权限。其中“依赖关系”表示云桌面的系统权限对其它角色的依赖。由于华为云各服务之间存在业务交互关系,云桌面的角色依赖其他服务的角色实现功能。因此给用户组授予云桌面的权限时,请勿取消已勾选的其他依赖权限,否则云桌面的权限将无法生效。 表1 云桌面系统权限 系统权限 描述 说明 Workspace FullAccess 云桌面服务所有权限 云桌面服务所有权限。 Workspace DesktopsManager 云桌面服务桌面管理员权限 创建、删除、操作桌面(普通桌面、专属主机、渲染桌面、专享桌面、桌面池)及其他桌面相关(上网、定时任务、应用中心、镜像管理)的所有操作。 Workspace UserManager 云桌面服务用户管理员权限 创建用户、删除用户、重置密码等用户管理操作。 Workspace SecurityManager 云桌面服务安全管理员权限 策略管理、用户连接记录等的所有跟安全相关的功能操作。 Workspace TenantManager 云桌面服务租户配置管理员权限 租户配置的所有功能。 Workspace ReadOnlyAccess 云桌面服务只读权限 云桌面服务只读权限。 以下操作需要添加额外的权限如表2所示。 云桌面依赖权限,请参考IAM用户授权或者自定义策略。 表2 额外权限 操作类型 依赖的系统角色、策略或自定义策略 说明 BSS相关权限:包周期相关操作,如购买、变更、按需转包周期等。 系统角色:BSS Administrator 自定义策略添加以下action: bss:discount:view bss:order:update bss:order:view bss:order:pay bss:renewal:view 系统角色与自定义策略二选一即可。 IAM相关权限:定时任务、桌面池,创建与查询委托时需要的权限。 创建与查询委托依赖权限: 系统角色:Security Administrator 自定义策略添加以下action: iam:roles:getRole iam:roles:listRoles iam:agencies:getAgency iam:agencies:listAgencies iam:agencies:createAgency iam:permissions:listRolesForAgencyOnProject iam:permissions:grantRoleToAgencyOnProject 仅需要查询委托依赖权限: 系统策略:IAM ReadOnlyAccess 自定义策略添加以下action: iam:agencies:getAgency iam:agencies:listAgencies iam:permissions:listRolesForAgencyOnProject 创建委托时:系统角色Security Administrator与自定义策略二选一即可。 仅查询委托时:系统策略IAM ReadOnlyAccess与自定义策略二选一即可。 TMS相关权限:创建桌面时,要查询预定义标签则需要该权限。 系统策略:TMS FullAccess 自定义策略添加以下action: tms:predefineTags:list 系统策略与自定义策略二选一即可。 VPCEP相关权限:开通/关闭云专线接入时需要该权限(企业项目细粒度鉴权时需要) 系统角色:VPCEndpoint Administrator VPCEP服务暂不支持企业项目细粒度鉴权。 VPC相关权限:桌面相关操作、开通小规模桌面上网(企业项目细粒度鉴权时需要) IAM项目级的权限 系统策略:VPC ReadOnlyAccess 系统角色:VPC Administrator 需要拥有开通桌面云服务所使用的VPC所在企业项目的VPC权限。 IMS相关权限:创建镜像时需要该权限(企业项目细粒度鉴权时需要) 自定义策略添加以下action: ims:images:get ims:images:share IMS服务暂不支持企业项目细粒度鉴权。 以下Action的授权,仅支持北向接口,用户在IAM管理控制台授权后,在云桌面管理控制台对桌面的启动、关闭、重启等操作依然无权限。 云桌面管理控制台开机、关机、重启操作需授权Action: 权限:操作桌面 对应接口:POST/v2/{project_id}/desktops/action 授权项:workspace:desktops:operate 表3 仅北向接口支持权限 权限 对应API接口 授权项(Action) 启动桌面 POST /v2/{project_id}/desktops/start workspace:desktops:start 关闭桌面 POST /v2/{project_id}/desktops/stop workspace:desktops:stop 重启桌面 POST /v2/{project_id}/desktops/reboot workspace:desktops:reboot
  • 前提条件 创建产品信息规则的识别条件: 获取进程名称 管理员在应用服务器上运行需要管控的应用。 右键单击“”,选择运行,输入“taskmgr”命令,按“Enter”键,打开任务管理器。 在任务管理器窗口单击“详细信息”,找到需要管控的应用进程名,如图1所示。 图1 进程名称 获取产品名称 管理员在应用服务器上进入需要管控应用的安装位置。 找到运行程序,如xxx.exe,右键单击,选择“属性”,弹出“应用属性”页面。 单击“详细信息”,可以查看到产品名称,如图2所示。 图2 产品名称 获取发布者名称 管理员在应用服务器上进入需要管控应用的安装位置。 找到运行程序,如xxx.exe,右键单击,选择“属性”弹出“应用属性窗口”。 单击“数字签名”,选择“签名列表”中的签名,单击“详细信息”,如图3所示。 图3 数字签名 在弹出的“数字签名详细信息”页面,单击“查看证书”,弹出“证书”页面。 在“证书”页面单击“详细信息”,在“详细信息”页面,找到“使用者”信息即为“发布者名称”,如图4所示。 图4 使用者信息
  • 准备事项 需准备的文件如表1所示。 表1 软件包 软件包名称 说明 获取方式 Workspace_mac.dmg 用于安装Mac PC客户端。 进入华为云官网云桌面客户端下载页面。 单击下载macOS版本客户端。 Workspace_Win.msi 用于安装Windows PC客户端。 进入华为云官网云桌面客户端下载页面。 单击下载Windows版本客户端。 Workspace_amd64.deb 用于安装Amd64 客户端。 说明: 支持麒麟和UOS系统。 进入华为云官网云桌面客户端下载页面。 单击下载Amd64版本客户端。 Workspace_arm64.deb 用于安装Arm64 客户端 说明: 支持麒麟和UOS系统。 进入华为云官网云桌面客户端下载页面。 单击下载Arm64版本客户端。
  • 能不能先开展活动后审批? 不能。先审批后执行,严格验收活动。MDF管理责任人对MDF使用进行管理,并监控活动的开展。合作伙伴提交使用申请,建议至少在活动前10个工作日提交。未经事前审批、未按照验收要求进行申付的MDF活动一律不予支付或核销。如活动时间、地点、对象、形式等关键信息发生变化,需在活动发生前重新提交活动申请。 使用申请需列清费用项,实际核销金额不得超过使用申请预算,超出部分由合作伙伴自行承担。 父主题: 市场发展基金(MDF)
  • MDF申报材料需要哪些? 申报材料:MDF申报须严格按照验收要求提供证明及总结材料,进行规范化管理及闭环。 兑现材料类型 说明 真实性证明材料 现场照片 照片能够展示宣讲主题、华为Logo或横幅等华为元素、宣讲人、以及现场人数等; 照片能够从不同维度展示活动实际发生的各类费用(如场地、广告、营销资料、餐饮等)。例如,涉及采购礼品,必须有现场的礼品摆放照片;如作为奖品发放,需有颁奖或抽奖的照片。 说明: 如无实物交付或其他原因,不能提供相关照片,可用相关合同、结果呈现截图、酒店原始账单等真实性证明材料替代。 盖章水单 收款单位的盖章水单中,费用明细需与活动过程中实际发生的费用类别完全一致。例如,实际发生是“餐费”,则明细中必须是餐费,不得修改为“住宿费”等其他费用类别;采购鼠标作为礼品,明细中需体现“鼠标”; 如盖章水单和实际发生费用类别不一致,需说明不一致原因和生态合作负责人确认,并提供确认邮件作为核销材料。 发票扫描件 发票抬头为承办活动的华为云伙伴,即填写MDF申请电子流的华为云伙伴名称; 发票的票面金额需大于等于兑现申请中的实际核销金额。 广告及媒体宣传总结 总结在媒体、网站、刊物、微博、微信等媒介上的宣传报道与广告刊登情况,并附上相关合同、刊登页面截图或照片。 活动总结材料 总体工作总结 活动的时间、地点、参与人员等简要说明,对活动工作进行总体总结,说明各方面工作情况及结果,对整体效果及质量进行自我评价。 参会人员签到表 现场实际参会人员的签到表(如采用微信签到等原因无法提供签到表,请说明原因)。 机会点信息 凡是目标受众包含最终客户的活动,均需按要求录入相关机会点信息。 赞助合同 凡是赞助费,均需提供赞助合同(盖章文本)的扫描件。 赞助合同中列举的赞助权益,均需有相关照片等证明材料体现说明。 经验总结及改进建议 对品牌活动的前期策划筹备工作、会议议程等进行总结,描述在本次品牌活动的经验和教训,并提出改进建议,以指导以后类似活动的开展工作,并为其他品牌活动提供依据或参考。 客户的反馈评价 参加活动的客户对本次活动的评价。 父主题: 市场发展基金(MDF)
  • MDF使用过程中有哪些重要规范点? 严格按照“事前计划-事中监控-事后总结”的要求进行闭环和规范化管理。 与具体活动无关的礼品采购不得使用MDF。 合作伙伴同一营销活动不得拆单,不得在多个伙伴计划中重复享受激励,不得虚报费用。一旦违规,华为将取消该伙伴当年度申请MDF资格,并予以处罚。 注:拆单是指将一项大额活动费用拆分成两张或以上发票开具,然后分次提交报销单或者分别由不同员工提交报销单,从而绕开系统强制要求提交权签人审批的行为,场景包括但不限于: 同一时间、事项及目的产生的费用分次报销。 同一时间、事项及目的产生的费用分多人报销。 同一活动,按发票时间段分次报销。 同一活动按费用类型分次报销。 其他认定为拆单的场景。 父主题: 市场发展基金(MDF)
  • 哪些活动可以使用MDF? 华为云合作伙伴申请使用MDF举办营销活动,需按MDF活动类型进行规划,不属于MDF适用活动类型定义及要求的营销活动不可以申请MDF。 华为云合作伙伴的MDF必须100%用于面向其客户或伙伴的活动,活动费用保证真实合理。特殊情况需突破标准的,需在使用申请和兑现材料中说明超标原因。 a. MDF覆盖活动类型: 活动类型 活动定义和描述 伙伴邀请客户CXO走进华为 伙伴邀请客户CXO来华为公司参观交流,加强高层客户关系,增进品牌感知等。 伙伴邀请客户交流研讨 伙伴面向客户的技术交流、对标、研讨、答谢会、参观活动等。 伙伴CXO走进华为 邀请伙伴高层来华为公司参观交流,加强伙伴关系,推动合作进程等。 伙伴研讨与赋能 包含渠道圈子活动、渠道技术交流会、渠道对标活动;对伙伴高层、技术、销售等,进行的各类赋能与培训等活动 包含华为云与伙伴的技术交流,或针对产品、解决方案等具体事项的对标 伙伴拓展与建设 包含各类伙伴招募、建设、答谢活动。 广告及品牌宣传 伙伴主导的,旨在提高华为-伙伴联合品牌知名度的广告宣传活动,包括但不限于:与广告相关的物料制作以及平面、户外、电视、无线媒体、网络媒体(如网页banner、点击、弹窗、搜索关键词、搜索排名、Logo展示等)等形式的广告投放。 联合营销 联合华为云共同拓展市场,举办营销及品牌建设活动。伙伴自办活动及华为自办活动:如巡展、峰会、行业圈子活动、技术交流活动等; 数媒营销 伙伴主导的,有关 华为云产品 和解决方案的信件邮递、Email营销活动、电话营销活动、网络推广活动。其中可报销费用包括:设计图稿、内容创作、联系人清单购买、邀请函发送及相关费用。 营销资料制作 伙伴制作的,可提升华为云品牌形象、明确加强与华为云合作、促进华为云产品和解决方案推广与销售的宣传材料或工具,包括但不限于:(伙伴证言)视频、软文、宣传彩页、手册、易拉宝/奖品、服装、派发用品及相关的翻译等。 展会 伙伴作为华为云产品和解决方案的代表,参展由第三方产业组织或机构发起的,旨在推广技术和解决方案的展览会。包含赞助与华为云有关的行业论坛、巡展,展厅设计和建设、展台搭建等。 联合展厅/样板点 华为与伙伴联合建设的展厅、样板点、演示中心等。 成功案例 伙伴主导的,可提升华为-伙伴联合品牌知名度,或促进华为产品和解决方案推广与销售的成功案例,包括但不限于案例写作、案例授权、获取客户案例授权等。 父主题: 市场发展基金(MDF)
  • MDF报销的类别有哪些? 使用MDF开展的营销活动费用必须严格遵守国家法律法规,如有任何违反,华为云伙伴及相关人员需承担相应的法律责任。 MDF可报销的费用类别: 活动类型 描述 事件活动 面向最终用户: 展会、客户研讨会/现场会、第三方行业论坛、展厅、华为公司参观、巡展 数字营销 网站、EDM、搜索、APP、微信、微博等 媒体 广告(平面广告、多媒体广告等)、媒体宣传(新闻、软文、网络专题等) 其他 华为云伙伴自主策划的其他符合MDF使用规范的类型 费用类型 描述 事件活动 合规营销活动内包含的正常、合理的费用类型,包括并不限于场地费、赞助费、培训讲师费、会务公司服务费、餐饮费、交通费等 营销资料 产品资料(产品手册、彩页等)、成功案例集等 媒体相关 广告费(创意设计、印刷制作、投放等)、撰稿费、直邮费等 礼品 华为云伙伴批量定制常规拜访礼品,礼品单价不允许超200元 举办营销活动时允许有适当礼品,礼品费用不得超过人均200元人民币 MDF不可报销的费用类别: 礼品要求: 强调营销、宣传属性,定制或购买日常客户拜访礼品,与具体活动无关的礼品采购,MDF不予核销。 MDF核销礼品不得定向赠与,不得授予华为、伙伴会务工作人员,未发放部分不得核销。 严禁用于购买大额礼品,大额礼品价值标准依据区域自行制订和管理。 购买华为政企产品、华为云产品和服务。 华为券:华为相关认证的培训券和考试券(含HCIE、HCIP、HCIA等)、测试券、代金券等 华为大型活动门票:如生态大会、全联接大会等 娱乐费用:歌舞厅、卡拉OK、夜总会、文艺演出、演唱会、剧目、健身、俱乐部、景区门票、导游费、洗浴、足浴、美容美发等 代金卡/券:各种消费卡、购物卡、交通卡、话费充值卡 第三方协会会员费/客户邀请费用:加入盈利的第三方协会而收取的会员费用;第三方协会或组织客户邀请费用 私人性质:包括但不限于:私人学费、装饰装潢、婴儿/孕妇/儿童用品、玩具、个人服饰、 金银首饰、化妆品、皮带、手表、保健品、药品、体育用品(器材)、汽油费、学车、装饰装潢等 其他:设备类资产(如直播用手机、电视),销售管理软件、淘宝店铺 父主题: 市场发展基金(MDF)
  • 到期与欠费 到期 TICS 可信计算节点套餐 TI CS 可信计算节点套餐采用包年/包月计费模式,套餐到期后进入保留期。保留期内,数据仍予以保留,但是您将无法访问TICS实例,您无法在TICS管理控制台进行操作,相关接口也无法调用。如果在保留期结束时您没有续费,TICS将终止服务,系统中的数据也将被永久删除。 欠费 TICS 可信计算 节点套餐采用包年/包月的计费模式,没有欠费的概念,在所购买的时长用完时套餐结束。
  • 续费 “包年/包月”的TICS可信计算节点 对于TICS可信计算节点,请在所购买的套餐包时长用完前进行续费。 TICS可信计算节点,支持包年包月计费模式,在订单周期结束后,订单进入保留期。保留期届满时若您仍未续费订单,相应的资源将被释放,您资源中的数据也将被删除。在保留期内所产生的相关费用将在您续费时一并收取。 TICS可信计算节点支持自动续费,自动续费的默认续费周期为: 按月购买:自动续费周期为1个月。 按年购买:自动续费周期为1年。 您可以通过以下两种方式开通自动续费: 登录TICS控制台,在购买TICS实例的页面中,勾选“自动续费”选项。 如果您已购买TICS实例,请进入续费管理页面,在列表中查找所需续费的TICS实例,单击其所在行的“开通自动续费”,然后请根据页面提示完成自动续费的开通。 您也可以进行手动续费,请进入续费管理页面,在列表中查找所需续费的TICS实例,单击其所在行的“续费”,进行手动续费操作。有关续费的更多信息,请参见续费管理。
  • 构建步骤介绍 在steps中,共有PRE_BUILD和BUILD两个阶段,每一个阶段都可以定义一系列的构建步骤,支持定义的构建步骤,详见下表: PRE_BUILD 说明 操作指导 - checkout 代码下载 使用yaml配置代码下载 - sh 执行shell命令 使用yaml配置执行shell命令 BUILD 说明 操作指导 - maven Maven构建 使用yaml配置Maven构建 - npm NPM构建 使用yaml配置NPM构建 - yarn Yarn构建 使用yaml配置Yarn构建 - go Golang构建 使用yaml配置Go构建 - gulp gulp构建 使用yaml配置gulp构建 - grunt Grunt构建 使用yaml配置Grunt构建 - php PHP构建 使用yaml配置PHP构建 - gnu_arm Gnu-arm构建 使用yaml配置Gnu-arm构建 - python SetupTool构建 PyInstaller构建 Python构建 使用yaml配置SetupTool构建 使用yaml配置PyInstaller构建 使用yaml配置Python构建 - gradle Gradle构建 使用yaml配置Gradle构建 - ant Ant构建 使用yaml配置ant构建 - cmake CMake构建 使用yaml配置CMake构建 - mono mono构建 使用yaml配置mono构建 - flutter Flutter构建 使用yaml配置Flutter构建 - sbt sbt构建 使用yaml配置sbt构建 - android Android构建 使用yaml配置Android构建 - android_sign Android APK签名 使用yaml配置Android APK签名 - quick_app Android快应用构建 使用yaml配置Android快应用构建 - bazel bazel构建 使用yaml配置bazel构建 - grails Grails构建 使用yaml配置Grails构建 - ionic_android_app Ionic Android App构建 使用yaml配置Ionic Android App构建 - ark 构建方舟编译器 使用yaml配置构建方舟编译器 - fortran GFortran构建 使用yaml配置GFortran构建 - build_image 制作镜像并上传到SWR仓库 使用yaml配置制作镜像并上传到SWR仓库 - upload_obs 上传文件至OBS 使用yaml配置上传文件至OBS - download_file 下载文件 使用yaml配置下载文件 - upload_artifact 上传二进制包到仓库 使用yaml配置上传二进制包至仓库 - download_artifact 下载二进制包 使用yaml配置下载二进制包 - docker 执行docker命令 使用yaml配置执行docker命令
  • 使用yaml配置Flutter构建 1 2 3 4 5 6 7 8 9 version: 2.0 # 必须是2.0 steps: BUILD: - flutter: inputs: flutter: region jdk: '3333' ndk: '23.1.7779620' command: ./instrumented.apk 参数名 参数类型 描述 是否必填 默认值 flutter string region名。 是 无 jdk string jdk文件名。 是 无 ndk string ndk文件名。 是 无 command string 执行命令。 是 无 父主题: 单任务配置
  • GitCode Token 登录GitCode。 单击页面右上角账号名称,选择“个人设置”。 单击 “+访问令牌”,填写令牌名称以及到期时间。 单击“新建访问令牌”,生成“你的个人访问令牌”,即Token。 单击,即可复制生成的Token。 Token生成后,请及时保存,下次刷新页面将无法读取,需要重新生成新token。 注意填写有效的Token描述信息,避免误删除导致构建失败。 无需使用时及时删除Token,避免信息泄露。
  • 码云AccessToken 登录码云,并打开设置页面。 单击 “私人令牌”,然后单击 “生成新令牌”。 验证登录账号,如已登录则进入下一步。 填写Token描述并选择权限,选择私有仓库访问权限,单击“提交”生成Token。 单击,即可复制生成的Token。 Token生成后,请及时保存,下次刷新页面将无法读取,需要重新生成新token。 注意填写有效的Token描述信息,避免误删除导致构建失败。 无需使用时及时删除Token,避免信息泄露。
  • 背景说明 在编译构建服务中,默认每一次构建都会使用一个空白的且随机的目录(比如/devcloud/ws/sMMM/workspace/j_X/)作为此次构建的根目录,这个根目录所代表的空间称为BuildSpace。 BuildSpace的路径默认是随机的,即使是同一个项目的不同构建任务的BuildSpace也会被随机分配。 但是在某些场景下固定一个BuildSpace的路径是有必要的,因此编译构建服务支持配置BuildSpace,以固定构建执行目录。
  • 配置说明 在Yaml文件中,添加如下代码: version: 2.0 buildspace: #表示使用BuildSpace fixed: true path: kk clean: true clean_exclude: - cache #排除的具体路径 - aa #排除的具体路径 - bb #排除的具体路径 代码参数说明如下: 参数名 参数类型 描述 是否必填 默认值 fixed string true:使用固定路径。 false:不使用固定路径。 否 false path string 当使用固定路径时,路径为:/devcloud/slavespace/usr1/+"${domainId}"+/。配置path参数,表示在前面的固定路径基础上拼接路径。 例如:“path”配置路径为“kk”,那么固定路径为:/devcloud/slavespace/usr1/+"${domainId}"+/kk。 否 无 clean string true:需要清理固定路径。即路径是固定的,但是每次执行完会清理路径下的文件。 false:不清理固定路径。但是工作空间有限的,当文件容量达到工作空间上限后,需要手动清理工作空间(clean配置为true即可)。 说明: 工作空间指的是用户自定义的执行机的规格。 否 true clean_exclude string 表示使用路径清理,但是排除以下路径。仅支持指定固定路径下的一级文件夹。 否 不涉及
  • 直播视频录制 标准直播和低时延直播都支持视频录制功能,操作流程相同,如下所示。 直播录制是指在直播推流时将直播内容进行录制并将录制的视频存储到OBS( 对象存储服务 Object Storage Service)中,然后在OBS中对录制的直播视频进行下载、分享等处理。 因直播录制文件最终存储在OBS中,所以您需要在OBS中创建存储桶,操作请参见创建桶。其中,OBS服务计费情况,请参见OBS产品价格详情。 您需要授权直播服务使用OBS桶存储录制文件,操作请参见云资源授权。 您可以设置直播录制格式、周期等,操作请参见配置录制模板。 如您想实时了解直播录制状态,可在直播录制前配置录制回调,操作请参见配置录制回调。 开始直播推流。 直播录制完成后,您可以在直播、OBS服务中管理录制文件,如预览、下载、分享等,操作请参见管理录制文件。 父主题: 快速入门
  • 连接DCS单机、主备、读写分离、Proxy集群实例 from redis.backoff import ExponentialBackoff from redis.retry import Retry from redis.client import Redis from redis.connection import BlockingConnectionPool from redis.exceptions import ( BusyLoadingError, ConnectionError, TimeoutError ) redis_client = None def create_redis_client(context): logger = context.getLogger() redis_address = context.getUserData("redis_ip_address") redis_host = redis_address.split(":")[0] redis_port = redis_address.split(":")[1] redis_password = context.getUserData("redis_password") logger.info("redis host={}".format(redis_host)) logger.info("redis port={}".format(redis_port)) retry = Retry(ExponentialBackoff(), 3) pool = BlockingConnectionPool(host=redis_host, port=redis_port, password=redis_password, max_connections=20, timeout=3, socket_timeout=2, socket_connect_timeout=2, retry=retry, retry_on_error=[BusyLoadingError, ConnectionError, TimeoutError], health_check_interval=60, decode_responses=True) return Redis(connection_pool=pool) def initializer(context): global redis_client redis_client = create_redis_client(context) redis_client.ping() def handler(event, context): logger = context.getLogger() redis_client.set('foo', 'bar') value = redis_client.get('foo') logger.info("redis get key foo value={}".format(value)) return value 客户端使用连接池时不要将获取连接的操作放在初始化函数 initializer 方法中,否则只会在初始化时获取一个连接而导致连接池使用无效。当网络抖动时可能会使已获取的连接断连,后续复用该实例的并发请求时可能会因断连而访问redis失败。 表1 Redis配置 参数 默认值 说明 connection_pool None 连接池 表2 BlockingConnectionPool配置 参数 默认值 说明 max_connections 50 连接池最大连接数 timeout 20 连接池耗尽后获取连接的最大等待时间 表3 Connection配置 参数 默认值 说明 host localhost 连接Redis实例的IP地址/ 域名 port 6379 连接端口号 password - 连接密码 socket_timeout None 请求等待响应的超时时间(秒) socket_connect_timeout None 连接超时时间(秒) retry None 失败后重试策略 retry_on_error None 需要重试的错误列表 health_check_interval 0 Redis连接健康检查间隔 decode_responses False 默认所有响应都以字节形式返回 表4 Retry配置 参数 默认值 说明 backoff - 退避策略 retries - 重试次数,可以是负数,支持永远重试 supported_errors ConnectionError TimeoutError socket.timeout 触发重试的支持错误类型 表5 ExponentialBackoff配置 参数 默认值 说明 cap 0.512 最大退避时间(秒) base 0.008 基本退避时间(秒) 父主题: 示例代码
  • 查看实时日志 在 云日志 服务管理控制台,单击“日志管理”。 在日志组列表中,单击已创建的日志组名称,进入日志流详情页面。 或者在日志流列表中,单击已创建的日志流名称,进入日志流详情页面。 在日志流详情页面,单击“实时日志”,查看实时日志。 日志大约每隔5秒钟上报一次,在日志消息区域,您最多需要等待5秒钟左右,即可查看实时上报的日志。 同时,您还可以通过页面右上方的“清屏”、“暂停”对日志消息区域进行操作。 清屏:清除日志消息区域已经显示出来的日志。 暂停:暂停日志消息的实时显示,页面定格在当前已显示的日志。 暂停后,“暂停”会变成“继续”,再次单击“继续”,日志消息继续实时显示。 如果您正在使用实时查看功能,请停留在实时查看页面,请勿切换页面。如果您离开实时查看页面,实时查看功能将会被关闭。
  • 入门实践 当您完成了日志组、日志流等基本操作后,可以根据自身的业务需求使用云日志服务提供的一系列常用实践。 表1 常用最佳实践 实践 描述 可视化分析ELB日志 该解决方案介绍当ELB日志接入云日志服务后,您可以通过SQL语句查询分析日志,将日志结果保存为多种图表,并将图表保存至仪表盘,从而使用仪表盘实时分析ELB日志数据。您可以参考如下内容,进行具体的操作配置。 基于业务日志的运维分析 该解决方案介绍如何通过 云日志服务LTS ,实现上云应用的 日志分析 和管理。云日志服务通过收集和管理各类日志,提供运维保障,帮助用户解决日常运维过程中的问题。 无服务器日志实时分析 该解决方案帮助您无服务器架构实现弹性云服务器 ECS日志的采集、分析、告警以及存档,基于云日志服务 LTS实时采集弹性云服务器 ECS的日志数据,通过 函数工作流 FunctionGraph的LTS触发器自动获取日志数据,并实现对日志中告警信息的分析,通过 消息通知 服务 SMN 将告警信息推送给用户,并存储到对象存储服务 OBS桶中进行存档。 无服务器日志文件上传LTS 该解决方案可以帮助用户无服务器架构实现日志文件上传至云日志服务 LTS。日志文件压缩上传到对象存储服务 OBS,通过函数工作流的OBS 触发器获取日志文件压缩包,并实现自动解压、解析日志文件,将日志结果逐行存储到云日志服务 LTS。适用于将业务系统日志上传至云日志服务 LTS进行管理的场景。
  • 计费场景1:免费使用场景 云日志服务支持每个月500 MB/月的免费额度。 假设您有1台服务器,每天产生10MB原始日志,并开启全文索引,日志标准存储时长7天(存储日志的时长,只存7天的日志,第8天则会删除第一天的日志),未开启智能冷存储,使用云日志服务(LTS)30天,基于此场景,具体消费情况如下表1所示。 表格中的价格仅为示例,实际计算请以价格计算器中的价格为准。 表1 计费明细表(免费使用场景) 计费项 说明 使用量 月计费 读写流量 每天读写流量10MB/5(压缩倍率)=2MB(压缩后),30天累计30*2=60MB 60MB 免费 索引流量 30天累计为10MB*30=300MB 300MB 免费 标准存储量 日志标准存储量为存储时间7*10MB=70MB 70MB 免费
  • 计费场景2-关闭全文索引,打开索引字段使用场景 假设您有1台服务器,每天产生100GB原始日志,并关闭全文索引,写入到日志服务并开启其中五个字段的索引,这五个字段的数据量为50GB。 日志标准存储时长30天(存储日志的时长,只存30天的日志,第31天则会删除第一天的日志),未开启智能冷存储,使用云日志服务(LTS)30天,基于此案例,具体消费情况如下表2所示。 此案例中的单价仅为示例,且计算出的费用为估算值。单价的变动和实际场景中计算出来的费用可能会有偏差。请以华为云官网发布的数据为准。详细价格说明请参见价格计算器。 表2 计费明细表(关闭全文索引,打开索引字段使用场景) 计费项 说明 使用量 单价 月计费 读写流量 每天读写流量100GB/5(压缩倍率)=20GB(压缩后),30天累计20GB*30=600GB 600GB 0.18元/GB (600GB-500MB/1024) *0.18=107.91元 索引流量 索引流量为50GB*30=1500GB 1500GB 0.32元/GB (1500GB-500MB免费额度/1024) *0.32=479.84元 标准存储量 日志标准存储量为100GB/天*30天=3000GB 3000GB 0.000479元/GB/小时 (3000GB-500MB免费额度/1024)*0.000479*24小时*30天=1034.47元
  • 创建表相关语法 表1 创建表相关语法 语法分类 功能描述 Format Avro Canal Confluent Avro CSV Debezium JSON Maxwell Ogg Orc Parquet Raw Connectors BlackHole ClickHouse DataGen Doris DWS Elasticsearch FileSystem Hbase Hive JDBC Kafka Print Redis Upsert Kafka
  • 表类型 源表:源表是Flink作业的数据输入表,例如Kafka等实时流数据输入。 维表:数据源表的辅助表,用于丰富和扩展源表的数据。在Flink作业中,因为数据采集端采集到的数据往往比较有限,在做数据分析之前,就要先将所需的维度信息补全,而维表就是代表存储数据维度信息的数据源。常见的用户维表有 MySQL,Redis等。 结果表:Flink作业输出的结果数据表,将每条实时处理完的数据写入的目标存储,如 MySQL,HBase 等数据库。
  • Connector支持列表 表1 Connector支持列表 Connector 源表 维表 结果表 BlackHole 不支持 不支持 支持 ClickHouse 不支持 不支持 支持 DataGen 支持 不支持 不支持 Doris 支持 支持 支持 DWS 支持 支持 支持 Elasticsearch 不支持 不支持 支持 FileSystem 支持 不支持 支持 Hbase 支持 支持 支持 Hive 支持 支持 支持 JDBC 支持 支持 支持 Kafka 支持 不支持 支持 Print 不支持 不支持 支持 Redis 支持 支持 支持 Upsert Kafka 支持 不支持 支持
  • 示例 下面的示例展示了一个经典的业务流水线,维度表来自 Hive,每天通过批处理流水线作业或 Flink 作业更新一次,kafka流来自实时在线业务数据或日志,需要与维度表联接以扩充流。 使用spark sql 创建 hive obs 外表,并插入数据。 CREATE TABLE if not exists dimension_hive_table ( product_id STRING, product_name STRING, unit_price DECIMAL(10, 4), pv_count BIGINT, like_count BIGINT, comment_count BIGINT, update_time TIMESTAMP, update_user STRING ) STORED AS PARQUET LOCATION 'obs://demo/spark.db/dimension_hive_table' PARTITIONED BY ( create_time STRING ); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_11', 'product_name_11', 1.2345, 100, 50, 20, '2023-11-25 02:10:58', 'update_user_1'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_12', 'product_name_12', 2.3456, 200, 100, 40, '2023-11-25 02:10:58', 'update_user_2'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_13', 'product_name_13', 3.4567, 300, 150, 60, '2023-11-25 02:10:58', 'update_user_3'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_14', 'product_name_14', 4.5678, 400, 200, 80, '2023-11-25 02:10:58', 'update_user_4'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_15', 'product_name_15', 5.6789, 500, 250, 100, '2023-11-25 02:10:58', 'update_user_5'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_16', 'product_name_16', 6.7890, 600, 300, 120, '2023-11-25 02:10:58', 'update_user_6'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_17', 'product_name_17', 7.8901, 700, 350, 140, '2023-11-25 02:10:58', 'update_user_7'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_18', 'product_name_18', 8.9012, 800, 400, 160, '2023-11-25 02:10:58', 'update_user_8'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_19', 'product_name_19', 9.0123, 900, 450, 180, '2023-11-25 02:10:58', 'update_user_9'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_1') VALUES ('product_id_10', 'product_name_10', 10.1234, 1000, 500, 200, '2023-11-25 02:10:58', 'update_user_10'); 参考创建Flink OpenSource作业,创建flink opensource sql作业,输入以下作业脚本,并提交运行。该作业模拟从kafka读取数据,并关联hive维表对数据进行打宽,并输出到print。 如下脚本中的加粗参数请根据实际环境修改。 CREATE CATA LOG myhive WITH ( 'type' = 'hive' , 'default-database' = 'demo', 'hive-conf-dir' = '/opt/flink/conf' ); USE CATALOG myhive; CREATE TABLE if not exists ordersSource ( product_id STRING, user_name string, proctime as Proctime() ) WITH ( 'connector' = 'kafka', 'topic' = 'TOPIC', 'properties.bootstrap.servers' = 'KafkaIP:PROT,KafkaIP:PROT,KafkaIP:PROT', 'properties.group.id' = 'GroupId', 'scan.startup.mode' = 'latest-offset', 'format' = 'json' ); create table if not exists print ( product_id STRING, user_name string, product_name STRING, unit_price DECIMAL(10, 4), pv_count BIGINT, like_count BIGINT, comment_count BIGINT, update_time TIMESTAMP, update_user STRING, create_time STRING ) with ( 'connector' = 'print' ); insert into print select orders.product_id, orders.user_name, dim.product_name, dim.unit_price, dim.pv_count, dim.like_count, dim.comment_count, dim.update_time, dim.update_user, dim.create_time from ordersSource orders left join dimension_hive_table /*+ OPTIONS('streaming-source.enable'='true', 'streaming-source.partition.include' = 'latest', 'streaming-source.monitor-interval' = '10 m') */ for system_time as of orders.proctime as dim on orders.product_id = dim.product_id; 连接Kafka集群,向Kafka的source topic中插入如下测试数据: {"product_id": "product_id_11", "user_name": "name11"} {"product_id": "product_id_12", "user_name": "name12"} 查看print结果表数据。 +I[product_id_11, name11, product_name_11, 1.2345, 100, 50, 20, 2023-11-24T18:10:58, update_user_1, create_time_1] +I[product_id_12, name12, product_name_12, 2.3456, 200, 100, 40, 2023-11-24T18:10:58, update_user_2, create_time_1] 模拟向hive 维表,插入新的分区数据 INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_21', 'product_name_21', 1.2345, 100, 50, 20, '2023-11-25 02:10:58', 'update_user_1'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_22', 'product_name_22', 2.3456, 200, 100, 40, '2023-11-25 02:10:58', 'update_user_2'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_23', 'product_name_23', 3.4567, 300, 150, 60, '2023-11-25 02:10:58', 'update_user_3'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_24', 'product_name_24', 4.5678, 400, 200, 80, '2023-11-25 02:10:58', 'update_user_4'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_25', 'product_name_25', 5.6789, 500, 250, 100, '2023-11-25 02:10:58', 'update_user_5'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_26', 'product_name_26', 6.7890, 600, 300, 120, '2023-11-25 02:10:58', 'update_user_6'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_27', 'product_name_27', 7.8901, 700, 350, 140, '2023-11-25 02:10:58', 'update_user_7'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_28', 'product_name_28', 8.9012, 800, 400, 160, '2023-11-25 02:10:58', 'update_user_8'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_29', 'product_name_29', 9.0123, 900, 450, 180, '2023-11-25 02:10:58', 'update_user_9'); INSERT INTO dimension_hive_table PARTITION (create_time='create_time_2') VALUES ('product_id_20', 'product_name_20', 10.1234, 1000, 500, 200, '2023-11-25 02:10:58', 'update_user_10'); 连接Kafka集群,向Kafka的source topic中插入如下测试数据。关联上一个分区create_time='create_time_1'数据: {"product_id": "product_id_13", "user_name": "name13"} 查看print结果表数据。可观察到hive维表中的前一个分区create_time='create_time_1'数据已经被清除 +I[product_id_13, name13, null, null, null, null, null, null, null, null] 连接Kafka集群,向Kafka的source topic中插入如下测试数据。关联最新分区create_time='create_time_2'数据: {"product_id": "product_id_21", "user_name": "name21"} 查看print结果表数据。可观察到hive维表中保存了最新分区create_time='create_time_2'的数据 +I[product_id_21, name21, product_name_21, 1.2345, 100, 50, 20, 2023-11-24T18:10:58, update_user_1, create_time_2]
  • 功能描述 对于随时间变化的分区表,我们可以将其读取为无界流,如果每个分区包含某个版本的完整数据,则该分区可以被视为时间表的一个版本,时间表的版本保留了分区的数据。Flink支持在处理时间关联中自动跟踪时间表的最新分区(版本)。 最新分区(版本)由 'streaming-source.partition-order' 选项定义。 这是在Flink 流应用作业中将 Hive 表用作维度表的最常见用例。
  • 修订记录 发布日期 修订记录 2024-05-07 Flink 1.15语法新增DWS Connector概述。 2024-04-23 Flink 1.15语法新增Doris。 2024-04-18 新增Flink Opensource SQL1.15语法参考。 2024-01-29 DWS结果表,新增参数key-by-before-sink。 2023-10-25 Elasticsearch结果表,补充关于跨源认证的使用说明。 2023-03-17 Redis结果表参数说明表内新增Redis sink TTL功能的参数说明。 2023-03-02 修改JDBC维表中的参数说明,将所有的read改成scan。 2023-02-24 修改FileSystem结果表,新增了一个代码样例,和对表1的compaction.file-size描述修改。 2023-01-11 修改CREATE FUNCTION语句,补充对CREATE FUNCTION语句的功能描述。
  • 功能描述 您可以将Hive表用作时态表,通过时态联接来关联Hive表。有关时态联接的详细信息,请参阅 temporal join。 Flink支持processing-time temporal join Hive Table,processing-time temporal join始终会加入最新版本的时态表。Flink支持分区表和 Hive非分区表的临时连接,对于分区表,Flink 支持自动跟踪Hive表的最新分区。详情可参考:Apache Flink Hive Read & Write
共100000条