华为云用户手册

  • 配额限制 配额是指用户在ROMA Connect实例中可创建的资源数量限制,具体的资源配额限制如下表所示。 在高并发情况下会出现略超最大配额数限制的情况,不影响资源的正常使用。 表1 实例资源配额限制 组件 资源 最大配额(个) 是否支持修改配额 集成应用 集成应用 100 暂不支持 数据源 数据源 单个项目500个数据源 暂不支持 数据集成 FDI 数据集成任务数 1000 暂不支持 服务集成 APIC API 入门版:100 基础版:250 专业版:800 企业版:2000 铂金版:8000 支持 API分组 1500 支持 单个API分组内的API 入门版:100 基础版:250 专业版:800 企业版:2000 铂金版:5000 支持 单个API分组内的环境变量 50 支持 流量控制策略 300 支持 访问控制策略 100 支持 环境 10 支持 签名密钥 200 支持 负载通道 200 支持 单个负载通道内的弹性云服务器 10 支持 自定义认证 50 支持 自定义后端 入门版:50 基础版:125 专业版:400 企业版:1000 铂金版:4000 支持 客户端配额策略 20000 支持 设备集成LINK 产品模板 100 支持 产品 500 支持 设备 基础版:20000 专业版:40000 企业版:100000 铂金版:450000 支持 规则 2000 不支持
  • 集成应用权限 ROMA Connect对用户资源实现了严格的权限管理,在同一实例内, IAM 用户只能查看和管理自己创建的集成应用和资源,默认不能查看其他IAM用户创建的集成应用和资源。ROMA Connect支持通过集成应用授权的方式,把集成应用下的资源共享给同一账号下的其他IAM用户来查看和使用。 表3 应用权限说明 权限 FDI APIC MQS LINK read 可查看授权应用的数据源。 可查看、调试和导出授权应用的API。 可查看和导出授权应用的Topic。 可查看授权应用的设备、产品和规则,可导出授权应用的设备、产品和规则,并调试设备。 modify 可在授权应用下创建和编辑数据源。 可在授权应用下创建、编辑、发布、下线和导入API。 可在授权应用下创建和编辑Topic。 可在授权应用下创建和编辑设备、产品和规则,可导入设备、产品和规则,可重置设备和产品的密码。 delete 可删除授权应用的数据源。 可删除授权应用的API。 可删除授权应用的Topic。 可删除授权应用的设备、产品和规则,可删除产品属性、Topic类、规则数据源端、规则数据目的端。 access 不涉及。 可对授权应用的API进行授权、访问控制、流量控制、签名密钥绑定API配置。 可对授权应用的Topic进行应用权限配置。 可对设备进行命令下发和强制下线,并且可以对协议为OPC UA和Modbus的设备进行插件配置。 admin 应用管理员权限。
  • ROMA资产市场权限 如表4所示,包含了新版ROMA Connect资产中心的相关操作权限。 表4 资产市场权限 系统角色/策略名称 描述 类别 依赖关系 ROMA Assets FullAccess ROMA资产市场管理员权限,支持资产发布、使用、审批。 系统策略 Tenant Administrator ROMA Assets ResourceUser ROMA资产市场资源使用者相关权限,支持资产订阅和使用。 系统策略 无 ROMA Assets ResourceProvider ROMA资产市场资源提供者相关权限,支持资产发布。 系统策略 无 ROMA Assets ResourceAuditor ROMA资产市场的资源审核者权限,支持资产审核。 系统策略 无
  • ROMA Connect权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 ROMA Connect部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京1)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问ROMA Connect时,需要先切换至授权区域。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对ROMA Connect服务,管理员能够控制IAM用户仅能对实例内的资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,ROMA Connect支持的API授权项请参见细粒度策略支持的授权项 如表1所示,包括了ROMA Connect的所有系统权限。 表1 ROMA Connect系统权限 系统角色/策略名称 描述 类别 依赖关系 ROMA FullAccess ROMA Connect服务管理员权限,拥有该权限的用户可以操作所有ROMA Connect服务的功能。 系统策略 无 ROMA CommonOperations ROMA Connect服务普通用户权限(无实例创建、修改、删除的权限)。 系统策略 无 ROMA ReadOnlyAccess ROMA Connect服务的只读权限,拥有该权限的用户仅能查看ROMA Connect服务数据。 系统策略 无 ROMA Administrator ROMA Connect服务管理员权限,拥有该权限的用户可以操作所有ROMA Connect服务的功能。 系统角色 无 表2列出了ROMA Connect常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表2 常用操作与系统权限的关系 操作 ROMA FullAccess ROMA CommonOperations ROMA ReadOnlyAccess ROMA Administrator 创建ROMA Connect实例 √ x x √ 查询ROMA Connect实例信息 √ √ √ √ 修改ROMA Connect实例 √ x x √ 删除ROMA Connect实例 √ x x √ 操作实例下资源 √ √ x √
  • 操作步骤 登录CAE控制台。 在左侧导航栏中选择“组件列表”。 在页面上方的下拉框中,选择已创建的应用和环境,单击“新增组件”。 参考表1设置组件信息。 表1 组件基本信息 参数 类别 说明 组件名称 - 新建组件的名称。组件名称命名规则:输入4到32个字符,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 版本号 - 组件的版本号。 格式为:A.B.C或者A.B.C.D。A、B、C、D为自然数,例如:1.0.0或者1.0.0.0。 实例规格 - 选择实例规格,例如:0.5core、1GiB;1core、1GiB;1core、2GiB;2core、4GiB。 实例数量 - 实例数量默认为2,最少为1,最大值为99。 说明: 组件创建成功后,支持手动伸缩组件实例,手动伸缩的实例数范围在1至99之间。 代码源 源码仓库 选择源码来源。本服务支持识别CodeArts、GitHub、GitCode、GitLab、Gitee和Bitbucket来源的代码。 将代码信息补充完整。 授权信息:从下拉框中选择对应的源码授权信息。如果您是首次使用该功能,在下拉框右侧单击“新建授权”,填写“授权名称”和选择“授权方式”,单击“确认”完成授权。单击“授权列表”可查看当前已创建的授权信息,选中列表前方复选框,可对已授权源码进行“重新授权”或“删除”。 用户名/组织:选择源码对应的用户名称或组织,用于当前项目的代码管理。 仓库名称:用于当前项目下各个模块代码的管理。 分支:选择对应的分支,用于开发对代码的管理。 语言/运行时:从下拉框中选择源码对应的语言格式。具体操作请参考组件说明。 自定义构建:构建命令可根据业务需要选择“使用默认命令或脚本”或“使用自定义命令”。 说明: 不同源码来源新建授权时授权方式不同,请按照实际情况进行选择。 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法构建,如Java:mvn clean package。 使用自定义命令:根据所选语言自定义构建命令;或修改build.sh文件后选择使用默认命令或脚本。 Dockerfile:组件来源是“源码仓库”时,根据业务需要设置。支持“自定义”和“系统默认”。 说明: 仅当“运行时”选择java时,可选择“系统默认”修改系统默认dockerfile中指定运行的maven构建制品文件名。 Dockerfile地址:当“Dockerfile”选择“自定义”时可设置。 “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。 Docker程序通过读取Dockerfile文件生成定制的镜像。 dockerfile地址只能包含字母、数字及.-_/且字符长度在1~255范围内的内容。 如果文件名为Dockerfile,允许只填写目录地址,但目录地址必须以/结尾。 制品文件名:当“Dockerfile”选择“系统默认”时可设置。 maven构建生成多个jar包时,选取指定的jar包运行,以".jar"结尾,支持模糊匹配,如:demo-1.0.jar,demo*.jar 镜像 用户可以通过“客户端上传镜像”和“页面上传镜像”两种方式上传镜像包。 客户端上传镜像:选择“客户端上传镜像”时,需要以root用户登录容器引擎所在的虚拟机,获取登录访问命令,并复制到节点上执行,上传镜像。 页面上传镜像:选择“页面上传镜像”时,单次仅支持添加1个镜像压缩包,文件大小(含解压后)不得超过 2 GB,支持 tar、tar.gz格式,仅支持上传1.11.2及以上容器引擎客户端版本制作的镜像压缩包,制作过程详见制作镜像压缩包。 如需上传大于 2GB的文件,请使用“客户端上传镜像”。 在“我的镜像”、“开源镜像”或者“共享镜像”中选择已上传的镜像包部署。可通过镜像名称搜索镜像。 我的镜像:用户自定义上传的镜像包。 开源镜像: 容器镜像服务 SWR中提供的开源镜像。 共享镜像:不同账号之间共享的镜像包。 (可选)用户还可以通过单击“代码源”右侧链接,前往容器 镜像服务 SWR控制台对镜像进行更多管理操作。 CAE容器部署不支持arm架构的镜像。 软件包 选择软件包位置“CodeArts软件发布库”或“OBS对象存储选择”。 从“CodeArts软件发布库”选择对应软件包时,需要提前将软件包上传至软件发布库,具体操作请参考上传软件包。 从“OBS对象存储选择”中选择对应软件包时,需要先将软件包上传至OBS对象存储桶内,具体操作请参考上传对象。 语言/运行时:从下拉框中选择软件包对应的语言格式。具体操作请参考组件说明。 构建方式:根据业务需要选择“系统默认”或“自定义Dockerfile”。 使用“系统默认”:根据语言/运行时使用默认Dockerfile构建。 使用“自定义Dockerfile”:根据所选语言自定义Dockerfile内容构建。 创建组件。 单击“配置组件”,进入组件配置页面,具体操作请参考组件配置。 单击“创建组件并部署”,在弹出的对话框中单击“立即部署”,部署组件。 组件创建或部署完成后,在组件列表页可查看环境ID、应用ID、组件ID、组件名称,代码源、状态、实例个数、创建时间等信息。 图1 组件列表概览 若在组件创建后处于“未部署”状态,您可以直接在“组件列表”页面,单击列表“状态”列的“前往配置”,对组件进行配置并部署。 若在组件处于“运行中”状态,您可以在“组件列表”页面,单击列表“快捷跳转”列的,对组件进行重新配置并执行生效配置。
  • 操作步骤 登录CAE控制台。 在左侧导航栏中选择“组件列表”。 选择待操作组件,在“操作”列“更多”下拉框单击“编辑”。 参考下表重新设置组件信息。 表1 组件基本信息 参数 类别 说明 组件名称 - 新建组件的名称。组件名称命名规则:输入4到32个字符,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 版本号 - 组件的版本号。 格式为:A.B.C或者A.B.C.D。A、B、C、D为自然数,例如:1.0.0或者1.0.0.0。 实例规格 - 选择实例规格,例如:0.5core、1GiB;1core、1GiB;1core、2GiB;2core、4GiB。 实例数量 - 实例数量默认为2,最少为1,最大值为99。 说明: 组件创建成功后,支持手动伸缩组件实例,手动伸缩的实例数范围在1至99之间。 代码源 源码仓库 选择源码来源。本服务支持识别CodeArts、GitHub、GitCode、GitLab、Gitee和Bitbucket来源的代码。 将代码信息补充完整。 授权信息:从下拉框中选择对应的源码授权信息。如果您是首次使用该功能,在下拉框右侧单击“新建授权”,填写“授权名称”和选择“授权方式”,单击“确认”完成授权。单击“授权列表”可查看当前已创建的授权信息,选中列表前方复选框,可对已授权源码进行“重新授权”或“删除”。 用户名/组织:选择源码对应的用户名称或组织,用于当前项目的代码管理。 仓库名称:用于当前项目下各个模块代码的管理。 分支:选择对应的分支,用于开发对代码的管理。 语言/运行时:从下拉框中选择源码对应的语言格式。具体操作请参考组件说明。 自定义构建:构建命令可根据业务需要选择“使用默认命令或脚本”或“使用自定义命令”。 说明: 不同源码来源新建授权时授权方式不同,请按照实际情况进行选择。 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法构建,如Java:mvn clean package。 使用自定义命令:根据所选语言自定义构建命令;或修改build.sh文件后选择使用默认命令或脚本。 Dockerfile:组件来源是“源码仓库”时,根据业务需要设置。支持“自定义”和“系统默认”。 说明: 仅当“运行时”选择java时,可选择“系统默认”修改系统默认dockerfile中指定运行的maven构建制品文件名。 Dockerfile地址:当“Dockerfile”选择“自定义”时可设置。 “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。 Docker程序通过读取Dockerfile文件生成定制的镜像。 dockerfile地址只能包含字母、数字及.-_/且字符长度在1~255范围内的内容。 如果文件名为Dockerfile,允许只填写目录地址,但目录地址必须以/结尾。 制品文件名:当“Dockerfile”选择“系统默认”时可设置。 maven构建生成多个jar包时,选取指定的jar包运行,以".jar"结尾,支持模糊匹配,如:demo-1.0.jar,demo*.jar 镜像 用户可以通过“客户端上传镜像”和“页面上传镜像”两种方式上传镜像包。 客户端上传镜像:选择“客户端上传镜像”时,需要以root用户登录容器引擎所在的虚拟机,获取登录访问命令,并复制到节点上执行,上传镜像。 页面上传镜像:选择“页面上传镜像”时,单次仅支持添加1个镜像压缩包,文件大小(含解压后)不得超过 2 GB,支持 tar、tar.gz格式,仅支持上传1.11.2及以上容器引擎客户端版本制作的镜像压缩包,制作过程详见制作镜像压缩包。 如需上传大于 2GB的文件,请使用“客户端上传镜像”。 在“我的镜像”、“开源镜像”或者“共享镜像”中选择已上传的镜像包部署。可通过镜像名称搜索镜像。 我的镜像:用户自定义上传的镜像包。 开源镜像:容器镜像服务SWR中提供的开源镜像。 共享镜像:不同账号之间共享的镜像包。 (可选)用户还可以通过单击“代码源”右侧链接,前往容器镜像服务SWR控制台对镜像进行更多管理操作。 CAE容器部署不支持arm架构的镜像。 软件包 选择软件包位置“CodeArts软件发布库”或“OBS对象存储选择”。 从“CodeArts软件发布库”选择对应软件包时,需要提前将软件包上传至软件发布库,具体操作请参考上传软件包。 从“OBS对象存储选择”中选择对应软件包时,需要先将软件包上传至OBS对象存储桶内,具体操作请参考上传对象。 语言/运行时:从下拉框中选择软件包对应的语言格式。具体操作请参考组件说明。 构建方式:根据业务需要选择“系统默认”或“自定义Dockerfile”。 使用“系统默认”:根据语言/运行时使用默认Dockerfile构建。 使用“自定义Dockerfile”:根据所选语言自定义Dockerfile内容构建。 单击“完成编辑”。
  • 组件说明 CAE中组件支持的语言/运行时如表1所示。 表1 语言/运行时一览 支持的运行时 组件来源 Java8、Java11、Java17、Java21 源码仓库、Jar包 Tomcat8、Tomcat9 源码仓库、War包 Node.js8、Node.js14、Node.js16 源码仓库、Zip包 PHP7、PHP8 源码仓库、Zip包 Docker 镜像包 Python3 源码仓库、Zip包 .net core 源码仓库
  • 组件来源说明 组件来源 说明 源码仓库 支持识别CodeArts、GitHub、GitCode、GitLab、Gitee和Bitbucket来源的代码。 镜像 容器应用需要基于镜像创建,若选择私有镜像,用户首先需要将镜像上传至镜像仓库。支持以下上传方式: 直接通过“客户端上传镜像”和“页面上传镜像”上传镜像包。 前往容器镜像服务SWR控制台将镜像上传至镜像仓库,相关操作请参考上传镜像。 CAE容器部署不支持arm架构的镜像。 软件包 支持以下上传方式: 从CodeArts软件发布库选择对应软件包。需要提前将软件包上传至软件发布库,相关操作请参考上传软件包。 从OBS对象存储选择对应的软件包。需要提前将软件包上传至OBS桶中,相关操作请参考上传对象。
  • 操作步骤 登录CAE控制台。 在左侧导航栏中选择“组件列表”。 选择待操作组件,在“操作”列单击“升级”,进入升级组件页面。 参考下表设置组件升级后信息。 表1 组件基本信息 参数 类别 说明 组件名称 - 新建组件的名称。组件名称命名规则:输入4到32个字符,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 版本号 - 组件的版本号。 格式为:A.B.C或者A.B.C.D。A、B、C、D为自然数,例如:1.0.0或者1.0.0.0。 实例规格 - 选择实例规格,例如:0.5core、1GiB;1core、1GiB;1core、2GiB;2core、4GiB。 实例数量 - 实例数量默认为2,最少为1,最大值为99。 说明: 组件创建成功后,支持手动伸缩组件实例,手动伸缩的实例数范围在1至99之间。 代码源 源码仓库 选择源码来源。本服务支持识别CodeArts、GitHub、GitCode、GitLab、Gitee和Bitbucket来源的代码。 将代码信息补充完整。 授权信息:从下拉框中选择对应的源码授权信息。如果您是首次使用该功能,在下拉框右侧单击“新建授权”,填写“授权名称”和选择“授权方式”,单击“确认”完成授权。单击“授权列表”可查看当前已创建的授权信息,选中列表前方复选框,可对已授权源码进行“重新授权”或“删除”。 用户名/组织:选择源码对应的用户名称或组织,用于当前项目的代码管理。 仓库名称:用于当前项目下各个模块代码的管理。 分支:选择对应的分支,用于开发对代码的管理。 语言/运行时:从下拉框中选择源码对应的语言格式。具体操作请参考组件说明。 自定义构建:构建命令可根据业务需要选择“使用默认命令或脚本”或“使用自定义命令”。 说明: 不同源码来源新建授权时授权方式不同,请按照实际情况进行选择。 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法构建,如Java:mvn clean package。 使用自定义命令:根据所选语言自定义构建命令;或修改build.sh文件后选择使用默认命令或脚本。 Dockerfile:组件来源是“源码仓库”时,根据业务需要设置。支持“自定义”和“系统默认”。 说明: 仅当“运行时”选择java时,可选择“系统默认”修改系统默认dockerfile中指定运行的maven构建制品文件名。 Dockerfile地址:当“Dockerfile”选择“自定义”时可设置。 “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。 Docker程序通过读取Dockerfile文件生成定制的镜像。 dockerfile地址只能包含字母、数字及.-_/且字符长度在1~255范围内的内容。 如果文件名为Dockerfile,允许只填写目录地址,但目录地址必须以/结尾。 制品文件名:当“Dockerfile”选择“系统默认”时可设置。 maven构建生成多个jar包时,选取指定的jar包运行,以".jar"结尾,支持模糊匹配,如:demo-1.0.jar,demo*.jar 镜像 用户可以通过“客户端上传镜像”和“页面上传镜像”两种方式上传镜像包。 客户端上传镜像:选择“客户端上传镜像”时,需要以root用户登录容器引擎所在的虚拟机,获取登录访问命令,并复制到节点上执行,上传镜像。 页面上传镜像:选择“页面上传镜像”时,单次仅支持添加1个镜像压缩包,文件大小(含解压后)不得超过 2 GB,支持 tar、tar.gz格式,仅支持上传1.11.2及以上容器引擎客户端版本制作的镜像压缩包,制作过程详见制作镜像压缩包。 如需上传大于 2GB的文件,请使用“客户端上传镜像”。 在“我的镜像”、“开源镜像”或者“共享镜像”中选择已上传的镜像包部署。可通过镜像名称搜索镜像。 我的镜像:用户自定义上传的镜像包。 开源镜像:容器镜像服务SWR中提供的开源镜像。 共享镜像:不同账号之间共享的镜像包。 (可选)用户还可以通过单击“代码源”右侧链接,前往容器镜像服务SWR控制台对镜像进行更多管理操作。 CAE容器部署不支持arm架构的镜像。 软件包 选择软件包位置“CodeArts软件发布库”或“OBS对象存储选择”。 从“CodeArts软件发布库”选择对应软件包时,需要提前将软件包上传至软件发布库,具体操作请参考上传软件包。 从“OBS对象存储选择”中选择对应软件包时,需要先将软件包上传至OBS对象存储桶内,具体操作请参考上传对象。 语言/运行时:从下拉框中选择软件包对应的语言格式。具体操作请参考组件说明。 构建方式:根据业务需要选择“系统默认”或“自定义Dockerfile”。 使用“系统默认”:根据语言/运行时使用默认Dockerfile构建。 使用“自定义Dockerfile”:根据所选语言自定义Dockerfile内容构建。 图1 升级组件 单击“立即升级”,完成组件升级。
  • DMS for RabbitMQ自定义策略样例 如果系统预置的DMS for RabbitMQ权限,不满足您的授权要求,可以创建自定义策略。自定义策略中可以添加的授权项(Action)请参考细粒度策略支持的授权项。 目前华为云支持以下两种方式创建自定义策略: 可视化视图创建自定义策略:无需了解策略语法,按可视化视图导航栏选择云服务、操作、资源、条件等策略内容,可自动生成策略。 JSON视图创建自定义策略:可以在选择策略模板后,根据具体需求编辑策略内容;也可以直接在编辑框内编写JSON格式的策略内容。 具体创建步骤请参见:创建自定义策略。下面为您介绍常用的DMS for RabbitMQ自定义策略样例。 示例1:授权用户创建实例和删除实例 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dms:instance:create", "dms:instance:delete" ] } ] } 示例2:拒绝用户删除实例 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。 如果您给用户授予DMS FullAccess的系统策略,但不希望用户拥有DMS FullAccess中定义的删除实例权限,您可以创建一条拒绝删除实例的自定义策略,然后同时将DMS FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对DMS for RabbitMQ执行除了删除实例外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Effect": "Deny", "Action": [ "dms:instance:delete" ] } ] }
  • 示例流程 图1 给用户授权DMS for RabbitMQ权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予DMS for RabbitMQ的只读权限“DMS ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择分布式消息服务RabbitMQ版,进入RabbitMQ实例主界面,单击右上角“购买RabbitMQ实例”,尝试购买RabbitMQ实例,如果无法购买RabbitMQ实例(假设当前权限仅包含DMS ReadOnlyAccess),表示“DMS ReadOnlyAccess”已生效。 在“服务列表”中选择云硬盘(假设当前策略仅包含DMS ReadOnlyAccess),若提示权限不足,表示“DMS ReadOnlyAccess”已生效。 在“服务列表”中选择分布式消息服务RabbitMQ版(假设当前策略仅包含DMS ReadOnlyAccess),进入RabbitMQ实例主界面,如果能够查看RabbitMQ实例列表,表示“DMS ReadOnlyAccess”已生效。
  • 前提条件 给用户组授权之前,请您了解用户组可以添加的DMS for RabbitMQ系统策略,并结合实际需求进行选择,DMS for RabbitMQ支持的系统策略及策略间的对比,请参见:DMS for RabbitMQ系统策略。若您需要对除DMS for RabbitMQ之外的其它服务授权,IAM支持服务的所有策略请参见权限策略。 DMS for RabbitMQ的权限与策略基于分布式消息服务DMS,因此在IAM服务中为用户组授予DMS for RabbitMQ权限时,请选择并使用“DMS”的权限与策略。
  • DMS for RabbitMQ资源 资源是服务中存在的对象。在DMS for RabbitMQ中,资源包括:rabbitmq,您可以在创建自定义策略时,通过指定资源路径来选择特定资源。 表1 DMS for RabbitMQ的指定资源与对应路径 指定资源 资源名称 资源路径 rabbitmq 实例 【格式】 DMS:*:*:rabbitmq:实例ID 【说明】 对于实例资源,IAM自动生成资源路径前缀DMS:*:*:rabbitmq: 通过实例ID指定具体的资源路径,支持通配符*。例如: DMS:*:*:rabbitmq:*表示任意RabbitMQ实例。
  • DMS for RabbitMQ请求条件 您可以在创建自定义策略时,通过添加“请求条件”(Condition元素)来控制策略何时生效。请求条件包括条件键和运算符,条件键表示策略语句的Condition元素,分为全局级条件键和服务级条件键。全局级条件键(前缀为g:)适用于所有操作,服务级条件键(前缀为服务缩写,如dms:)仅适用于对应服务的操作。运算符与条件键一起使用,构成完整的条件判断语句。 DMS for RabbitMQ通过IAM预置了一组条件键,例如,您可以先使用dms:ssl条件键检查RabbitMQ实例是否开启SSL,然后再允许执行操作。下表显示了适用于DMS for RabbitMQ服务特定的条件键。 表2 DMS for RabbitMQ请求条件 DMS for RabbitMQ条件键 运算符 描述 dms:publicIP Bool Null 是否开启公网 dms:ssl Bool Null 是否开启SSL
  • 约束与限制 如果“allow.everyone.if.no.acl.found”为“true”,且Topic未授权任何用户,此时所有的用户都可以订阅/发布此Topic。如果Topic已授权某一个或多个用户,此时只有授权的用户可以订阅/发布此Topic,其他未授权的用户不能订阅/发布此Topic。“allow.everyone.if.no.acl.found”在配置参数中修改。 如果“allow.everyone.if.no.acl.found”为“false”,初始用户(即首次开启密文接入时设置的用户)拥有订阅/发布Topic的权限,其他用户在未授权时不能订阅/发布Topic。“allow.everyone.if.no.acl.found”在配置参数中修改。 如果Topic同时设置了“默认用户”权限和单个用户权限,取两者的并集。 单机实例不支持设置Topic权限。
  • 步骤三:添加DNAT规则 在“公网NAT网关”页面,在新购买的公网NAT网关后,单击“设置规则”,进入公网NAT网关详情页。 在“DNAT规则”页签,单击“添加DNAT规则”,弹出“添加DNAT规则”对话框。 图3 公网NAT网关详情页 设置如下参数。 使用场景:选择“虚拟私有云” 端口类型:选择“具体端口” 支持协议:选择“TCP” 公网IP类型:选择“弹性公网IP”,在下拉框中选择已购买的弹性公网IP 公网端口:输入“9011” 实例类型:选择“自定义” 私网IP:输入获取Kafka实例的信息中记录的Kafka实例的一个内网连接地址 私网端口:输入“9011” 如果想要了解更多的参数信息,请参考添加DNAT规则。 图4 添加DNAT规则 单击“确定”,完成DNAT规则的添加。 DNAT规则添加成功后,在DNAT规则列表中查看此规则的状态,若“状态”为“运行中”,表示创建成功。 为获取Kafka实例的信息中记录的其他内网连接地址创建DNAT规则,每个DNAT规则需要设置不同的弹性公网IP。 创建DNAT规则的具体步骤参考2~4。 DNAT规则全部创建成功后,在“DNAT规则”页签,查看已创建的DNAT规则,并记录私网IP对应的弹性公网IP。 图5 DNAT规则列表
  • 步骤五:验证接口连通性 参考使用客户端连接Kafka(关闭SASL)或者使用客户端连接Kafka(开启SASL),测试是否可以生产和消费消息。 测试接口连通性时,注意以下几点: 连接Kafka实例的地址为“advertised.listeners IP:9011”,以图6为例,连接Kafka实例的地址为“124.xxx.xxx.167:9011,124.xxx.xxx.174:9011,124.xxx.xxx.57:9011”。 在Kafka实例安全组的入方向规则中放通9011端口。 连接Kafka实例的客户端已开启公网访问功能。
  • 步骤二:开始诊断 单击“开始诊断”,在“诊断记录”区域,显示一条“状态”为“诊断中”的记录。 当“状态”变为“诊断成功”时,表示消息积压诊断已经完成。 在诊断记录所在行,单击“查看详情”,进入“诊断详情”页面。 在页面顶部查看消息组异常项、失败项和正常项的数量。在“诊断维度”区域,单击包含异常项的维度名称,例如:重平衡,查看导致异常的可能原因、受影响的分区或者broker,以及解决消息堆积的建议。 图3 诊断详情
  • 约束与限制 单机实例不支持创建Kafka数据复制的Smart Connect任务。 一个实例最多创建18个Smart Connect任务。 使用Kafka数据复制时,两个Kafka实例间只能通过内网连接。如果两个Kafka实例处于不同的VPC中,请先打通网络,方法可以参考使用VPCEP实现跨VPC访问Kafka或者对等连接。 Smart Connect任务创建成功后,不支持修改任务参数。 2022年7月1日前已开启Smart Connect的实例,如果没有Kafka数据复制,请先关闭Smart Connect,然后再重新开启Smart Connect。 确保目标Kafka实例Topic的“批处理消息最大值”大于等于524288字节,否则会导致数据无法同步。如果目标Kafka实例没有创建Topic,在数据同步时会自动创建Topic,此Topic的“批处理消息最大值”和源Kafka实例Topic相同,此时需要确保源Kafka实例Topic的“批处理消息最大值”大于等于524288字节。修改“批处理消息最大值”的方法请参考修改Kafka Topic配置。
  • 前提条件 删除消息前,请先在消费代码中设置“auto.offset.reset”参数。“auto.offset.reset”用来指定当Kafka中没有初始偏移量或者当前偏移量不存在(例如当前偏移量已被删除)时,消费者的消费策略。取值如下: latest:偏移量自动被重置到最晚偏移量。 earliest:偏移量自动被重置到最早偏移量。 none:向消费者抛出异常。 如果将此配置设置为latest,新增分区时,生产者可能会在消费者重置初始偏移量之前开始向新增加的分区发送消息,从而导致部分消息丢失。
  • 使用PEM格式证书访问Kafka实例 以下示例演示在Java客户端使用PEM格式证书访问Kafka实例。 参考Java客户端接入示例,连接Kafka实例生产消费消息。其中,生产消息配置文件和消费消息配置文件中的SASL信息修改为如下内容。 #SASL认证机制为“PLAIN”时,配置信息如下。 sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="username" \ password="password"; #SASL认证机制为“SC RAM -SHA-512”时,配置信息如下。 sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="username" \ password="password"; #设置Kafka安全协议。 security.protocol=SASL_SSL #ssl truststore.location为SSL证书的存放路径,如下代码以Windows系统路径格式举例,您在使用时请根据实际运行环境修改路径格式。 ssl.truststore.location=E:\\temp\\client.pem #ssl.truststore.password为服务器证书密码,使用PEM格式证书访问Kafka实例,无需配置ssl.truststore.password参数。 #ssl.truststore.password=dms@kafka #ssl.endpoint.identification.algorithm为证书 域名 校验开关,为空则表示关闭,这里需要保持关闭状态,必须设置为空。 ssl.endpoint.identification.algorithm= #添加ssl.truststore.type参数,指定客户端使用的证书类型是PEM。 ssl.truststore.type=PEM
  • 约束与限制 2023年4月25日及以后创建的实例,支持在控制台创建消费组。 如果“auto.create.groups.enable”设置为“true”,当消费组的状态为“EMPTY”且从未提交过offset,系统将在十分钟后自动删除该消费组。 如果“auto.create.groups.enable”设置为“false”,系统不会自动删除消费组。如果需要删除消费组,需要您手动删除。 如果消费组从未提交过offset,当Kafka实例重启后,该消费组会被删除。
  • 操作影响 对数据量大的Topic进行分区平衡会占用大量的网络和存储带宽,业务可能会出现请求超时或者时延增大,建议在业务低峰期时操作。对Topic进行分区平衡前,根据Kafka实例规格对比当前实例负载情况,评估是否可以进行分区平衡,建议预留足够的带宽进行分区平衡,CPU使用率在90%以上时,不建议进行分区平衡。Topic的数据量和CPU使用率可以通过监控页面的“队列数据容量”和“CPU使用率”查看,具体步骤请参考查看Kafka监控数据。 带宽限制是指设定Topic进行副本同步的带宽上限,确保不会对该实例上的其他Topic造成流量冲击。但需要注意,带宽限制不会区分是正常的生产消息造成的副本同步还是分区平衡造成的副本同步,如果带宽限制设定过小,可能会影响正常的生产消息,且可能会造成分区平衡一直无法结束。如果分区平衡一直无法结束,请联系客服处理。 分区平衡任务启动后,不能删除正在进行分区平衡的Topic,否则会导致分区平衡任务无法结束。 分区平衡后Topic的metadata会改变,如果生产者不支持重试机制,会有少量的请求失败,导致部分消息生产失败。 数据量大的Topic进行分区平衡的时间会比较长。Topic的数据量可以通过监控页面的“队列数据容量”查看,具体步骤请参考查看Kafka监控数据。在不影响业务的前提下,建议适当调小Topic老化时间并等待消息老化,减少迁移数据,加快迁移速度。分区平衡任务结束后可重新调整为初始值。
  • 带宽限制值估算方法 带宽限制值受分区平衡任务执行时间、分区副本Leader/Follower分布情况以及消息生产速率等因素影响,具体分析如下。 带宽限制值作用范围为整个Broker,对该Broker内所有副本同步的分区进行带宽限流。 带宽限制会将分区平衡后新增的副本视为Follower副本限流,分区平衡前的Leader副本视为Leader副本限流,Leader副本的限流和Follower副本限流分开计算。 带宽限制不会区分是正常的生产消息造成的副本同步还是分区平衡造成的副本同步,因此两者的流量都会被限流统计。 假设分区平衡任务需要在200s内完成,每个副本的数据量为100MB,在以下几种场景中,估算带宽限制值。 场景一:Topic1有2分区2副本,Topic2有1分区1副本,所有Leader副本在同一个Broker上,如表4所示,Topic1和Topic2分别需要新增1个副本,如表5所示。 表4 分区平衡前Topic分区的副本分布 Topic名称 分区名称 Leader副本所在Broker Follower副本所在Broker Topic1 0 0 0,1 Topic1 1 0 0,2 Topic2 0 0 0 表5 分区平衡后Topic分区的副本分布 Topic名称 分区名称 Leader副本所在Broker Follower副本所在Broker Topic1 0 0 0,1,2 Topic1 1 0 0,1,2 Topic2 0 0 0,2 图7 场景一分区平衡图 如图7所示,有3个副本需要从Broker 0拉取数据,Broker 0中每个副本的数据量为100MB,Broker 0中只有Leader副本,Broker 1和Broker 2中只有Follower副本,由此得出以下数据: Broker 0在200s内完成分区平衡所需的带宽限制值=(100+100+100)/200=1.5MB/s Broker 1在200s内完成分区平衡所需的带宽限制值=100/200=0.5MB/s Broker 2在200s内完成分区平衡所需的带宽限制值=(100+100)/200=1MB/s 综上所述,若想要在200s内完成分区平衡任务,带宽限制值应设为大于等于1.5MB/s。由于控制台的带宽限制只能是整数,因此带宽限制值应设为大于等于2MB/s。 场景二:Topic1有2分区1副本,Topic2有2分区1副本,Leader副本分布在不同Broker上,如表6所示,Topic1和Topic2分别需要新增1个副本,如表7所示。 表6 分区平衡前Topic分区的副本分布 Topic名称 分区名称 Leader副本所在Broker Follower副本所在Broker Topic1 0 0 0 Topic1 1 1 1 Topic2 0 1 1 Topic2 1 2 2 表7 分区平衡后Topic分区的副本分布 Topic名称 分区名称 Leader副本所在Broker Follower副本所在Broker Topic1 0 0 0,2 Topic1 1 1 1,2 Topic2 0 1 1,2 Topic2 1 2 2,0 图8 场景二分区平衡图
  • 修改定时分区平衡任务 在“后台任务管理”页面的“定时任务”页签中,单击页面左上角下拉框,选择时间段,在搜索对话框中输入待修改定时分区平衡任务的Topic名称,按“Enter”,实现快速查找定时分区平衡任务。 图5 查找定时分区平衡任务 在待修改的定时分区平衡任务后,单击“修改”。 在弹出的“修改定时任务”对话框中,您可以修改定时分区平衡任务的时间,还可以取消定时分区平衡任务,具体操作如下。 修改定时分区平衡任务的时间:修改时间,单击“确定”。 取消定时分区平衡任务:选择“取消”,如图6所示,单击“确定”。 图6 取消定时分区平衡任务
  • 操作影响 当流控值达到上限后,会导致生产/消费的时延增大。 设置的流控值较小且生产者速率较大时,可能会造成生产超时、消息丢失,导致部分消息生产失败。 初始生产/消费的流量较大,如果设置一个较小的流控值,会导致生产/消费的时延增大、部分消息生产失败。建议逐次减半设置流控值,待生产/消费稳定后继续减半设置,直到设置为目标流控值。例如初始生产流量100MB/s,可先设置生产流控为50MB/s,待稳定后再修改为25MB/s,直到目标流控值。
  • DMS for Kafka请求条件 您可以在创建自定义策略时,通过添加“请求条件”(Condition元素)来控制策略何时生效。请求条件包括条件键和运算符,条件键表示策略语句的 Condition元素,分为全局级条件键和服务级条件键。全局级条件键(前缀为g:)适用于所有操作,服务级条件键(前缀为服务缩写,如dms:)仅适用于对应服务的操作。运算符与条件键一起使用,构成完整的条件判断语句。 DMS for Kafka通过IAM预置了一组条件键,例如,您可以先使用dms:ssl条件键检查Kafka实例是否开启SASL,然后再允许执行操作。下表显示了适用于DMS for Kafka服务特定的条件键。 表2 DMS for Kafka请求条件 DMS for Kafka条件键 运算符 描述 dms:connector Bool Null 是否开启Smart Connect dms:publicIP Bool Null 是否开启公网 dms:ssl Bool Null 是否开启SSL
  • 前提条件 给用户组授权之前,请您了解用户组可以添加的DMS for Kafka系统策略,并结合实际需求进行选择,DMS for Kafka支持的系统策略及策略间的对比,请参见:DMS for Kafka系统策略。若您需要对除DMS for Kafka之外的其它服务授权,IAM支持服务的所有策略请参见权限策略。 DMS for Kafka的权限与策略基于分布式消息服务DMS,因此在IAM服务中为用户组授予DMS for Kafka权限时,请选择并使用“DMS”的权限与策略。
  • DMS for Kafka资源 资源是服务中存在的对象。在DMS for Kafka中,资源包括:kafka,您可以在创建自定义策略时,通过指定资源路径来选择特定资源。 表1 DMS for Kafka的指定资源与对应路径 指定资源 资源名称 资源路径 kafka 实例 【格式】 DMS:*:*:kafka:实例ID 【说明】 对于实例资源,IAM自动生成资源路径前缀DMS:*:*:kafka: 通过实例ID指定具体的资源路径,支持通配符*。例如: DMS:*:*:kafka:*表示任意Kafka实例。
  • 示例流程 图1 给用户授权DMS for Kafka权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予DMS for Kafka的只读权限“DMS ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择分布式消息服务Kafka版,进入Kafka实例主界面,单击右上角“购买Kafka实例”,尝试购买Kafka实例,如果无法购买Kafka实例(假设当前权限仅包含DMS ReadOnlyAccess),表示“DMS ReadOnlyAccess”已生效。 在“服务列表”中选择云硬盘(假设当前策略仅包含DMS ReadOnlyAccess),若提示权限不足,表示“DMS ReadOnlyAccess”已生效。 在“服务列表”中选择分布式消息服务Kafka版(假设当前策略仅包含DMS ReadOnlyAccess),进入Kafka实例主界面,如果能够查看Kafka实例列表,表示“DMS ReadOnlyAccess”已生效。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全