华为云用户手册

  • 问题现象 构建失败,报错信息为“制作Docker镜像失败”,报错日志例如: too many requests: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit request canceled while wating for connection Get https://registry-1.docker.io/v2/: net/http: request canceled while wating for connection (Client.Timeout exceeded while awating headers)
  • 预置流水线简介 示例项目中预置以下5个流水线任务,可根据需要查看并使用。 表1 预置流水线任务 预置流水线任务 任务说明 phoenix-workflow 基本的流水线任务。 phoenix-workflow-test 测试环境对应的流水线任务。 phoenix-workflow-work Worker功能对应的流水线任务。 phoenix-workflow-result Result功能对应的流水线任务。 phoenix-workflow-vote Vote功能对应的流水线任务。
  • 配置准出条件 为了控制代码的质量,代码必须经过扫描,并且错误数量控制在合理范围内,才允许发布。通过添加质量门禁可以有效地自动化控制流程。 在流水线任务“phoenix-workflow”详情页,单击“编辑”。 在阶段“代码检查”中,单击“准出条件”。 在“准出条件”窗口中,单击“标准策略准出条件”插件后的“添加”。 选择“系统策略”,单击“确定”。 单击“保存并执行”,启动流水线任务。 如果代码检查问题数未达到准出条件,流水线任务将执行失败。
  • 背景信息 CodeArts结合多年研发经验与业界先进的实践提出了一套可操作可落地的敏捷开发方法论:HE2E DevOps实施框架。 图1 HE2E DevOps实施框架 规划和设计 步骤①和②是业务(或者是客户)与技术之间进行产品规划,梳理产品整体脉络,以及进行产品规划实施设计,并控制需求粒度与拆分的过程。 软件开发的本质是为了解决问题,提供用户价值的,而不仅是为了提供功能。影响地图就是用来鉴别用户需求是什么,深层的根因是什么。 用户故事就是目标和需求的载体,以用户的场景来讲故事,便于在客户、业务与开发之间进行信息的传递。在这个过程中,独立的需求条目的堆积,很容易导致只能看到各个需求条目,不能从整个解决方案思考需求。用户故事以用户使用的场景为主线,将大的阶段点,及其细分的活动,以树状的结构进行梳理和展现,既可以看到独立的需求条目,又能够看到整体需求场景。 计划和跟踪、迭代开发 步骤③~⑩是Scrum框架过程,是主要的管理实践。 Scrum定义了一个相对完整的敏捷过程管理的框架。在CodeArts中,将Scrum的框架与团队日常的开发活动,很好的融合起来。主要的过程产物包括产品故事列表、迭代故事列表、潜在可交付的产品增量、以及过程中产生的问题列表;核心的团队活动包括Sprint计划会议、团队每日站会、Sprint演示会议、Sprint回顾会议等会议、以及团队的日常更新。 同时,将Kanban方法与Scrum框架进行了结合,团队借鉴Kanban方法中的精益思想,可视化价值流,发现并解决阻塞与瓶颈,加速价值流交付,并加快反馈回路,持续进行改进。 持续交付 从步骤⑪开始,进入到工程实践,也就是通常说的CI/CD过程。 持续交付以代码配置管理为基础,除了传统意义的代码资产安全与管控、多人并行开发、版本与基线管理外,也体现了团队的协作与沟通。 代码检查(即静态扫描)、自动化的构建、各阶段的自动化测试、以及相应的自动化部署过程,都被有机的串联在流水线上。 除了代码检查、构建、测试、部署等动态的阶段与活动,还有制品管理,以及各级的环境管理,包括开发环境、测试环境、准生产环境,以及生产环境。 持续交付流水线就是将整个持续交付中,都有哪些阶段,分别运行在什么环境,每个阶段执行什么活动,准入与准出的质量门禁,以及每个阶段的输入与输出的制品进行管理。
  • 方案架构 “凤凰商城”示例程序架构 “凤凰商城”示例程序的架构图如图2所示。 图2 凤凰商城技术架构图 示例程序由表1中的5个可以独立开发、测试和部署的微服务组件构成。 表1 凤凰商城微服务组件表 微服务组件 说明 Web用户端服务器(对应样例代码中的“Vote”功能) 业务逻辑:用户可以通过浏览器访问此服务的WebUI。当用户在特定商品上单击“Like”时,服务将用户所选择物品的记录保存在Redis缓存中。 技术栈:Python、Flask框架。 应用服务器:Gunicorn。 Web管理端服务器(对应样例代码中的“Result”功能) 业务逻辑:用户可以通过浏览器访问此服务的WebUI,会动态显示用户端UI上用户单击“Like”的统计数据,此数据来自PostgreSQL数据库。 技术栈:Node.js、express框架。 应用服务器:server.js。 后台订单批处理程序(对应样例代码中的“Worker”功能) 业务逻辑:此服务为后台进程,会监控Redis缓存中物品记录,并将新纪录取出并保存在PostgreSQL数据库中,以便管理端UI可以抽取数据进行统计显示。 技术栈:.net core或者Java(此服务提供两种技术栈实现了同样的功能,可根据需要修改配置选择其中一个作为运行时进程)。 订单缓存 业务逻辑:此服务作为用户端UI服务的数据持久化服务存在。 技术栈:Redis。 订单数据库 业务逻辑:此服务作为管理端UI服务的数据源。 技术栈:PostgreSQL。 “DevOps全流程样例项目”构成 “DevOps全流程样例项目”是一个Scrum类型的模板项目,项目中预置了部分服务的使用模板。项目实践过程中涉及到的产品及服务如下表。 表2 实践涉及产品/服务列表 服务 说明 软件开发生产线 需求管理 预置3个已规划并已完成的迭代、项目的模块设置、以及若干统计报表。 代码托管 预置代码仓库“phoenix-sample”,存放项目示例代码。 代码检查 预置4个任务,任务详情介绍请参见步骤四:检查代码。 编译构建 预置5个任务,任务详情介绍请参见步骤五:构建应用并推送镜像至SWR。 制品仓库 用于存储通过构建任务生成的软件包。 部署 预置3个应用,应用详情介绍请参见步骤六:部署应用至CCE。 测试计划 功能测试用例库,预置十余个测试用例。 流水线 预置5条流水线,流水线详情介绍请参见步骤八:配置流水线,实现持续交付。 其它组件和服务 统一身份认证 服务 用于管理账号。 容器镜像服务 用于存放构建任务生成的Docker镜像。 云容器引擎 用于软件包部署,与E CS 部署属于两种不同的部署方式。 弹性云服务器 用于软件包部署,与CCE部署属于两种不同的部署方式。
  • 购买并配置云容器引擎 本节中使用的是云容器引擎CCE。 通过控制台可购买CCE集群。 其中集群及节点的必要配置建议参照表2与表3,表中未涉及的可根据实际情况选择。 表2 CCE集群购买配置 配置分类 配置项 配置建议 基础配置 集群类型 选择“CCE Standard 集群”。 计费模式 选择“按需计费”。 集群名称 输入自定义名称。 集群版本 根据需要选择,建议选择最新版本。 网络配置 容器网络模型 选择“容器隧道网络”。 虚拟私有云 选择已有的虚拟私有云,如果列表中没有合适的选项,单击“新建虚拟私有云”完成创建。 默认节点子网 选择已有的子网,如果列表中没有合适的选项,单击“新建子网”完成创建。 容器网段 勾选“自动设置网段”。 表3 节点配置 配置分类 配置项 配置建议 节点配置 计费模式 选择“按需计费”。 节点类型 选择“弹性云服务器-虚拟机”。 节点规格 选择2vCPUs 8GiB及以上规格即可。 操作系统 选择公共镜像中的Euler镜像。 节点名称 输入自定义名称 。 登录方式 选择“密码”。 密码 输入自定义密码 。 网络配置 节点IP 选择“自动分配”。 弹性公网IP 选择“自动创建”。
  • 设置定时执行任务 为了防止问题代码进入生产环境,确保应用总是处于可部署的状态,团队建议对应用进行持续不断地验证。 通过以下设置,可实现构建任务的定时执行。 在任务“phoenix-sample-ci”的详情页,单击“编辑”。 选择“执行计划”页签。 打开“启用定时执行”开关,根据需要选择执行日与执行时间,关闭“代码变化才执行”,保存任务。 本文档中勾选“全选”,执行时间为“12:00”(本文中使用默认时区,可以根据实际需要修改时区)。 验证配置结果:根据配置时间查看构建任务是否自动执行,本节不再赘述。
  • 设置提交代码触发自动编译 通过以下配置,可实现代码变更后自动触发构建任务的执行,从而实现项目的持续集成。 在任务“phoenix-sample-ci”的详情页,单击“编辑”。 选择“执行计划”页签。 打开“提交代码触发执行”开关,保存任务。 由于在“参数设置”页签中“codeBranch”配置的默认值为“master”,因此本次设置的结果是当master有代码变更时自动触发构建。 验证配置结果:修改项目代码并提交至master,即可查看构建任务是否自动执行。
  • 配置SWR服务 本节使用SWR来保存环境镜像,在执行任务前需要获取SWR登录指令、创建组织。 在CodeArts中单击导航“控制台”。在控制台单击左上角搜索并进入SWR服务。 请检查页面左上方的“区域”列表,请确保与编译构建任务所在区域相同。如果区域不同,请选择相同区域。 单击“登录指令”,页面弹框显示登录指令。 其中, “-u”之后的字符串为用户名。 “-p”之后的字符串为密码。 最后的字符串为SWR服务器地址,此地址即为后续配置并执行任务中的参数“dockerServer”。 图1 登录指令 此处生成的登录指令为临时登录指令,有效期为24小时。如果需要长期有效的登录指令,请参见获取长期有效登录指令。 单击“创建组织”,在弹框中输入组织名称“phoenix”(如果页面提示“组织已存在”,请自定义其它名称),单击“确定”。 这里的组织名称,即为后续配置并执行任务中的参数“dockerOrg”。
  • 预置任务简介 样例项目中预置了以下5个构建任务。 表1 预置任务 预置任务 任务说明 phoenix-sample-ci 基本的构建任务。 phoenix-sample-ci-test 构建测试环境可用镜像的任务。 phoenix-sample-ci-worker 构建Worker功能镜像的任务。 phoenix-sample-ci-result 构建Result功能镜像的任务。 phoenix-sample-ci-vote 构建Vote功能镜像的任务。 本章节以任务“phoenix-sample-ci”为例进行讲解,此任务包含的步骤如下。 表2 构建步骤 构建步骤 说明 制作Vote镜像并推送到SWR仓库 依据代码仓库中的“vote/Dockerfile”文件制作Vote功能镜像,并将镜像推送到容器 镜像服务 。 制作Result镜像并推送到SWR仓库 依据代码仓库中的“result/Dockerfile”文件制作并推送Result功能镜像,并将镜像推送到容器镜像服务。 使用Maven安装Worker依赖包 使用Maven安装Worker功能所需的依赖。 制作Worker镜像并推送到SWR仓库 依据代码仓库中的“worker/Dockerfile”文件制作并推送Worker功能镜像,并将镜像推送到容器镜像服务。 生成Postgres and Redis Dockerfile 通过shell命令生成Dockerfile文件,用以制作Postgres(数据库)和Redis(缓存)镜像。 制作Postgres镜像并推送到SWR仓库 依据“生成Postgres and Redis Dockerfile”步骤中所生成的Dockerfile文件制作Postgres镜像,并将镜像推送到容器镜像服务。 制作Redis镜像并推送到SWR仓库 依据“生成Postgres and Redis Dockerfile”步骤中所生成的Dockerfile文件制作Redis镜像,并将镜像推送到容器镜像服务。 替换Docker-Compose部署文件镜像版本 为了将镜像部署到ECS时,能够可以拉取到正确的镜像,使用shell命令进行完成以下操作。 使用sed命令,依次将文件“docker-compose-standalone.yml”中的参数替换为构建任务的参数“dockerServer”、“dockerOrg”、“BUILDNUMBER”进行替换。 使用tar命令,将文件“docker-compose-standalone.yml”压缩为“docker-stack.tar.gz”,将部署所需文件进行打包,以便于后续步骤将该文件上传归档。 替换Kubernetes部署文件镜像版本 为了将镜像部署到CCE时,能够可以拉取到正确的镜像,使用shell命令进行完成以下操作。 使用sed命令,将代码仓库中目录“kompose”下所有以“deployment”结尾的文件中的参数“docker-server”、“docker-org”,替换为构建任务的参数“dockerServer”、“dockerOrg”。 使用sed命令,将代码仓库中“result-deployment.yaml”、“vote-deployment.yaml”、“worker-deployment.yaml”三个文件中的参数“image-version”用构建任务参数“BUILDNUMBER”进行替换。 上传Kubernetes部署文件到软件发布库 将“替换Kubernetes部署文件镜像版本”步骤中修改后的所有“.yaml”文件上传到软件发布库中归档。 上传docker-compose部署文件到软件发布库 将“替换Docker-Compose部署文件镜像版本”步骤中压缩好的“docker-stack.tar.gz”上传到软件发布库中归档。
  • 预置任务简介 样例项目中预置了以下4个代码检查任务。 表1 预置任务 预置任务 任务说明 phoenix-codecheck-worker 检查Worker功能对应代码的任务。 phoenix-codecheck-result 检查Result功能对应代码的任务。 phoenix-codecheck-vote 检查Vote功能对应代码的任务。 phoenix-sample-javas 检查整个代码仓库对应的JavaScript代码的任务。
  • 检视代码、合并分支 开发人员发起合并请求。 开发人员Chris完成代码开发,确认无误后,即可发起合并请求,将功能分支合并到master中。 进入代码仓库,选择“合并请求”页签,单击“新建合并请求”。 源分支选择“Feature-Store”,目标分支选择“master”,单击“下一步”。 参照表3编辑合并请求详情。 表3 合并请求配置 配置项 配置建议 标题 输入“添加门店网络列表”。 合并人 单击,在弹框中勾选“Maggie”,单击“确定”。 审核人 单击,在弹框中勾选“Maggie”,单击“确定”。 单击“新建合并请求”完成合并请求的创建。 项目经理评审并完成代码合入。 本文档中,合并请求的评审人与合并人均是项目经理Maggie。因此Maggie可评审合并请求内容,并在评审通过后完成分支合入。 进入代码仓库后,选择“合并请求”页签,可找到由开发人员Chris创建的合并请求。 单击该请求,查看合并请求详情。 可在页面中留下评审意见。单击审核门禁中“通过”完成审核。 单击“合入”,将分支合入“master”。 如果发起分支合并请求时勾选了“合并后删除源分支”,分支“Feature-Store”将在分支合并完成后被删除。
  • 跟踪项目状态 每日站立会议跟踪任务进度。 迭代开始后,项目组通过每日站立会议沟通每个工作项的当前进展,并对工作项状态进行更新。 使用卡片模式能够简单直观的查看迭代中各工作项的当前状态。 进入“迭代”页面,单击图标,切换到卡片模式。页面中展示了处于每种状态下的工作项卡片,通过拖拽工作项卡片即可更新其状态。 迭代评审会议验收迭代成果。 在到达迭代的预计结束时间前,项目组召开迭代评审会议,展示当前迭代的工作成果。 “迭代”页面提供了迭代统计图表,团队可以方便的统计当前迭代的进度情况,包括需求完成情况、迭代燃尽图、工作量等。 进入“迭代”页面,单击“统计”,即可展开迭代进度视图。
  • 持续交付流程安全 在进行持续交付的过程中,可以通过设置私密参数、制品安全扫描、配置主机安全组操作,保证流程中的信息安全。 表3 持续交付流程安全 安全配置 说明 配置建议 参考资料 设置私密参数 编译构建、部署、流水线、测试计划服务支持私密参数功能。私密参数会被服务加密存储,使用时解密,同时在运行日志里不可见。 建议将包含敏感信息的参数设置为私密参数,以防止敏感信息泄露。 配置构建任务参数 配置部署服务应用的参数 配置流水线参数 接口自动化用例敏感参数配置 制品安全扫描 制品仓库服务提供制品安全扫描功能,支持对构建产物进行 漏洞扫描 ,并且能记录开源漏洞扫描结果,提供流水线安全门禁,管控制品质量。 建议定期对关键制品进行安全扫描。 制品安全扫描 配置主机安全组 用户使用官方资源池执行部署时,部署服务支持通过指定IP连接用户主机执行部署脚本。 用户可以通过配置主机安全组,建立部署服务与主机之间的访问策略。 建议配置安全组,限制目标主机、代理主机仅能与部署服务官方资源池的对外开放IP进行通信,增强部署服务的安全性。 配置安全组
  • 运营安全 CodeArts具备精细化权限控制和审计追溯能力,以确保数据资产的安全。 表1 运营安全 安全配置 说明 配置建议 参考资料 精细化权限管控 CodeArts提供租户级权限、项目级权限、实例级权限三层权限模型,实现权限的清晰管理和控制。 建议管理员结合业务需要,遵从权限最小化原则,对成员分配权限。 CodeArts鉴权管理 审计日志 CodeArts各服务对接 云审计 服务( CTS ),提供操作记录的收集、存储和查询功能。 建议开通CTS以支撑安全分析、合规审计、资源跟踪和问题定位等场景。 各服务支持审计日志的操作请参考: 需求管理服务 代码检查服务 编译构建服务 部署服务 流水线服务 测试计划服务 开通CTS请参考CTS入门指引。 IP白名单管控 代码托管、制品仓库服务支持设置IP白名单,限制对代码、制品等数据资产的访问,仅允许白名单内的IP访问。 建议设置信任的IP地址为IP白名单,减少未经授权用户或恶意攻击者进入系统的风险,降低遭受暴力破解、DDoS攻击等的可能性。 设置代码仓库IP白名单 设置制品仓库IP白名单 安全水印 代码托管提供水印设置功能,支持在源代码浏览页面添加访问者水印,提高代码页面展示的安全性,辅助溯源追责。 建议打开水印设置,保护代码仓库的知识产权。 代码仓库水印设置
  • 代码安全 代码托管服务 (CodeArts Repo)通过提供访问令牌、部署密钥、保护分支管理等能力,为代码资产安全保驾护航。 表2 代码安全 安全配置 说明 配置建议 参考资料 访问令牌 CodeArts Repo为每个用户提供生成访问令牌功能,令牌仅在生成时显示一次,并且可以设置有效期,默认有效期1个月,最长有效期为1年。 建议在授权个人仓库访问权限给第三方时,创建访问令牌并设置有效期,避免暴露账号密码。 配置访问令牌 部署密钥 CodeArts Repo支持为代码仓库添加部署密钥,通过部署密钥访问代码仓库时只有只读权限。 建议在构建等对代码仓库只读场景下,使用部署密钥克隆代码仓,尽可能避免密钥泄露等影响代码仓安全。 配置部署密钥 保护分支管理 在代码仓库中可以设置保护分支,防止此分支被修改或误删。 建议将主干分支设置为保护分支,仅能通过合并请求的方式将代码合入主干分支,且禁止任何人对保护分支做强制推送。 配置保护分支 可见范围管理 CodeArts Repo支持对代码仓库设置以下可见范围。 私有(仓库仅对仓库成员可见,仓库成员可读写和访问仓库) 公开 项目内成员只读 租户内成员只读 所有访客只读 建议结合业务需要,在新建仓库时选择相应的可见范围,或为已创建的代码仓库调整可见范围。 管理员也可以根据需要设置是否可以创建可见范围为“公开”的代码仓库。 设置仓库可见范围请参考新建仓库。 管理员设置是否创建可见范围为“公开”的代码仓库请调整仓库公开性。 提交规则管理 CodeArts Repo支持为代码仓库设置提交规则,用户可以选择服务提供的提交规则,也可以自定义提交规则。 建议结合业务需要,为每个仓库设置提交规则,防止代码被随意修改。 配置提交规则
  • 实践案例指引 表1 服务最佳实践指引 服务 入门指引 整体流程类 使用CodeArts管理电子商城项目开发流程 软件开发生产线安全配置概述 需求管理 使用IPD系统设备类项目管理智能手表研发项目的原始需求 使用IPD系统设备类项目管理智能手表研发项目的缺陷 使用IPD系统设备类管理智能手表研发项目的基线评审 使用IPD系统设备类管理智能手表研发项目的特性树 使用看板项目对商城管理项目进行需求规划 代码托管 批量迁移GitLab内网仓库到Repo 如何批量将本地仓库导入Repo 流水线 通过微服务变更流水线修复项目BUG并快速发布 配置准出条件并对代码检查结果进行校验 通过流水线参数串联编译构建服务和部署服务 通过流水线生成标签名并通过上下文传递为代码仓库创建标签 基于Kubernetes原生Service的场景完成微服务蓝绿发布 代码检查 使用预置规则检查GitCode代码仓中的代码质量 使用预置规则检查通用Git代码仓中的代码质量 使用自定义规则检查CodeArts Repo代码仓中的代码质量 不上传代码到云服务的情况下使用代码检查服务 使用自定义执行机执行代码检查任务 CodeArts Check通过调用API执行MR增量检查 使用Jenkins插件集成CodeArts Check执行代码检查 编译构建 基于Maven构建产物制作Docker镜像并发布到镜像仓 使用Maven构建上传软件包至私有依赖库 使用Maven构建实现私有依赖包的上传及下载引用 使用NPM构建上传软件包至软件发布库 使用自定义执行机执行Maven构建 使用Maven构建上传软件包和推送镜像到SWR 使用Maven构建执行多任务构建工程 基于私有依赖库使用Maven构建并上传软件包 使用自定义构建环境执行构建任务 对C/C++构建工程进行构建加速 制品仓库 通过编译构建任务发布Maven组件并按照版本归档至私有依赖库 通过编译构建任务发布/获取NPM私有组件 通过编译构建任务发布/获取Go私有组件 通过编译构建任务发布/获取PyPI私有组件 通过Linux命令行上传/获取RPM私有组件 通过Linux命令行上传/获取Debian私有组件 批量迁移Maven/NPM/PyPI组件至私有依赖库 批量迁移jfrog仓库至私有依赖库 部署 通过代理主机在内网部署应用 基于Nginx实现应用的灰度发布 基于Kubernetes Nginx-Ingress实现应用的灰度发布 通过自托管资源池部署应用至云下IDC 通过自托管资源池实现跨Region虚拟机部署 测试计划 基于接口自动化用例和关键字驱动的电商平台测试 基于需求策略使用测试设计 性能测试 城市政务一网通办系统性能测试 JMeter测试工程原生性能压测 全局变量使用全流程 漏洞管理服务 扫描具有复杂访问机制的网站漏洞 手动探索文件录制指导 使用CodeArts Inspector服务对内网主机进行扫描 CodeArts IDE Online 基于CodeArts IDE Online快速开发、部署微服务 基于CodeArts IDE Online快速开发、发布 WeLink 应用 基于CodeArts IDE Online、TensorFlow和Jupyter Notebook开发深度学习模型 CodeArts IDE 使用 CodeArts IDE for C/C++ 开发OpenGl示例工程 使用 CodeArts IDE for Java 开发简单的Java工程 效能洞察 通过项目经理驾驶舱查看项目状况及项目工作负荷 联接 Jira与CodeArts Req数据双向同步
  • 背景说明 作为项目经理,需要及时掌握项目的整体运作情况,能够及时跟踪项目在所选时间段内需求交付和缺陷修复的进度、资源分配和风险。 而且项目经理经常遇到的问题是项目成员的工作饱和度不能直观的展现,特别是当成员跨项目时,做两个以上项目的任务,更增加了识别难度。 项目经理驾驶舱能够帮助项目经理对项目交付进行全链路跟踪,跟进项目进度以及识别交付风险。同时项目经理驾驶舱提供的工作负荷支持管理者通过项目或创建团队,快速筛选、查看成员的工作饱和度,掌握项目或团队工作项的计划和完成情况。
  • 准备工作 已有可用项目并添加项目成员,可参考新建项目、添加CodeArts项目成员并为项目成员添加查看项目经理驾驶舱的权限。 租户管理员:拥有Tenant Administrator权限的 IAM 用户账号,可以对租户下所有的项目进行管理设置,非租户管理员的可参考权限配置配置能查看项目经理驾驶舱的权限。 已在创建的项目中添加需求,可参考新建工作项新建工作项;如果需要为项目新建缺陷可参考新建缺陷。 在工作项中添加工时可参考添加工时。
  • 开通密钥轮转如何收费? 开通密钥轮转后,会收取相应的密钥存储费用,每个轮转的版本将作为一个独立的主密钥资源进行计算,调用次数计费与轮转次数计费无关。 以1个密钥开通轮转,轮转周期为30天,单价0.015元(抹零后0.01元)每小时为例: 第一个月:密钥的轮转版本为0,收费为0.01*24*30 + 0*0.01*24*30 = 7.2元。 第二个月:密钥的轮转版本为1,收费为0.01*24*30 + 1*0.01*24*30 = 14.4元。 第三个月:密钥的轮转版本为2,收费为0.01*24*30 + 2*0.01*24*30 = 21.6元。 以此类推 第n个月:密钥的轮转版本为n,收费为0.01*24*30 + (n-1)*0.01*24*30 = 7.2*n元。 父主题: 计费FAQ
  • Fabric控制台功能依赖的角色或策略 表4 Fabric控制台依赖服务的角色或策略 控制台功能 依赖服务 需配置角色/策略 服务授权 统一身份认证管理IAM IAM用户设置了IAM Agency Management FullAccess权限后才能在服务授权界面进行授权。 创建工作空间 湖仓构建 服务LakeFormation 设置了DataArtsFabricFullPolicy的用户可以创建工作空间,配置了LakeFormation ReadOnlyAccess后可以在创建工作空间时指定metastore为lakeformation metastore。 创建模型 对象存储服务 OBS IAM用户设置了DataArtsFabricFullPolicy之后,还需要设置OBS OperateAccess才能在模型管理界面创建模型并指定模型文件所在的OBS路径。 创建 消息通知 策略 统一身份认证管理IAM 消息通知服务 SMN IAM用户设置了DataArtsFabricFullPolicy之后,还需要设置IAM Agency Management ReadOnly权限和SMN ReadOnlyAccess权限才能在消息通知页面创建消息通知策略。
  • 角色与策略权限管理 Fabric服务支持角色与策略授权。默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 Fabric部署时通过物理区域划分,为项目级服务。授权时,“授权范围”需要选择“指定区域项目资源”,然后在指定区域(如华北-北京四)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果“授权范围”选择“所有资源”,则该权限在所有区域项目中都生效。访问Fabric时,需要先切换至授权区域。 下表列出了Fabric所有的系统权限。 表2 Fabric系统权限 系统角色/策略名称 描述 类别 依赖关系 DataArtsFabricFullPolicy Fabric服务的所有权限。 系统策略 IAM Agency Management FullAccess OBS OperateAccess LakeFormation ReadOnlyAccess KMS Administrator(可选) DataArtsFabricConsoleFullPolicy 在控制台页面使用Fabric服务的所有权限,包含DataArtsFabricFullPolicy的全部权限,以及部分在控制台页面需要的权限。 系统策略 IAM Agency Management FullAccess OBS OperateAccess LakeFormation ReadOnlyAccess IAM PolicyFullAccess KMS Administrator(可选) DataArtsFabricReadOnlyPolicy Fabric服务的只读访问权限。 系统策略 LakeFormation ReadOnlyAccess 下表列出了Fabric常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表3 Fabric常用操作与系统权限的授权关系 操作 DataArtsFabricConsoleFullPolicy DataArtsFabricFullPolicy DataArtsFabricReadOnlyPolicy 查询Workspace列表 √ √ √ 创建Workspace √ √ × 修改Workspace √ √ × 修改Workspace监控配置 √ √ × 删除Workspace √ √ × 查询计算资源 √ √ √ 创建计算资源 √ √ × 修改计算资源 √ √ × 删除计算资源 √ √ × 查询Workspace的Endpoint列表 √ √ √ 创建Workspace的Endpoint √ √ × 查询Workspace的Endpoint详情 √ √ √ 修改Workspace的Endpoint √ √ × 删除Workspace的Endpoint √ √ × 查询作业列表 √ √ √ 创建作业 √ √ × 查询作业 √ √ √ 修改作业 √ √ × 删除作业 √ √ × 查询服务列表 √ √ √ 创建服务 √ √ × 修改服务 √ √ × 查询服务 √ √ √ 删除服务 √ √ × 创建模型 √ √ × 查询模型列表 √ √ √ 查询模型 √ √ √ 删除模型 √ √ × 修改模型 √ √ × 创建标签 √ √ × 删除标签 √ √ × 获取标签列表 √ √ √ 查询指定资源标签 √ √ √ 标签查询资源列表 √ √ √ 创建消息通知策略 √ √ × 查询消息通知策略列表 √ √ √ 删除消息通知策略 √ √ × 查询运行作业列表 √ √ √ 运行作业 √ √ × 查询运行作业 √ √ √ 删除运行作业 √ √ × 取消运行作业 √ √ × 调用推理服务实例 √ √ × 查询路由列表 √ √ √ 查询Session信息 √ √ √ 订阅公共端点 √ √ ×
  • Web SDK下载 SDK下载后可参考Web SDK包完整性校验进行包完整性校验。 表1 Web UI SDK资源下载路径 版本 日期 资源 下载链接 说明 1.0.16 2025-03-28 Web UI SDK hwmsdk-webrtc-1.0.17.zip 完整性校验 hwmsdk-webrtc-1.0.17.zip.cms - 2025-03-28 Web UI SDK npm包 hwmeeting-1.0.17.tgz 完整性校验 hwmeeting-1.0.17.tgz.cms - 1.0.16 2024-12-17 Web UI SDK hwmsdk-webrtc-1.0.16.zip 完整性校验 hwmsdk-webrtc-1.0.16-sha256 - 2024-12-17 Web UI SDK npm包 hwmeeting-1.0.16.tgz 完整性校验 hwmeeting-1.0.16-sha256 - 1.0.15 2024-10-11 Web UI SDK hwmsdk-webrtc-1.0.15.zip 完整性校验 hwmsdk-webrtc-1.0.15-sha256 - 2024-10-11 Web UI SDK npm包 hwmeeting-1.0.15.tgz 完整性校验 hwmeeting-1.0.15-sha256 - 1.0.13 2024-07-12 Web UI SDK hwmsdk-webrtc-1.0.13.zip 完整性校验 hwmsdk-webrtc-1.0.13-sha256 - Web UI SDK npm包 hwmeeting-1.0.13.tgz 完整性校验 hwmeeting-1.0.13-sha256 - 1.0.12 2024-05-17 Web UI SDK hwmsdk-webrtc-1.0.12.zip 完整性校验 hwmsdk-webrtc-1.0.12-sha256 - Web UI SDK npm包 hwmeeting-1.0.12.tgz 完整性校验 hwmeeting-1.0.12-sha256 - 1.0.11 2023-12-19 Web UI SDK hwmsdk-webrtc-1.0.11.zip 完整性校验 hwmsdk-webrtc-1.0.11-sha256 - Web UI SDK npm包 hwmeeting-1.0.11.tgz 完整性校验 hwmeeting-1.0.11-sha256 - 1.0.10 2023-07-06 Web UI SDK hwmsdk-webrtc-1.0.10.zip - Web UI SDK npm包 hwmeeting-1.0.10.tgz 1.0.9 2023-01-06 Web UI SDK hwmsdk-webrtc-1.0.9.zip - Web UI SDK npm包 hwmeeting-1.0.9.tgz 1.0.8 2022-11-05 Web UI SDK hwmsdk-webrtc-1.0.8.zip - Web UI SDK npm包 hwmeeting-1.0.8.tgz 1.0.7 2022-06-29 Web UI SDK hwmsdk-webrtc-1.0.7.zip - Web UI SDK npm包 hwmeeting-1.0.7.tgz 1.0.6 2022-05-05 Web UI SDK hwmsdk-webrtc-1.0.6.zip 第一个商用版本 Web UI SDK npm包 hwmeeting-1.0.6.tgz 父主题: SDK下载
  • DDoS防护 AAD接入LTS 支持DDoS防护 AAD日志接入LTS。启用Anti-DDoS防护功能后,您可以将攻击日志记录到 云日志 服务(Log Tank Service,简称LTS)中,通过LTS记录的Anti-DDoS日志数据,快速高效地进行实时决策分析、设备运维管理以及业务趋势分析。关于DDoS防护 AAD服务的更多信息请参考服务版本差异。 使用DDoS原生基础防护时,具体接入方法请参见开启日志记录。 使用DDoS原生高级防护时,具体接入方法请参见开启日志记录。 使用DDoS高防时,具体接入方法请参见开启日志记录。 父主题: 使用云服务接入LTS
  • 操作步骤 进入开源镜像站首页。 选择“操作系统类”,筛选镜像;或者直接搜索目标镜像。 单击镜像卡片,根据弹出界面描述配置使用操作系统yum源;或者跳转至下载目录页面,下载操作系统镜像。以CentOS为例,如下图所示。 根据界面配置方法,可以配置操作系统yum源。 备份配置文件: cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 下载新的配置文档。 下载新的CentOS-Base.repo文件到/etc/yum.repos.d/目录下,选择 CentOS 版本:CentOS 8-stream。执行如下命令: wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-anon.repo 如果是内网用户,请参考通过华为云内网访问华为开源镜像站配置内网访问 域名 ,然后将2. 下载新的配置文档获取到的配置(CentOS-Base.repo文件)的域名替换成配置后的内网访问域名。 执行yum clean all清除原有yum缓存。 执行yum makecache(刷新缓存)或者yum repolist all(查看所有配置可以使用的文件,会自动刷新缓存)。
  • PostgreSQL/SQLServer连接参数说明 连接PostgreSQL/SQLServer时,相关参数如表1所示,金仓和 GaussDB 数据源可通过PostgreSQL连接器进行连接,支持的迁移作业的源端、目的端情况与PostgreSQL数据源一致。 作业运行中禁止修改密码或者更换用户。在作业运行过程中修改密码或者更换用户,密码不会立即生效且作业会运行失败。 表1 PostgreSQL/SQLServer连接参数 参数名 说明 取值样例 名称 连接的名称,根据连接的数据源类型,用户可自定义便于记忆、区分的连接名。 sql_link 数据库服务器 配置为要连接的数据库的IP地址或域名。 单击输入框后的“选择”,可获取用户的实例列表。 192.168.0.1 端口 配置为要连接的数据库的端口。 不同的数据库端口不同,请根据具体情况配置。例如: SQLServer默认端口:1433 PostgreSQL默认端口:5432 数据库名称 配置为要连接的数据库名称。 dbname 用户名 待连接数据库的用户。该数据库用户需要有数据表的读写权限,以及对元数据的读取权限。 cdm 密码 用户名密码。 - 使用Agent Agent功能待下线,无需配置。 - Agent Agent功能待下线,无需配置。 - 驱动类名 根据上传驱动选择对应驱动类名。 当前支持postgresql和kingbase8两种驱动类名。 - 引用符号 可选参数,连接引用表名或列名时的分隔符号,参考对应数据库的产品文档进行配置。 " 驱动版本 不同类型的关系数据库,需要适配不同的驱动,更多详情请参见如何获取驱动。 - 单次请求行数 可选参数,单击“显示高级属性”后显示。 指定每次请求获取的行数,根据数据源端和作业数据规模的大小配置该参数。如果配置过大或过小,可能影响作业的时长。 1000 单次提交行数 可选参数,单击“显示高级属性”后显示。 指定每次批量提交的行数,根据数据目的端和作业数据规模的大小配置该参数。如果配置过大或过小,可能影响作业的时长。 10000 SSL加密 可选参数,控制是否通过SSL加密方式连接数据库。 是 连接属性 可选参数,单击“添加”可增加多个指定数据源的JDBC连接器的属性,参考对应数据库的JDBC连接器说明文档进行配置。 常见配置举例如下: connectTimeout=60与socketTimeout=300:迁移数据量较大、或通过查询语句检索全表时,会由于连接超时导致迁移失败。此时可自定义连接超时时间与socket超时时间(单位s),避免超时导致失败。 useCursorFetch=false: CDM 作业默认打开了JDBC连接器与关系型数据库通信使用二进制协议开关,即useCursorFetch=true。部分第三方可能存在兼容问题导致迁移时间转换出错,可以关闭此开关。 trustServerCertificate=true:在创建安全连接的时候可能会报PKIX错误,建议设置为true。 sslmode=require 连接私密属性 可选参数,单击“显示高级属性”后显示。 自定义私密连接属性。 sk=09fUgD5WOF1L6f 父主题: 配置连接参数
  • 响应示例 { "port": { "id": "a7d98f3c-b42f-460b-96a1-07601e145961", "name": "port-test02", "status": "DOWN", "admin_state_up": true, "fixed_ips": [], "mac_address": "fa:16:3e:01:f7:90", "network_id": "00ae08c5-f727-49ab-ad4b-b069398aa171", "tenant_id": "db82c9e1415a464ea68048baa8acc6b8", "project_id": "db82c9e1415a464ea68048baa8acc6b8", "device_id": "", "device_owner": "", "security_groups": [ "d0d58aa9-cda9-414c-9c52-6c3daf8534e6" ], "extra_dhcp_opts": [], "allowed_address_pairs": [], "binding:vnic_type": "normal", "binding:vif_details": {}, "binding:profile": {}, "port_security_enabled": true, "created_at": "2018-09-20T01:45:26", "updated_at": "2018-09-20T01:48:56" } }
  • 响应参数 表6 响应参数 参数名称 类型 说明 port port object port对象,参见表7。 表7 port对象 属性 类型 说明 id String 端口的ID,最大长度不超过255 【使用说明】在查询端口列表时非必选 name String 端口的名称 network_id String 所属网络的ID admin_state_up Boolean 管理状态 【使用说明】默认为true mac_address String 端口MAC地址,例如:"mac_address": "fa:16:3e:9e:ff:55" 【使用说明】只支持系统动态分配,不支持指定 fixed_ips Array of fixed_ip objects 端口IP,参见表8。例如:"fixed_ips": [{"subnet_id": "4dc70db6-cb7f-4200-9790-a6a910776bba", "ip_address": "192.169.25.79"}], "fixed_ips": [{"subnet_id": "1fd001aa-6946-4168-86d9-924c7d3ef8fb", "ip_address": "2a07:b980:4030:14::1"}] device_id String 设备ID 【使用说明】不支持设置和更新,由系统自动维护,该字段非空的端口不允许删除 device_owner String 设备所属(DHCP/Router/ Nova等) 【取值范围】network:dhcp,network:router_interface_distributed,compute:xxx(xxx对应具体的可用区名称,例如compute:aa-bb-cc表示是被可用区aa-bb-cc上的ECS使用),neutron:VIP_PORT,neutron:LOADBALANCERV2,neutron:LOADBALANCERV3,network:endpoint_interface,network:nat_gateway,network:ucmp 【使用说明】不支持更新,只允许用户在创建虚拟IP端口时,为虚拟IP端口设置device_owner为neutron:VIP_PORT,当端口的该字段不为空时,仅支持该字段为neutron:VIP_PORT时的端口删除。 该字段非空的端口不允许删除。 tenant_id String 项目ID status String 端口状态,可以为ACTIVE,BUILD,DOWN; 【使用说明】Hana硬直通虚拟机端口状态总为DOWN security_groups Array of strings 扩展属性:安全组的UUID,例如:"security_groups": ["a0608cbf-d047-4f54-8b28-cd7b59853fff"] 【使用说明】不支持更新为空。 allowed_address_pairs Array of allowed_address_pairs objects 扩展属性:IP/Mac对列表,allow_address_pair参见表9 【使用说明】 IP地址不允许为 “0.0.0.0/0” 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目的地址检查开关 硬件SDN环境不支持ip_address属性配置为CIDR格式 为虚拟IP配置后端ECS场景,allowed_address_pairs中配置的IP地址,必须为ECS网卡已有的IP地址,否则可能会导致虚拟IP通信异常 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。 extra_dhcp_opts Array of extra_dhcp_opt objects 扩展属性:DHCP的扩展Option,参见表10 binding:vif_details binding:vif_details object vif的详细信息,参见表11 binding:profile Object 功能说明:扩展属性,提供用户设置自定义信息。 使用说明: internal_elb字段,布尔类型,普通租户可见。只有在创建内网ELB的虚拟IP的网卡时设置为true。普通租户没有权限更改该字段,由系统维护。【举例】 {"internal_elb": true} disable_security_groups字段,布尔类型,普通租户可见。默认为false高性能通信场景下,允许指定为true普通租户可见。仅支持创建port和读取时指定。当前仅支持指定为true,不支持指定为false。 【举例】 {"disable_security_groups":true } 当前仅支持指定为true,不支持指定为false,指定为true时,FWaaS功能不生效。 仅对于“华北-北京二”:udp_srvports和tcp_srvports,字段,字符串类型,默认不设置udp_srvports和tcp_srvports字段。允许指定udp_srvports和tcp_srvports字段为端口号,表示这些端口的tcp报文和udp报文可支持高并发连接,但是此类报文不受ACL和安全组规则的限制。udp_srvports和tcp_srvports字段同时支持更新操作。 【格式】 {"tcp_srvports": "port1 port2 port3", "udp_srvports": "port1 port2 port3"} 端口号之间以空格间隔,最多允许指定的端口号总共为15个,端口号范围是1到65535。 【示例】 {"tcp_srvports": "80 443", "udp_srvports": "53"} 示例表示入方向目的端口为80或者443的tcp报文可支持高并发连接。入方向目的端口为53的udp报文可支持高并发连接。但是此类报文不受ACL和安全组规则的限制。 binding:vnic_type String 绑定的vNIC类型 normal: 软交换 port_security_enabled Boolean 端口安全使能标记,如果不使能则安全组和dhcp防欺骗不生效 dns_assignment Array of dns_assignment objects 扩展属性:主网卡默认内网域名信息 【使用说明】不支持设置和更新,由系统自动维护 hostname:与端口dns_name一致 ip_address:端口ipv4私有地址 fqdn:为端口创建默认内网fqdn dns_name String 扩展属性:主网卡默认内网DNS名称 【使用说明】不支持设置和更新,由系统自动维护,访问该默认内网域名前,请确保子网使用当前系统提供的DNS project_id String 项目ID,请参见获取项目ID。 created_at String 资源创建时间,UTC时间 格式yyyy-MM-ddTHH:mm:ss updated_at String 资源更新时间,UTC时间 格式yyyy-MM-ddTHH:mm:ss 表8 fixed_ip对象 属性 类型 说明 subnet_id String 所属子网ID 【使用说明】不支持更新 ip_address String 端口IP地址 【使用说明】不支持更新 表9 allowed_address_pairs对象 属性 类型 说明 ip_address String IP地址 【使用说明】不支持0.0.0.0/0 mac_address String MAC地址 表10 extra_dhcp_opt对象 属性 类型 说明 opt_name String Option名称 opt_value String Option值 表11 binding:vif_details对象 名称 参数类型 说明 primary_interface Boolean 取值为true,表示是虚拟机的主网卡。 port_filter Boolean 表示该网络服务提供端口过滤特性,如安全组和反MAC/IP欺骗。 ovs_hybrid_plug Boolean 用于通知像nova这样的API消费者,应该使用OVS的混合插入策略。 表12 dns_assignment对象 名称 参数类型 说明 hostname String 端口hostname。 ip_address String 端口IP地址。 fqdn String 端口内网fqdn。
  • 请求参数 表2 请求参数 参数名称 类型 必选 说明 port port object 是 port对象,参见表3。 更新操作时至少指定一项属性。 表3 port对象 属性 是否必选 类型 说明 name 否 String 端口的名称 security_groups 否 Array of strings 扩展属性:安全组的UUID,例如:"security_groups": ["a0608cbf-d047-4f54-8b28-cd7b59853fff"] 【使用说明】不支持更新为空。 allowed_address_pairs 否 Array of allowed_address_pairs objects 扩展属性:IP/Mac对列表,allow_address_pair参见表4 【使用说明】 IP地址不允许为 “0.0.0.0/0” 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目的地址检查开关 硬件SDN环境不支持ip_address属性配置为CIDR格式 为虚拟IP配置后端ECS场景,allowed_address_pairs中配置的IP地址,必须为ECS网卡已有的IP地址,否则可能会导致虚拟IP通信异常 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。 extra_dhcp_opts 否 Array of extra_dhcp_opt objects 扩展属性:DHCP的扩展Option,参见表5 binding:profile 否 Object 功能说明:扩展属性,提供用户设置自定义信息。 使用说明: internal_elb字段,布尔类型,普通租户可见。只有在创建内网ELB的虚拟IP的网卡时设置为true。普通租户没有权限更改该字段,由系统维护。【举例】 {"internal_elb": true} disable_security_groups字段,布尔类型,普通租户可见。默认为false高性能通信场景下,允许指定为true普通租户可见。仅支持创建port和读取时指定。当前仅支持指定为true,不支持指定为false。 【举例】 {"disable_security_groups":true } 当前仅支持指定为true,不支持指定为false,指定为true时,FWaaS功能不生效。 仅对于“华北-北京二”:udp_srvports和tcp_srvports,字段,字符串类型,默认不设置udp_srvports和tcp_srvports字段。允许指定udp_srvports和tcp_srvports字段为端口号,表示这些端口的tcp报文和udp报文可支持高并发连接,但是此类报文不受ACL和安全组规则的限制。udp_srvports和tcp_srvports字段同时支持更新操作。 【格式】 {"tcp_srvports": "port1 port2 port3", "udp_srvports": "port1 port2 port3"} 端口号之间以空格间隔,最多允许指定的端口号总共为15个,端口号范围是1到65535。 【示例】 {"tcp_srvports": "80 443", "udp_srvports": "53"} 示例表示入方向目的端口为80或者443的tcp报文可支持高并发连接。入方向目的端口为53的udp报文可支持高并发连接。但是此类报文不受ACL和安全组规则的限制。 binding:vnic_type 否 String 绑定的vNIC类型 【使用说明】normal: 软交换 port_security_enabled 否 Boolean 端口安全使能标记。 取值范围:true,允许加入安全组和开启dhcp防欺骗;false,安全组和dhcp防欺骗不生效。 表4 allowed_address_pairs对象 名称 是否必选 参数类型 说明 ip_address 是 String 功能说明:IP地址。 约束:不支持0.0.0.0/0。 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目的地址检查开关。 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。 如果填写allowed_address_pairs参数,则ip_address是必选参数。 mac_address 否 String MAC地址。默认使用当前端口的MAC地址。 表5 extra_dhcp_opt对象 属性 是否必选 类型 说明 opt_name 否 String Option名称 opt_value 否 String Option值
  • 响应示例 【示例一】 { "ports": [{ "id": "791870bd-36a7-4d9b-b015-a78e9b06af08", "name": "port-test", "status": "DOWN", "admin_state_up": true, "fixed_ips": [], "mac_address": "fa:16:3e:01:e0:b2", "network_id": "00ae08c5-f727-49ab-ad4b-b069398aa171", "tenant_id": "db82c9e1415a464ea68048baa8acc6b8", "project_id": "db82c9e1415a464ea68048baa8acc6b8", "device_id": "", "device_owner": "", "security_groups": ["d0d58aa9-cda9-414c-9c52-6c3daf8534e6"], "extra_dhcp_opts": [], "allowed_address_pairs": [], "binding:vnic_type": "normal", "binding:vif_details": {}, "binding:profile": {}, "port_security_enabled": true, "created_at": "2018-09-13T01:43:41", "updated_at": "2018-09-13T01:43:41" }, { "id": "7a8c720d-32b7-47cc-a943-23e48d69e30a", "name": "a8d001aa-6946-4168-86d9-924c7d3ef8fb", "status": "DOWN", "admin_state_up": true, "fixed_ips": [ { "subnet_id": "a8d001aa-6946-4168-86d9-924c7d3ef8fb", "ip_address": "2a07:b980:4030:14::1" } ], "mac_address": "fa:16:3e:57:39:c3", "network_id": "26cf88ff-1a8c-4233-a8e6-183e1e299357", "tenant_id": "db82c9e1415a464ea68048baa8acc6b8", "project_id": "db82c9e1415a464ea68048baa8acc6b8", "device_id": "6c2fcea1-b785-4253-b84e-3d887e1c67e1", "device_owner": "network:router_interface_distributed", "security_groups": ["34acbeed-8f65-4875-86ca-66417b1733fd"], "extra_dhcp_opts": [], "allowed_address_pairs": [], "binding:vnic_type": "normal", "binding:vif_details": {}, "binding:profile": {}, "port_security_enabled": true, "created_at": "2018-09-13T01:43:41", "updated_at": "2018-09-13T01:43:41" } ], "ports_links": [ { "rel": "next", "href": "https://{Endpoint}/v2.0/ports?limit=1&marker=7a8c720d-32b7-47cc-a943-23e48d69e30a" }, { "rel": "previous", "href": "https://{Endpoint}/v2.0/ports?limit=1&marker=7a8c720d-32b7-47cc-a943-23e48d69e30a&page_reverse=True" } ] } 【示例二】 { "ports": [ { "admin_state_up": true, "allowed_address_pairs": [], "binding:vnic_type": "normal", "device_id": "e6c05704-c907-4cc1-8106-69b0996c43b9", "device_owner": "compute:az3.dc1", "port_security_enabled":true, "extra_dhcp_opts": [], "fixed_ips": [ { "ip_address": "172.16.0.37", "subnet_id": "b3ac1347-63f2-4e82-b853-3d86416a0db5" } ], "dns_assignment": [ { "hostname": "ip-172-16-0-37", "ip_address": "172.16.0.37", "fqdn": "ip-172-16-0-37.xxx.compute.internal." } ], "dns_name": "ip-172-16-0-37", "id": "7bb64706-6e46-4f94-a28a-4bc7caaab87d", "mac_address": "fa:16:3e:f1:0b:09", "name": "port_vm_50_3", "network_id": "a54e1b19-ce78-4b7e-b28b-d2d716cdc161", "security_groups": [ "ef69bc60-2f4b-4f97-b95b-e3b68df0c0b2" ], "status": "ACTIVE", "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "project_id": "6c9298ec8c874f7f99688489ab65f90e", "created_at": "2018-09-13T01:43:41", "updated_at": "2018-09-13T01:43:41" } ], "ports_links": [ { "rel": "previous", "href": "https://{Endpoint}/v2.0/ports?mac_address=fa%3A16%3A3e%3Af1%3A0b%3A09&marker=7bb64706-6e46-4f94-a28a-4bc7caaab87d&page_reverse=True" } ] } 【示例三】 { "ports": [ { "admin_state_up": false, "allowed_address_pairs": [], "binding:vnic_type": "normal", "device_id": "", "device_owner": "", "port_security_enabled":true, "extra_dhcp_opts": [], "fixed_ips": [ { "ip_address": "10.100.100.62", "subnet_id": "9b28f20c-0234-419f-a0b4-4a84f182f64b" } ], "dns_name": "", "id": "ffc0bdee-8413-4fa2-bd82-fa8efe5b3a87", "mac_address": "fa:16:3e:2b:bc:57", "name": "small_net_port", "network_id": "b299b151-7a66-4c6f-a313-cdd3b5724296", "security_groups": [ "ef69bc60-2f4b-4f97-b95b-e3b68df0c0b2" ], "status": "DOWN", "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "project_id": "6c9298ec8c874f7f99688489ab65f90e", "created_at": "2018-09-13T01:43:41", "updated_at": "2018-09-13T01:43:41" } ], "ports_links": [ { "rel": "previous", "href": "https://{Endpoint}/v2.0/ports?admin_state_up=False&marker=ffc0bdee-8413-4fa2-bd82-fa8efe5b3a87&page_reverse=True" } ] } 【示例四】 { "ports": [ { "admin_state_up": true, "allowed_address_pairs": [], "binding:vnic_type": "normal", "device_id": "e6c05704-c907-4cc1-8106-69b0996c43b9", "device_owner": "compute:az3.dc1", "port_security_enabled":true, "extra_dhcp_opts": [], "fixed_ips": [ { "ip_address": "10.1.0.37", "subnet_id": "b3ac1347-63f2-4e82-b853-3d86416a0db5" } ], "dns_assignment": [ { "hostname": "ip-10-1-0-37", "ip_address": "10.1.0.37", "fqdn": "ip-10-1-0-37.xxx.compute.internal."//xxx为区域名称。 } ], "dns_name": "ip-10-1-0-37", "id": "7bb64706-6e46-4f94-a28a-4bc7caaab87d", "mac_address": "fa:16:3e:f1:0b:09", "name": "port_vm_50_3", "network_id": "a54e1b19-ce78-4b7e-b28b-d2d716cdc161", "security_groups": [ "ef69bc60-2f4b-4f97-b95b-e3b68df0c0b2" ], "status": "ACTIVE", "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "project_id": "6c9298ec8c874f7f99688489ab65f90e" , "created_at": "2018-09-13T01:43:41", "updated_at": "2018-09-13T01:43:41" } ], "ports_links": [ { "rel": "previous", "href": "https://{Endpoint}/v2.0/ports?device_id=77307088-ae60-49fb-9146-924dcf1d1402&marker=7bb64706-6e46-4f94-a28a-4bc7caaab87d&page_reverse=True" } ] } 【示例五】 { "ports": [ { "admin_state_up": true, "allowed_address_pairs": [], "binding:vnic_type": "normal", "device_id": "e6c05704-c907-4cc1-8106-69b0996c43b9", "device_owner": "compute:az3.dc1", "port_secuirty_enabled":true, "extra_dhcp_opts": [], "fixed_ips": [ { "ip_address": "10.1.0.37", "subnet_id": "b3ac1347-63f2-4e82-b853-3d86416a0db5" } ], "dns_assignment": [ { "hostname": "ip-10-1-0-37", "ip_address": "10.1.0.37", "fqdn": "ip-10-1-0-37.xxx.compute.internal."//xxx为区域名称。 } ], "dns_name": "ip-10-1-0-37", "id": "7bb64706-6e46-4f94-a28a-4bc7caaab87d", "mac_address": "fa:16:3e:f1:0b:09", "name": "port_vm_50_3", "network_id": "a54e1b19-ce78-4b7e-b28b-d2d716cdc161", "security_groups": [ "ef69bc60-2f4b-4f97-b95b-e3b68df0c0b2" ], "status": "ACTIVE", "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "project_id": "6c9298ec8c874f7f99688489ab65f90e" , "created_at": "2018-09-13T01:43:41", "updated_at": "2018-09-13T01:43:41" } ], "ports_links": [ { "rel": "previous", "href": "https://{Endpoint}/v2.0/ports?tenant_id=6c9298ec8c874f7f99688489ab65f90e&name=port_vm_50_3&marker=7bb64706-6e46-4f94-a28a-4bc7caaab87d&page_reverse=True" } ] } 【示例六】 { "ports": [ { "status": "DOWN", "allowed_address_pairs": [], "extra_dhcp_opts": [], "device_owner": "", "port_security_enabled":true, "fixed_ips": [ { "subnet_id": "391c74f7-e3b1-405c-8473-2f71a0aec7dc", "ip_address": "10.1.0.33" } ], "dns_name": "", "id": "0f405555-739f-4a19-abb7-ec11d005b3a9", "security_groups": [ "043548bc-1020-4be0-885a-caac8530e8f6" ], "device_id": "", "port_security_enabled":true, "name": "port_vm_50_3", "admin_state_up": true, "network_id": "9898a82d-7795-4ad5-bf2c-0ed8b822be4f", "tenant_id": "3e4a1816927f405cacbc3dca1e05111e", "project_id": "3e4a1816927f405cacbc3dca1e05111e", "created_at": "2018-09-13T01:43:41", "updated_at": "2018-09-13T01:43:41", "binding:vnic_type": "normal", "mac_address": "fa:16:3e:b0:d9:cf" }, { "status": "ACTIVE", "allowed_address_pairs": [], "extra_dhcp_opts": [], "device_owner": "compute:az3.dc1", "port_security_enabled":true, "fixed_ips": [ { "subnet_id": "b3ac1347-63f2-4e82-b853-3d86416a0db5", "ip_address": "10.1.0.37" } ], "dns_assignment": [ { "hostname": "ip-10-1-0-37", "ip_address": "10.1.0.37", "fqdn": "ip-10-1-0-37.xxx.compute.internal."//xxx为区域名称。 } ], "dns_name": "ip-10-1-0-37", "id": "7bb64706-6e46-4f94-a28a-4bc7caaab87d", "security_groups": [ "ef69bc60-2f4b-4f97-b95b-e3b68df0c0b2" ], "device_id": "e6c05704-c907-4cc1-8106-69b0996c43b9", "name": "port_vm_50_3", "admin_state_up": true, "network_id": "a54e1b19-ce78-4b7e-b28b-d2d716cdc161", "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "project_id": "3e4a1816927f405cacbc3dca1e05111e", "created_at": "2018-09-13T01:43:41", "updated_at": "2018-09-13T01:43:41", "binding:vnic_type": "normal", "binding:vnic_type": "normal", "mac_address": "fa:16:3e:f1:0b:09" } ], "ports_links": [ { "rel": "previous", "href": "https://{Endpoint}/v2.0/ports?name=port_vm_50_3&marker=0f405555-739f-4a19-abb7-ec11d005b3a9&page_reverse=True" } ] }
共100000条
提示

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