-
为什么大模型能写诗,却听不懂人话如果你曾经和早期的大语言模型有过深入的对话,你可能会有这样的体验:模型写出来的文章确实像模像样,句子通顺、逻辑清晰,但你让它"帮我总结这段内容",它却我行我素地续写下去;你让它"用中文回答",它可能还是用英文侃侃而谈。这种"我说我的,它做它的"的割裂感,曾经是大模型应用的普遍痛点。问题出在哪里?答案是:早期的语言模型本质上是一个"续写机器"。它的训练目标很简单——预测下一个最可能出现的token。至于用户到底想要什么、任务的具体要求是什么,它并不关心。这种"自我中心"的生成模式,使得模型在开放域对话中表现出色,但在面对明确的任务指令时,却常常"听不懂人话"。指令微调(Instruction Fine-tuning)的出现,正是为了解决这个根本性的问题。它的核心目标是:让模型从"自我中心的续写者"转变为"用户导向的助手"。经过指令微调的模型,不仅能够生成流畅的文本,更能够理解用户的意图,按照特定的要求完成任务。本文将从原理到实践,深入解析指令微调的技术内涵,帮助你理解这个关键技术为什么能够彻底改变大模型与人类的交互方式。预训练与指令微调:两个阶段的不同使命要理解指令微调,首先需要把它放到大模型训练的完整流程中来看待。大模型的训练通常分为两个主要阶段:预训练(Pre-training)和指令微调(Instruction Fine-tuning,有时也称为SFT,即Supervised Fine-Tuning)。预训练阶段是模型"知识积累"的时期。在这个阶段,模型在海量的文本数据上进行自监督学习,目标是预测下一个token。通过在数万亿token上的训练,模型学会了语言的统计规律、语法结构、世界知识甚至简单的推理能力。这个阶段训练出来的模型,通常被称为"基础模型"(Base Model)或"语言模型"(Language Model)。然而,基础模型有一个显著的特点:它擅长续写,但不擅长对话。如果你给基础模型一个用户消息,它大概率会把这个消息当作文本的开头,然后继续续写下去,而不是把它当作需要回答的问题。这就是为什么早期的GPT-3在对话场景下表现并不理想的原因之一。指令微调阶段是模型"能力对齐"的时期。在这个阶段,模型在"指令-响应对"数据上进行有监督学习。每一训练样本由两部分组成:用户的指令(Instruction)和模型应该给出的响应(Response)。模型的学习目标是:根据给定的指令,生成符合要求的响应。这个过程可以类比为人类的"职业教育"。预训练阶段像是在接受通识教育,学习语言的基本运用;指令微调阶段则像是在接受职业技能培训,学习如何根据具体任务要求来运用自己的知识。指令数据的结构:让模型理解任务的语言指令微调的效果在很大程度上取决于训练数据的质量。那么,什么样的数据才能让模型学会"听懂人话"呢?一个标准的指令微调数据样本通常包含三个部分:指令(Instruction)、输入(Input)和输出(Output)。指令是告诉模型"要做什么"的部分。比如"请把以下英文翻译成中文"“请总结这段文章的主要内容”“请用李白的风格写一首七言绝句”。指令的设计至关重要——清晰的指令能够让模型明确任务目标,从而给出更符合预期的响应。输入是任务的具体内容。比如翻译任务中的英文句子、总结任务中的待处理文章、写作任务中的主题要求。输入的存在使得同一个指令模板可以泛化到不同的具体任务。输出是模型应该给出的答案。这是模型学习的目标,直接决定了模型在推理时会生成什么样的内容。一个经典的指令微调数据集格式是Alpaca格式,它将上述三部分组织成JSON结构,便于程序处理和模型读取。Alpaca格式的流行,得益于斯坦福大学发布的Alpaca模型——一个基于LLaMA模型进行指令微调后得到的对话模型,它的表现在当时震惊了很多研究者,也引发了开源社区对指令微调技术的广泛关注。构建高质量的指令数据是一门艺术。好的指令数据应该具备以下特点:任务类型多样,覆盖各种常见的用户需求;指令表述清晰,避免歧义和模糊;输入输出匹配正确,符合真实的任务场景;数据规模适中,既能支撑模型学习,又不至于引入过多噪声。损失计算:为什么模型只学习"答案"部分了解指令微调的技术细节,你会发现一个有趣的设计:模型的损失函数只计算输出部分的误差,而指令和输入部分则被"mask"掉,不参与梯度计算。这是为什么呢?这个设计背后有深刻的逻辑。在推理时,模型接收的是完整的上下文(包括指令和输入),但模型真正需要学习的是"如何根据指令和输入来生成输出"。如果把指令和输入部分也纳入损失计算,模型可能会"偷懒"——直接记忆输入的内容,而不是学习生成响应的能力。举个简单的例子。假设训练样本的指令是"请翻译:Hello World",输入是"Hello World",输出是"你好世界"。如果模型在训练时计算所有位置的损失,它可能会学会直接复制输入到输出的"捷径",因为这样在训练集上的损失会很低。但这显然不是我们想要的效果——模型应该学会翻译的能力,而不是死记硬背。通过只对输出部分计算损失,模型被迫学习"从指令和输入到输出"的映射关系,而不是简单的复制。这种设计使得训练后的模型能够处理它从未见过的输入,真正具备泛化的能力。超越监督:RLHF与对齐技术指令微调虽然能够让模型学会按照指令响应,但这种学习是"模仿式"的——模型只是学会了模仿训练数据中的响应模式。训练数据中的响应质量,直接决定了模型输出质量的上限。如果训练数据中存在一些"不够好"的回答,模型也会照搬这些回答。为了突破这个限制,OpenAI等机构引入了RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)技术。RLHF的核心思想是:不再仅仅让模型模仿人类给出的答案,而是让模型学习"什么样的答案是人类认为好的"。RLHF的训练过程通常包括三个步骤:首先,通过指令微调得到一个初始模型;然后,收集人类对不同输出的偏好比较数据,训练一个奖励模型(Reward Model);最后,使用强化学习算法(比如PPO)来优化初始模型,使其生成的输出能够获得更高的奖励分数。这个过程可以类比为"名师指导"。指令微调阶段像是在学习"标准答案",而RLHF阶段则是在学习"什么样的答案会被老师打高分"。通过这种方式,模型的输出能够更好地符合人类的偏好和价值观。近年来,RLHF的一些替代方案也逐渐流行起来,比如DPO(Direct Preference Optimization,直接偏好优化)。DPO的思路更加直接:不再训练奖励模型,而是直接在偏好数据上优化策略,简化了训练流程,效果也相当不错。指令微调的实践:从数据准备到模型训练了解了指令微调的原理后,我们来看一下实际的操作流程。第一步是数据准备。这是最耗时也最关键的步骤。你需要收集或构建高质量的指令数据,包括多样化的任务类型、清晰的指令描述、准确的输出响应。数据量通常在几千到几万条不等,具体取决于任务的复杂度和数据质量。第二步是数据格式化。将收集到的数据转换为模型可以处理的格式,通常是JSON或CSV格式。每条数据需要包含指令、输入(可选)、输出等字段,并进行必要的数据清洗和验证。第三步是模型配置。选择合适的基础模型,设置训练超参数(学习率、批次大小、训练轮数等),配置优化器和学习率调度器。这些配置对最终效果有显著影响,通常需要根据具体任务进行调整。第四步是训练执行。在配置好的环境下运行训练脚本,监控训练过程中的损失变化和资源使用情况。训练可能需要数小时到数天不等,取决于数据规模和硬件配置。第五步是效果评估。在测试集上评估训练后模型的效果,可以通过人工评测或自动指标(如BLEU、ROUGE)来衡量。如果效果不理想,需要分析原因并调整训练策略。整个过程中,环境配置和数据准备往往是最耗时的环节。对于没有深厚机器学习背景的团队来说,这可能是一个不小的挑战。结语:让AI真正"听懂"人类指令微调的意义,远不止于让模型学会几个任务。它代表了一种范式的转变:从"模型生成什么就是什么"到"模型应该按照用户的要求来生成"。这种转变,使得大模型从实验室的概念验证,走向了真正有用的生产力工具。随着指令微调技术的不断成熟,开源社区涌现出了大量高质量的指令微调模型和工具。LLaMA-Factory Online这样的平台,将复杂的微调流程封装成简单易用的界面,让没有专业背景的开发者也能快速上手。从数据上传到训练启动,再到模型部署,整个流程都可以在浏览器中完成,大大降低了指令微调的技术门槛。大模型与人类的交互,正在因为指令微调而变得更加自然和高效。曾经"听不懂人话"的续写机器,已经成长为能够理解指令、完成任务的专业助手。而这一切的背后,正是指令微调这项关键技术在默默发挥作用。如果你也希望让AI真正"听懂"你的需求,不妨从指令微调开始探索。技术的门槛在不断降低,机会永远留给愿意尝试的人。
-
cloudpods v3.11添加云账号需要AK/SK认证但是ManageOne 8.0.3管理的HCSO下面的租户没有AK/SK形式的认证,没有像公有云一样的我的凭证ManageOne 8.0.3只有系统、代维、租户三种用户请问这个问题能解决吗?现在的困境是运营面的租户没有生成AK/SK的地方
-
1 场景说明本贴所写指导适用于华为云Stack ManageOne 6.5.x、8.x版本。从ManageOne的租户模型中,我们了解到一级VDC管理员只能管理其所在的VDC,不能跨VDC管理,如果现网项目中有多个一级VDC,就需要第三方系统保存多个一级VDC管理员账号,存在安全风险且维护困难;此时,可以通过代维管理员,将多个一级VDC加入到指定的代维管理员的代维租户列表,这样第三方系统就可以使用一个账号管理多个一级VDC了;代维管理员实际上是通过置换token的方式,获得对一级VDC的管理权限,一旦代维管理员获得了对一级VDC管理权限,就如同一级VDC管理员一样,可以对一级VDC内的子级VDC、project、用户进行管理,也可以在指定的project中申请资源;若使用代维管理员账号在指定VDC中申请云资源,会占用指定VDC的资源配额;若使用代维管理员账号在指定VDC中删除云资源,会释放指定VDC中占用的资源配额。本帖主要给出如何使用代维管理员账号获得指定VDC、project的管理权限(即指定VDC、project的token),对VDC、project、用户和云资源的管理2 准备工作2.1获取调用接口的IP和域名参考帖子:cid:link_0,获取APIGateway的浮动IP,IAM对外访问域名和运营面对外访问域名。2.2 获取运营管理员账号请联系项目中的华为服务工程师,获取ManageOne运营管理员账号密码。2.3 创建代维管理员(已创建可跳过)6.5.1版本参考如下步骤创建代维管理员:步骤1 使用运营管理员登录ManageOne运营面,依次点击“租户”-->“租户代维”,打开代维租户管理界面,点击“创建代维管理员”,如下图所示:步骤2 在创建代维管理员界面,填写用户名,密码,然后选择需要代维的租户列表,并点击“创建”,如下图所示:8.0版本,请参考如下步骤创建代维管理员步骤1 使用运营管理员登录ManageOne运营面,依次点击“系统”-->“权限管理”-->"用户",打开用户管理界面,点击“创建用户”,如下图所示:步骤2 在创建用户界面中,选择“代维”,填写用户名,密码,然后选择需要代维的租户列表,并点击“创建”,如下图所示:3 接口调用步骤代维管理员置换指定租户、project下的token流程如下:步骤1 获取代维管理员的租户名使用代维管理员用户登录ManageOne运营面,进入“选择代维租户和资源集”页面后,按“F12”(以Chrome浏览器为例),选择“网络”页签,然后刷新页面,在控制台获取到的链接列表中,找到“me”,然后在右侧“预览”页签中,找到“domainName”即代为管理员的租户名。(注:此租户名通常为“audn_”开头,与代维用户代管的租户名不相同)。步骤2 获取代维管理员token接口URI:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Content-Type:application/json;charset=UTF-8Accept:application/json; charset=UTF-8请求体:{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "domain": { "name": "audn_1f7af046-6567-4ec6-93a3-470" }, "name": "XXXXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "audn_1f7af046-6567-4ec6-93a3-470" } } }}这里domain name的值为代维管理员所属的domain的名称,由步骤1获得name和password分别为代维管理员的用户名和密码响应头(Header)示例:Transfer-Encoding →chunked Connection →keep-alive X-Subject-Token →MIIEJSDVVDFASKoZIhvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcNAQcCZzTOuAZ8这里我们从响应头中获得了代维管理员的token(X-Subject-Token)。响应体(Body)示例:{ "token": { "expires_at": "2022-06-24T02:49:18.402000Z", "methods": [ "password" ], "catalog": [], "domain": { "name": "audn_1f7af046-6567-4ec6-93a3-470", "id": "095543b046514bdbab988d4ad3089a28" }, "roles": [ { "name": "te_admin", "id": "985dc76053f94685a15eafc3cd9f5da2" }, { "name": "mo_agency", "id": "8299bcd6d9464c55a6bf963f0d8e678c" }, { "name": "te_agency", "id": "fc85d26a9db847f293265c8c46e19a2c" }, { "name": "secu_admin", "id": "d9920b033be744f1996d1e84281c94e8" }, { "name": "vdc_adm", "id": "4d0cd24102504767b33fd55d915c55e8" } ], "issued_at": "2022-06-23T02:49:18.402000Z", "user": { "domain": { "name": "audn_1f7af046-6567-4ec6-93a3-470", "id": "095543b046514bdbab988d4ad3089a28" }, "name": "hzp_dw", "id": "ef5dbdcce2a047bb8b10fb69507a5bd1" } }}取响应体中的token.user.id为代为管理员的用户id,此环境为ef5dbdcce2a047bb8b10fb69507a5bd1。步骤3 查询代维管理员代维的租户列表这里我们查询代维管理员详情,获得该代维管理员代维的租户列表,为后续置换token做准备。接口URI:https://{运营侧北向接口对外域名}/rest/vdc/v3.0/agencies/users/{agency_user_id}(此处agency_user_id为步骤2中获得的代维管理员的用户ID)请求方法:GET请求头(这里的token为步骤1中获取的运营管理员token):Content-Type:application/json;charset=UTF-8Accept:application/json; charset=UTF-8X-Auth-Token:MIIEMQYJKoZIhvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcNAQcCZzTOuXR9请求体:NULL响应体(示例):{ "limit_access": "false", "lock_period": null, "login_config": null, "whiteList": [], "user": { "resource_tenant_id": "", "level": null, "roles": [ { "id": "00000000-0000-0000-0000-000000000004", "name": "agencyManager", "display_name": "Agency Admin", "user_role_type": null, "description": "role_role_view_para_desc_content_agencyMananger_value" } ], "trust_vdc_list": [ { "name": "hzp_vdc", "id": "16ea1a6e341d44e385fb3cb077c3b63f", "description": "", "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "domain_name": "hzp_vdc", "agency_name": "aN_101e3806-761e-4264-ad60-cfca0", "agency_id": "3d65090751424616b93ded9068394e8c" }, { "name": "hzp_vdc_2", "id": "3dd28cba7a28416cbab8b62bfe0f9e02", "description": "", "domain_id": "3dd28cba7a28416cbab8b62bfe0f9e02", "domain_name": "hzp_vdc_2", "agency_name": "aN_5a1067a9-f94d-4bcf-a8be-f9693", "agency_id": "c31134a891bd45feb97861c5d732d1e7" } ], "description": "", "areacode": null, "createAt": null, "enabled": "true", "vdc_id": null, "domain_id": "095543b046514bdbab988d4ad3089a28", "domain_name": "audn_1f7af046-6567-4ec6-93a3-470", "user_type": "0", "display_name": null, "phone": "", "name": "hzp_dw", "id": "ef5dbdcce2a047bb8b10fb69507a5bd1", "email": "" }}trust_vdc_list中所列出的清单即为该代维管理员所代维的租户列表,这里我们需要获取被代维的租户的名称(trust_vdc_list中name的值),租户的ID(trust_vdc_list中domain_id的值)和代维名称(trust_vdc_list中agency_name的值),为后续置换token做准备。 步骤4 查询指定租户中的project列表(可选)若您不需要拥有指定的project中资源的管理权限,这一步可以跳过。接口URI:https://{运营侧北向接口对外域名}/rest/vdc/v3.1/agencies/projects?domain_id={domain_id}(domain_id为被代维的租户的domain ID,由步骤3获取trust_vdc_list中domain_id的值)这里需要使用代维管理员的token,由步骤4获取请求方法:GET请求头:Content-Type:application/json;charset=UTF-8Accept:application/json; charset=UTF-8X-Auth-Token:MIIEJSDVVDFASKoZIhvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcNAQcCZzTOuAZ8请求体:NULL响应体(示例):{ "total": 3, "projects": [ { "id": "6934bce513274fd9b20955c3db9728f0", "name": "solution-advance-1_hzp_project", "description": "", "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "enabled": true, "tenant_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "is_shared": false, "tenant_name": "hzp_vdc", "create_user_name": "bss_admin", "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "regions": [ { "region_id": "solution-advance-1", "region_name": { "zh_cn": "东莞", "en_us": "东莞" }, "region_status": "normal" } ] }, { "id": "630b7dd529344d56bf38c0a6ecab4fc6", "name": "solution-advance-1_hzp_project2", "description": "", "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "enabled": true, "tenant_id": "bf588c5a-8d05-49bd-a93d-e937286893e5", "is_shared": false, "tenant_name": "hzp_vdc2", "create_user_name": "hzp_admin", "create_user_id": "d0cc23141778469f82854c5269d3d9ee", "regions": [ { "region_id": "solution-advance-1", "region_name": { "zh_cn": "东莞", "en_us": "东莞" }, "region_status": "normal" } ] }, { "id": "51792d0ec2624c98b316fde97956531e", "name": "solution-advance-2_hzp_project", "description": "", "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "enabled": true, "tenant_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "is_shared": false, "tenant_name": "hzp_vdc", "create_user_name": "bss_admin", "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "regions": [ { "region_id": "solution-advance-2", "region_name": { "zh_cn": "华南", "en_us": "华南" }, "region_status": "normal" } ] } ]} 此处我们获得了指定租户下的project列表,我们需要取到project的ID步骤5 获取代维管理员在指定租户、指定project中的token获取代维管理员在指定租户中的token,我们需要用到步骤4中获得的代为管理员的token,步骤3中获得的被代维租户的租户名和代维名称。请求URL: https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头(请求头中token为步骤4中获得的代维管理员token):Accept:application/json Content-Type:application/json;charset=UTF-8 X-Auth-Token:MIIEJSDVVDFASKoZIhvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcNAQcCZzTOuAZ8请求体样例1(指定租户、指定projet):{ "auth": { "identity": { "methods": ["assume_role"], "assume_role": { "domain_name": "hzp_vdc", "xrole_name": "aN_101e3806-761e-4264-ad60-cfca0" } }, "scope": { "project": { "domain": { "name": "hzp_vdc" }, "name": "solution-advance-1_hzp_project" } } }}使用此请求体置换得到的token,可以对指定的租户中的VDC、用户和project进行管理,还可以管理指定的project中的资源(scope中指定的project)。请求体样例2(指定租户,不指定project):{ "auth": { "identity": { "methods": ["assume_role"], "assume_role": { "domain_name": "hzp_vdc", "xrole_name": "aN_101e3806-761e-4264-ad60-cfca0", "restrict": { "roles": ["secu_admin", "te_admin", "vdc_owner", "vdc_adm", "tag_adm"] } } }, "scope": { "domain": { "name": "hzp_vdc" } } }}使用此请求体置换得到的token,可以对指定的租户中的VDC、用户和project进行管理,不能管理资源。请求体中参数说明如下:methods:获取token的方法,此处我们采用置换token方式,故而取值为:assume_roledomain_name:被代维的租户的租户名,从步骤3获取的trust_vdc_list中name的值xrole_name:代为管理员在指定租户中的代维名称,从步骤3获取的trust_vdc_list中agency_name的值restrict:置换所得的token所拥有的权限,参考样例填写即可scope中的project.domain.name:与domain_name取值相同scope中的project.id:需要代维的project的ID,由步骤4的响应体中获取响应头示例:Content-Type →application/json; charset=utf-8 Transfer-Encoding →chunked Connection →keep-alive X-Subject-Token →MIIFCAYJKoZIhvcNAQcCoIIE+TCCBPUXXXXXgSe63UKRXxi5AxhHv-0U=从响应头中,我们获得了置换的token。如果需要在不同的project中管理资源,需要再次置换token,获得目标project的权限
-
1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于ManageOne 6.5.0及以上版本。3 场景说明本文档用于指导开发者获取租户和用户信息,便于第三方系统同步ManageOne的组织架构以及用户信息(如用户名、电话、email等)。4 租户信息同步目录:4.1 准备工作 4.2 获取管理员token 4.3 Project(资源集/项目) 1. 查询VDC关联的Project 2. 查询用户关联的Project4.1 准备工作正式对接前,请参考如下步骤,获取对应的IP、用户:参考运营侧准备工作帖,获取对接所需要接口文档(主要参考,ManageOne运营面API参考)、运营侧北向接口对外域名:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html联系项目中,华为交付工程师,获取运营管理员账号、密码,或使用已创建的VDC管理员账号。运营管理员可管理所有租户,VDC管理员可管理本级和子级VDC。4.2 获取管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体:(注:运营管理员的domain name固定为mo_bss_admin,VDC管理员的domain name为租户名。){ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "mo_bss_admin" }, "name": "XXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "mo_bss_admin" } } }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token 4.3 Project(资源集/项目)1. 查询VDC关联的ProjectURLGET https://{SC北向接口域名}/rest/vdc/v3.1/vdcs/{vdc_id}/projects?start=0&limit=100其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-100之间,默认值为10。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询指定VDC中资源集集合“接口。)参数类型描述inheritboolean是否查询VDC下所有可见VDC关联的资源集。默认值:falsenamestring模糊搜索所使用的名称字段,长度在1-64之间。sort_dirstring排序方向,取值范围asc,desc。默认值:asc请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "projects": [ { "id": "6aa4d449d6fe4ea68c7cacb1a9803959", "name": "cn-global-205_hzp_project", "description": "", "domain_id": "e1fcb3ba48a64cb2acb5894bcd6d892d", "enabled": true, "tenant_id": "d8e2a487-843b-4309-9d14-e845f593411f", "is_shared": false, "tenant_name": "hzp_vdc", "create_user_id": "b9fd4029af7a4b71a085048b9bbe9072", "create_user_name": "bss_admin", "regions": [ { "region_id": "cn-global-205", "region_name": { "zh_cn": "西安", "en_us": "西安" }, "region_type": null, "region_status": "normal" } ] } ]}其中,id为project Id,name为project名称,domain_id为project所在的租户Id,tenant_id为project所属的VDC Id;tenant_name为project所属的VDC名称;description为project描述;regions为project关联的region信息。2. 查询用户关联的ProjectURLGET https://{SC北向接口域名}/rest/vdc/v3.1/users/{user_id}/projects?start=0&limit=100其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-100之间,默认值为10。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询指定VDC中资源集集合“接口。)参数类型描述inheritboolean是否查询VDC下所有可见VDC关联的资源集。默认值:falsenamestring模糊搜索所使用的名称字段,长度在1-64之间。sort_dirstring排序方向,取值范围asc,desc。默认值:asc请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "projects": [ { "regions": [ { "region_id": "cn-global-205", "region_status": "normal", "region_name": { "zh_cn": "西安", "en_us": "西安" } } ], "id": "6aa4d449d6fe4ea68c7cacb1a9803959", "name": "cn-global-205_hzp_project", "iam_project_name": "cn-global-205_hzp_project", "display_name": "cn-global-205_hzp_project", "description": "", "enabled": true, "domain_id": "e1fcb3ba48a64cb2acb5894bcd6d892d", "tenant_id": "d8e2a487-843b-4309-9d14-e845f593411f", "tenant_name": "hzp_vdc", "level": "1", "role_id": null, "role_name": null, "is_shared": "false" } ]}其中,id为project Id,name为project名称,domain_id为project所在的租户Id,tenant_id为project所属的VDC Id;tenant_name为project所属的VDC名称;description为project描述;regions为project关联的region信息。
-
1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于ManageOne 6.5.0及以上版本。3 场景说明本文档用于指导开发者获取租户和用户信息,便于第三方系统同步ManageOne的组织架构以及用户信息(如用户名、电话、email等)。4 租户信息同步目录:4.1 准备工作 4.2 获取管理员token 4.3 用户 1. 查询用户列表 2. 查询用户详情 4.1 准备工作正式对接前,请参考如下步骤,获取对应的IP、用户:参考运营侧准备工作帖,获取对接所需要接口文档(主要参考,ManageOne运营面API参考)、运营侧北向接口对外域名:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html联系项目中,华为交付工程师,获取运营管理员账号、密码,或使用已创建的VDC管理员账号。运营管理员可管理所有租户,VDC管理员可管理本级和子级VDC。4.2 获取管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体:(注:运营管理员的domain name固定为mo_bss_admin,VDC管理员的domain name为租户名。){ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "mo_bss_admin" }, "name": "XXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "mo_bss_admin" } } }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token 4.3 用户1. 查询用户列表接口约束:运营管理员token可查询全量用户。VDC管理员仅可查询本VDC以及子级VDC的用户。URLGET https://{SC北向接口域名}/rest/vdc/v3.0/users?limit=100&start=0URL常用参数:(完整参数请参考《ManageOne 运营面API参考》)start:分页查询的起始位置,最小值:0 ,最大值:2147483647 ,默认值:0。可选。limit:限制每页显示的条目数量,最小值:1,最大值:100 ,默认值:10。可选。tenant_id:用户归属的VDC ID。可选。name:按照名称或显示名字段模糊搜索。长度:1到128个字符。可选。exact:是否精确匹配,枚举值:true和false,默认值:false。可选。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "users": [ { "enabled": "true", "description": "", "email": "", "areacode": "", "phone": "", "vdc_name": "hzp_vdc", "resource_tenant_id": null, "level": null, "roles": [ { "id": "00000000-0000-0000-0000-000000000001", "name": "vdcServiceManager", "display_name": "VDC Admin", "user_role_type": "0" } ], "display_name": "", "vdc_id": "8c3e288e-49a5-4eab-90a0-47916dac8589", "domain_id": "9b01faf18f454c59a6fd157f0c82e556", "domain_name": "hzp_vdc", "user_type": "0", "name": "hzp_admin", "login_at": "2022-04-18 01:24:27.0", "id": "b7f8bc098f4f4891b93eeff5dcdfc6b5", "create_at": "2022-02-23 06:55:53.0" } ]}其中,id为用户Id,name为用户名称,domain_id为租户Id,vdc_id为所属的VDC Id。2. 查询用户详情接口约束:运营管理员token可查询全量用户。VDC管理员仅可查询本VDC以及子级VDC的用户。URLGET https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}其中,user_id为用户id。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "limit_access": "false", "lock_period": null, "login_config": null, "whiteList": null, "user": { "enabled": "true", "description": "", "email": "", "areacode": null, "phone": "", "projects": [], "ldap_id": null, "level": "1", "resource_tenant_id": null, "roles": [ { "id": "00000000-0000-0000-0000-000000000001", "name": "vdcServiceManager", "display_name": "VDC Admin", "user_role_type": null, "description": "role_role_view_para_desc_content_vdcServiceManager_value" } ], "groups": [ { "id": "8afb852688194e408f4edf4bf8c8a690", "name": "SC_289yUXfSpzD", "description": "", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "role_name": null, "vdc_name": "SC_289OHFUVQdL", "role_id": null, "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444" }, { "id": "cdafab1cfe2e4c129d4878b13e171333", "name": "admin_bc0366f0-3b60-486f-a88e-2a38266dd444", "description": "Default VDC administrator group, having the permission to manage services in the VDC that the user group belongs to and its lower-level VDCs.", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "role_name": "vdcServiceManager", "vdc_name": "SC_289OHFUVQdL", "role_id": "00000000-0000-0000-0000-000000000001", "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444" } ], "display_name": null, "second_verify": "false", "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "domain_name": "SC_289OHFUVQdL", "user_type": "0", "name": "SC_289yUXfSpzD", "login_at": null, "id": "b76fc5607bff4ec094891c930cf3b0de", "tag": "vdc", "top_vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444", "ldap_name": null }, "federation_regions": []}其中,id为用户Id,name为用户名称,domain_id为租户Id,vdc_id为所属的VDC Id。groups为用户绑定的用户组。
-
1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于ManageOne 6.5.0及以上版本。3 场景说明本文档用于指导开发者获取租户和用户信息,便于第三方系统同步ManageOne的组织架构以及用户信息(如用户名、电话、email等)。4 租户信息同步目录:4.1 准备工作 4.2 获取管理员token 4.3 租户/VDC 1. 查询VDC列表 2. 查询VDC详情 4.1 准备工作正式对接前,请参考如下步骤,获取对应的IP、用户:参考运营侧准备工作帖,获取对接所需要接口文档(主要参考,ManageOne运营面API参考)、运营侧北向接口对外域名:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html联系项目中,华为交付工程师,获取运营管理员账号、密码,或使用已创建的VDC管理员账号。运营管理员可管理所有租户,VDC管理员可管理本级和子级VDC。4.2 获取管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体:(注:运营管理员的domain name固定为mo_bss_admin,VDC管理员的domain name为租户名。){ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "mo_bss_admin" }, "name": "XXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "mo_bss_admin" } } }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token4.3 租户/VDC1. 查询VDC列表URLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs?start=0&limit=1000其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-1000之间,默认值为20。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询VDC列表“接口。)参数类型描述namestringVDC名称,长度在0-128之间。upper_vdc_idstring上级VDC id。domain_idstring所属租户id。levelint32VDC级别,取值在1-5之间。sort_keystring排序字段,支持按create_at、name字段排序。默认值:name。sort_dirstring排序方向,取值范围asc,desc。默认值:asc。is_domainstring是否为租户,1代表是,0代表不是。query_namestring过滤字段。取值范围domainName,upperVdcName,extraquery_valuestring过滤字段值。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 4, "vdcs": [ { "id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "name": "hzp_vdc", "tag": "vdc", "description": null, "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 2, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 1, "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "create_user_name": "bss_admin", "create_at": 1650350228000, "utc_create_at": "2022-04-19 06:37:08.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null }, { "id": "bf588c5a-8d05-49bd-a93d-e937286893e5", "name": "hzp_vdc2", "tag": "vdc", "description": "", "upper_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "upper_vdc_name": "hzp_vdc", "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 1, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 2, "create_user_id": "d0cc23141778469f82854c5269d3d9ee", "create_user_name": "hzp_admin", "create_at": 1651040610000, "utc_create_at": "2022-04-27 06:23:30.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null } ]}响应体字段说明如下:id:VDC idname:vdc名称level:vdc级别,取值在1-5之间。description:描述domain_id:租户iddomain_name:租户名create_at/utc_create_at:创建时间upper_vdc_id:上级VDC idupper_vdc_name:上级VDC 名称project_count:project数量top_vdc_id:所在的一级VDC id。2. 查询VDC详情URLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs/{vdc_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "vdc": { "id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "name": "hzp_vdc", "tag": "vdc", "description": null, "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "ecs_used": 0.0, "evs_used": 0.0, "project_count": 0, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 1, "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "create_user_name": "bss_admin", "create_at": 1650321428000, "utc_create_at": null, "domain_name": "hzp_vdc", "ldap_id": null, "process_id": null, "regions": [ { "region_id": "solution-advance-1", "region_name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "region_type": "private_cloud", "cloud_infras": [ { "cloud_infra_id": "FUSION_CLOUD_solution-advance-1", "cloud_infra_name": "OpenStack_solution-advance-1", "cloud_infra_status": "normal", "cloud_infra_type": "FUSION_CLOUD", "azs": [ { "available_zone": "az0.dc0", "az_name": "华为技术有限公司", "az_status": "normal", "extend_param": "{\"cloud_location\":\"localcloud\"}" } ] } ] } ], "third_type": null, "enterprise_id": null, "mfa_status": "0", "enterprise_project_id": null, "cloud_federation_rate": {}, "cloud_federation_status": false }}响应体字段说明如下:id:VDC idname:vdc名称level:vdc级别,取值在1-5之间。description:描述domain_id:租户iddomain_name:租户名create_at/utc_create_at:创建时间upper_vdc_id:上级VDC idupper_vdc_name:上级VDC 名称project_count:project数量top_vdc_id:所在的一级VDC id。region:区域详情。类型:对象数组。region包含以下字段:region_id:区域idregion_name:区域名称region_type:区域类型cloud_infras:资源池详情。对象类型。cloud_infras包含以下字段:cloud_infra_id:资源池idcloud_infra_name:资源池名称cloud_infra_status:资源池状态cloud_infra_type:资源池类型azs:可用分区详情。类型:对象数组。azs包含以下字段:available_zone:可用分区idaz_name:可用分区名称az_status:可用分区状态。extend_param:拓展参数。
-
1 接口说明从ManageOne 8.2.1版本起,IAM会对OC(运维面)用户进行纳管,第三方可通过SC接口对OC用户进行管理。可用于以下场景:1.客户有自己的统一密码管理系统,需要对OC用户的密码进行管理2.MO已对接第三方统一认证中心,并且有从第三方平台单点登录至OC的需求,此时需要在OC创建相应的用户。2 接口约束1. 支持ManageOne 8.2.1及以上版本2. 当前仅运营管理员(mo_bss_admin)租户下的用户添加OC权限,VDC管理员、代维管理员等其他角色不支持添加OC权限。3 使用指导3.1 准备工作正式对接前,请参考如下步骤,获取对应的IP、用户:参考运营侧准备工作帖,获取对接所需要接口文档(主要参考,ManageOne运营面API参考)、运营侧北向接口对外域名:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html联系项目中,华为交付工程师,获取运营管理员账号、密码.3.2 调用步骤步骤0:获取运营管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体:(注:运营管理员的domain name固定为mo_bss_admin,以下请求体只需要替换用户名和密码即可。){ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "mo_bss_admin" }, "name": "XXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "mo_bss_admin" } } }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token步骤1:查询运营管理员所属的VDCURLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs?name=mo_bss_admin请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 1, "vdcs": [ { "id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "name": "mo_bss_admin", "tag": "system", "description": "mo_bss_admin", "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "extra": null, "ecs_used": 0.0, "evs_used": 0.0, "project_count": 0, "enabled": true, "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "level": 1, "create_user_id": "83cef006b4104f7084fc6ec2095004d7", "create_user_name": "bss_admin", "create_at": 1678128580000, "utc_create_at": "2023-03-06 18:49:40.0", "domain_name": "mo_bss_admin", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null } ]}取id字段为mo_bss_admin的VDC id。 步骤2:创建不带权限的运营管理员用户URLPOST https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/users其中,vdc_id通过步骤1获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "user": { "name": "testuser123", "password": "tT123456#" }}user对象中可包含以下参数:name:用户名,只能由英文字母(区分大小写)、数字和特殊字符@._-组成,不能以“op_svc”、“paas_op”或\开头,且不能以\结尾,且不能命名为admin,power_user或guest。长度范围是4到32位。必选。display_name:用户别名,由除">"和"<"之外的字符组成,0-128个字符。可选。password:密码,包含以下四种字符的三种: 大写字母、小写字母、数字、特殊字符(除<和>字符),且必须包含特殊字符,不能包含名字正序或逆序。长度:8到32个字符 。可选。description:描述,不能包含<或者>字符。长度:0到255个字符。可选。email:邮箱,符合邮箱格式,长度:0到64个字符。可选。areacode:国际区号,只能为数字,长度:0到10个字符。可选。phone:手机号,只能为数字,长度:0到32个字符。可选。enabled:用户状态,枚举值:true和false,默认为true。为false时,表示用户处于停用状态。可选。auth_type:用户类型。枚举值:'0','1','2','4',默认值为'0'。为'0'表示本地认证,为'1'表示SAML认证,为'2'表示LDAP认证,为'4'表示OC的API用户。可选。ldap_id:ldap ID。auth_type为1或2时需要填写此参数。可选。响应体示例{ "user": { "id": "a674600f05ad4cb086d5a60c6847e920", "domain_id": "e1fcb3ba48a64cb2acb5894bcd6d892d", "domain_name": "hzp_vdc", "name": "testuser123", "display_name": null, "enabled": true, "description": null, "vdc_id": "d8e2a487-843b-4309-9d14-e845f593411f", "vdc_name": "hzp_vdc", "ldap_id": null, "create_at": 1657358889000, "login_at": 0, "auth_type": "0", "group_count": null, "user_type": null }}其中,取id字段为用户Id。步骤3:查询OC的用户组列表(创建API用户可跳过)URLGET https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/groups?start=0&limit=100其中,vdc_id从步骤1获取,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-100之间,默认值为10。可包含如下查询条件:参数类型描述namestring按照名称或显示名字段模糊搜索。长度:1到64个字符。sort_keystring排序字段。枚举值:name。默认值为name。sort_dirstring排序方向。枚举值:desc 和asc,默认值:asc。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 6, "groups": [ { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "279b2ca362cb4a3d99077eef7a386877", "name": "Administrators", "description": "Administrators", "create_at": 1678185136000, "type": "default", "tag": "all" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "e9dc8c8a27d34029aafd8f5fd432b795", "name": "AuditManagers", "description": "AuditManagers", "create_at": 1678185135000, "type": "default", "tag": "all" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "c11519130ea14e9dbb17e1f8ea42fd9d", "name": "NorthUserGroup", "description": "NorthUserGroup", "create_at": 1678185136000, "type": "default", "tag": "sys_adm" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "d30066372a8f40148d9406a7e94d76d7", "name": "ReadOnlyUserGroup", "description": "ReadOnlyUserGroup", "create_at": 1678185136000, "type": "default", "tag": "sys_adm" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "ec23408b124a4f0eb7fe1af69c8261f3", "name": "SecurityAdministrators", "description": "SecurityAdministrators", "create_at": 1678185135000, "type": "default", "tag": "all" }, { "domain_id": "09d95085ad7048dbb157d07fa22e9cd1", "domain_name": "mo_bss_admin", "vdc_id": "8ff07323-defd-4188-b5f7-7c09feb76ced", "vdc_name": "mo_bss_admin", "id": "417f9669e6e246ad9904283b45b508c3", "name": "admin_09d95085ad7048dbb157d07fa22e9cd1", "description": "admin_09d95085ad7048dbb157d07fa22e9cd1 description", "create_at": 1678128577000, "type": "default", "tag": "all" } ]}此处,我们根据“name”字段,过滤得到我们需要的用户组的ID。例如,根据“管理员”用户组的name“Administrators”,可查找到其对应的id为“279b2ca362cb4a3d99077eef7a386877”。ManageOne预置的OC角色请参考下表:角色接口名称(name)说明管理员Administrators拥有除“用户管理”、“查询安全日志”、“查看在线用户”和“查询个人安全日志”之外的所有权限。安全管理员组SecurityAdministrators拥有“用户管理”、“License管理”、“密码管理”、“查看在线用户”、“查询安全日志”和“更新ACL策略”的权限。安全审计员AuditManagers拥有所有日志的查询和管理权限,包括“系统管理 > 日志管理”的权限以及统一日志的“查询权限”和“管理权限”。只读用户组ReadOnlyUserGroup拥有界面查看权限,不具有操作权限。步骤4:将用户加入指定用户组(创建API用户可跳过)URLPUT https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}/users/{user_id}其中,user_id从步骤2获取,group_id通过步骤3获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:204(成功)响应体:无至此,拥有OC操作权限的用户就创建完成了。
-
1 VDC模型介绍请参考此链接:cid:link_02 约束条件本文适用于ManageOne 8.1.0及以上版本。3 场景说明自8.0.3版本起,ManageOne加入用户组特性,并支持关联权限。管理员可通过细粒度授权来控制用户能使用的云服务范围,例如限制用户只能使用CCE服务,或给用户只读权限,将用户权限最小化。8.1.0版本后,ManageOne支持通过API管理用户组。4 创建细粒度授权用户目录:4.1 准备工作4.2 创建用户组步骤0:获取管理员token 步骤1:查询VDC列表 步骤2:创建用户组 步骤3:查询VDC下的用户组列表(可选) 4.3 创建VDC用户步骤1:创建不带权限的VDC用户步骤2:将用户加入指定用户组4.4 为指定用户组授权指定资源集步骤1:查询租户下的权限列表步骤2:为指定用户组授权资源集权限4.5 其他接口1. 将用户从指定用户组移除 2. 删除用户组 3. 查询用户绑定的用户组 4. 删除用户4.1 准备工作1. 正式对接前,请参考如下步骤,获取对应的IP、用户:参考运营侧准备工作帖,获取对接所需要接口文档(主要参考,ManageOne运营面API参考)、运营侧北向接口对外域名:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html联系项目中,华为交付工程师,获取运营管理员账号、密码,或使用已创建的VDC管理员账号。运营管理员可管理所有租户,VDC管理员可管理本级和子级VDC。2. 请确保在创建用户前已经完成VDC和Project(资源集)的创建。4.2 创建用户组步骤0:获取管理员token请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体:(注:运营管理员的domain name固定为mo_bss_admin,VDC管理员的domain name为租户名。){ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "mo_bss_admin" }, "name": "XXXX", "password": "XXXXXX" } } }, "scope": { "domain": { "name": "mo_bss_admin" } } }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedContent-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token步骤1:查询VDC列表URLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs?start=0&limit=1000其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-1000之间,默认值为20。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询VDC列表“接口。)参数类型描述namestringVDC名称,长度在0-128之间。upper_vdc_idstring上级VDC id。domain_idstring所属租户id。levelint32VDC级别,取值在1-5之间。sort_keystring排序字段,支持按create_at、name字段排序。默认值:name。sort_dirstring排序方向,取值范围asc,desc。默认值:asc。is_domainstring是否为租户,1代表是,0代表不是。query_namestring过滤字段。取值范围domainName,upperVdcName,extraquery_valuestring过滤字段值。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 4, "vdcs": [ { "id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "name": "hzp_vdc", "tag": "vdc", "description": null, "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 2, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 1, "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "create_user_name": "bss_admin", "create_at": 1650350228000, "utc_create_at": "2022-04-19 06:37:08.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null }, { "id": "bf588c5a-8d05-49bd-a93d-e937286893e5", "name": "hzp_vdc2", "tag": "vdc", "description": "", "upper_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "upper_vdc_name": "hzp_vdc", "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 1, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 2, "create_user_id": "d0cc23141778469f82854c5269d3d9ee", "create_user_name": "hzp_admin", "create_at": 1651040610000, "utc_create_at": "2022-04-27 06:23:30.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null } ]}复制部分响应体字段说明如下: id:VDC idname:vdc名称level:vdc级别,取值在1-5之间。description:描述domain_id:租户iddomain_name:租户名create_at/utc_create_at:创建时间upper_vdc_id:上级VDC idupper_vdc_name:上级VDC 名称project_count:project数量top_vdc_id:所在的一级VDC id。步骤2:创建用户组URLPOST https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/groups请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "group": { "description": "123", "name": "vdcuser776" } }参数说明:name:用户组名称,不能以数字开头。只能由英文字母,中文,数字,中划线,下划线组成,且不能命名为admin、power_user、或guest。长度范围是1到64位。必选。description:描述,不能包含<或者>字符。长度:0到255个字符。可选。响应体示例{ "group": { "domain_id": null, "domain_name": null, "vdc_id": null, "vdc_name": null, "id": "a1b428ffe3ff470296813a73276a3bc0", "name": "vdcuser776", "description": "123", "create_at": 0, "type": null, "display_name": "vdcuser776", "vdc_level": 0 }}其中,id为用户组Id;name为用户组名称;display_name为用户组显示名称。相关接口:删除用户组:DELETE https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id},无请求体和响应体,成功状态码204。步骤3:查询VDC下的用户组列表(可选)URLGET https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/groups?start=0&limit=100其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-100之间,默认值为10。可包含如下查询条件:参数类型描述namestring按照名称或显示名字段模糊搜索。长度:1到64个字符。sort_keystring排序字段。枚举值:name。默认值为name。sort_dirstring排序方向。枚举值:desc 和asc,默认值:asc。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 2, "groups": [ { "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "domain_name": "hzp_vdc", "vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "vdc_name": "hzp_vdc", "id": "8e2deaa2fb7e4226b3f8b43a2b6bd11b", "name": "admin_d86c3636-c637-4ee6-93ca-16c34b38b5c0", "description": "Default VDC administrator group, having the permission to manage services in the VDC that the user group belongs to and its lower-level VDCs.", "create_at": 1650350228000, "type": "default" }, { "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "domain_name": "hzp_vdc", "vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "vdc_name": "hzp_vdc", "id": "943abaee2ce34fd4ac3c4c4eb9368e05", "name": "test1234", "description": "", "create_at": 1650977723000, "type": "custom" } ]}响应体字段说明: total:总量 groups:用户组详情。对象数组。groups包含如下字段:domain_id:租户ID。domain_name:租户名称。vdc_id:VDC ID。vdc_name:VDC名称。id:用户组ID。name:用户组名称。description:用户组描述信息。create_at:用户组创建时间。type:用户组类型。default:系统预置的用户组;custom:自定义用户组。4.3 创建VDC用户步骤1:创建不带权限的VDC用户注:运营管理员角色用户必须使用运营管理员token才能创建;VDC管理员token仅可在本VDC或子级VDC下创建用户。运营管理员token支持在任意VDC下创建用户。URLPOST https://{SC北向接口域名}/rest/vdc/v3.2/vdcs/{vdc_id}/users其中,vdc_id为用户所属VDC的Id请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "user": { "name": "testuser123", "password": "tT123456#" }}user对象中可包含以下参数:name:用户名,只能由英文字母(区分大小写)、数字和特殊字符@._-组成,不能以“op_svc”、“paas_op”或\开头,且不能以\结尾,且不能命名为admin,power_user或guest。长度范围是4到32位。必选。display_name:用户别名,由除">"和"<"之外的字符组成,0-128个字符。可选。password:密码,包含以下四种字符的三种: 大写字母、小写字母、数字、特殊字符(除<和>字符),且必须包含特殊字符,不能包含名字正序或逆序。长度:8到32个字符 。可选。description:描述,不能包含<或者>字符。长度:0到255个字符。可选。email:邮箱,符合邮箱格式,长度:0到64个字符。可选。areacode:国际区号,只能为数字,长度:0到10个字符。可选。phone:手机号,只能为数字,长度:0到32个字符。可选。enabled:用户状态,枚举值:true和false,默认为true。为false时,表示用户处于停用状态。可选。auth_type:用户类型。枚举值:'0','1','2',默认值为'0'。为'0'表示本地认证,为'1'表示SAML认证,为'2'表示LDAP认证。可选。ldap_id:ldap ID。auth_type不为0时需要填写此参数。可选。响应体示例{ "user": { "id": "a674600f05ad4cb086d5a60c6847e920", "domain_id": "e1fcb3ba48a64cb2acb5894bcd6d892d", "domain_name": "hzp_vdc", "name": "testuser123", "display_name": null, "enabled": true, "description": null, "vdc_id": "d8e2a487-843b-4309-9d14-e845f593411f", "vdc_name": "hzp_vdc", "ldap_id": null, "create_at": 1657358889000, "login_at": 0, "auth_type": "0", "group_count": null, "user_type": null }}其中,id为用户Id。步骤2:将用户加入指定用户组URLPUT https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}/users/{user_id}其中,user_id需要通过“查询用户”接口获取,group_id需要通过“查询VDC下的用户组列表”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:204(成功)响应体:无4.4 为指定用户组授权指定资源集步骤1:查询租户下的权限列表URLGET https://{SC北向接口域名}/rest/vdc/v3.0/OS-ROLE/roles/third-party/roles?domain_id={domain_id}其中,domain_id为租户id,可从4.2章节的步骤1获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "system_roles": [ { "id": "985dc76053f94685a15eafc3cd9f5da2", "domain_id": null, "domain_name": null, "name": "te_admin", "display_name": "Tenant Administrator", "flag": null, "catalog": "BASE", "type": "AA", "description_cn": "全部云服务管理员(除IAM管理权限)", "description": "Tenant Administrator (Exclude IAM)", "cloud_platform": "private_cloud", "policy": {"Version":"1.0","Depends":[],"Statement":[{"Effect":"Allow","Action":["*"],"Resource":[]},{"Effect":"Deny","Action":["identity:*"],"Resource":[]}]} }, { "id": "086600a36bc44cb3a5cb9475ddc32da0", "domain_id": null, "domain_name": null, "name": "readonly", "display_name": "Tenant Guest", "flag": null, "catalog": "BASE", "type": "AA", "description_cn": "全部云服务只读权限(除IAM权限)", "description": "Tenant Guest (Exclude IAM)", "cloud_platform": "private_cloud", "policy": {"Version":"1.0","Depends":[],"Statement":[{"Effect":"Allow","Action":["::Get","::List"],"Resource":[]},{"Effect":"Deny","Action":["identity:*"],"Resource":[]}]} }, { "id": "4d0cd24102504767b33fd55d915c55e8", "domain_id": null, "domain_name": null, "name": "vdc_adm", "display_name": "VDC Admin", "flag": null, "catalog": "VDC", "type": "AA", "description_cn": "具有所属VDC及下级VDC的业务管理权限", "description": "Permission to manage services in the VDC that the user group belongs to and its lower-level VDCs", "cloud_platform": "private_cloud", "policy": {"Version":"1.0","Depends":[],"Statement":[{"Effect":"Allow","Action":["moscapp:service*:*","moscapp:resource*:*","moscapp:organization*:*","moscapp:operation*:*","moscapp:application*:*","moscapp:tenant-system*:*","moscapp:personal-center*:*"],"Resource":[]}]} }, { "id": "7c554e7930544a99868465c4954eb5cb", "domain_id": null, "domain_name": null, "name": "vdc_readonly", "display_name": "VDC Readonly", "flag": null, "catalog": "VDC", "type": "AA", "description_cn": "具有对租户中用户、资源集、自运维等的查询权限", "description": "Permission to query information about users and resource sets as well as self-service OM data in the tenant that the user group belongs to", "cloud_platform": "private_cloud", "policy": {"Version":"1.0","Depends":[],"Statement":[{"Effect":"Allow","Action":["moscapp:service*:console","moscapp:service*.list","moscapp:service*.get","moscapp:resource*:console","moscapp:resource*:list","moscapp:resource*:get","moscapp:organization*:console","moscapp:organization*:list","moscapp:organization*:get","moscapp:operation*:console","moscapp:operation*:list","moscapp:operation*:get","moscapp:application*:console","moscapp:application*:list","moscapp:application*:get","moscapp:tenant-system*:console","moscapp:tenant-system*:list","moscapp:tenant-system*:get","moscapp:personal-center*:console","moscapp:personal-center*:list","moscapp:personal-center*:get"],"Resource":[]}]} }, ], "custom_roles": []}其中,取id字段为权限id。例如,vdc只读权限的id为7c554e7930544a99868465c4954eb5cb。步骤2:为指定用户组授权资源集权限URLPUT https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}/roles其中,group_id为用户组id,从4.2章节的步骤2或步骤3获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例:{ "group": { "action": "add", "roles": [ { "id": "086600a36bc44cb3a5cb9475ddc32da0", "inherit": false, "targets": [ { "id": "6934bce513274fd9b20955c3db9728f0" } ] } ] }}请求参数说明:group包含以下字段:action:操作,取值可为add、delete;roles:角色。对象数组。roles包含以下字段:id:权限id,从步骤1获取。inherit:权限是否继承。targets:授权的目标资源集。对象数组。对象内包含资源集的id字段。4.4 其他接口1. 将用户从指定用户组移除URLDELETE https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}/users/{user_id}其中,user_id需要通过“查询用户”接口获取,group_id需要通过“查询用户详情”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:204(成功)响应体:无2. 删除用户组注:删除用户组后会自动解除用户与用户组关联关系,用户权限需重新添加,请谨慎操作。URLDELETE https://{SC北向接口域名}/rest/vdc/v3.2/groups/{group_id}其中,group_id需要通过“查询VDC下的用户组列表”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:204(成功)响应体:无3. 查询用户绑定的用户组接口约束:运营管理员可查询全量用户。VDC管理员仅可查询本VDC以及子级VDC的用户。URLGET https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}其中,user_id为用户id。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "limit_access": "false", "lock_period": null, "login_config": null, "whiteList": null, "user": { "enabled": "true", "description": "", "email": "", "areacode": null, "phone": "", "projects": [], "ldap_id": null, "level": "1", "resource_tenant_id": null, "roles": [ { "id": "00000000-0000-0000-0000-000000000001", "name": "vdcServiceManager", "display_name": "VDC Admin", "user_role_type": null, "description": "role_role_view_para_desc_content_vdcServiceManager_value" } ], "groups": [ { "id": "8afb852688194e408f4edf4bf8c8a690", "name": "SC_289yUXfSpzD", "description": "", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "role_name": null, "vdc_name": "SC_289OHFUVQdL", "role_id": null, "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444" }, { "id": "cdafab1cfe2e4c129d4878b13e171333", "name": "admin_bc0366f0-3b60-486f-a88e-2a38266dd444", "description": "Default VDC administrator group, having the permission to manage services in the VDC that the user group belongs to and its lower-level VDCs.", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "role_name": "vdcServiceManager", "vdc_name": "SC_289OHFUVQdL", "role_id": "00000000-0000-0000-0000-000000000001", "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444" } ], "display_name": null, "second_verify": "false", "vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444", "domain_id": "7111b7a59bff48fa983a6309fae3d7f7", "domain_name": "SC_289OHFUVQdL", "user_type": "0", "name": "SC_289yUXfSpzD", "login_at": null, "id": "b76fc5607bff4ec094891c930cf3b0de", "tag": "vdc", "top_vdc_id": "bc0366f0-3b60-486f-a88e-2a38266dd444", "ldap_name": null }, "federation_regions": []}其中,id为用户Id,name为用户名称,domain_id为租户Id,vdc_id为所属的VDC Id。groups为用户绑定的用户组。4. 删除用户接口约束:1.删除用户时,需确保该用户没有未完成的审批流程、审批任务、订单。2.运营管理员token可删除任意用户,VDC管理员token仅可删除本VDC或子级VDC下的用户。URLDELETE https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体:无成功状态码:200
-
步骤0:获取运营管理员token参考:cid:link_0步骤1:创建租户/VDCURLPOST https://{SC北向接口域名}/rest/vdc/v3.1/vdcs请求体Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "vdc": { "upper_vdc_id": "0", "name": "testvdc", "description": "", "mfa_status": false }}参数说明:name:VDC名称,长度为1-64位,只能由中文、英文字母(不区分大小写)、数字、下划线组成,且不能以数字、"op_"、"shadow_"开头。upper_vdc_id:上级VDC的Id,若创建一级VDC(租户),则填写0。description:描述,长度在0-255之间,不能包含"<"和">"。mfa_status:该租户下用户是否开启双因子认证,false默认不开启。响应体示例{ "vdc": { "default_project": null, "default_project_name": null, "regions": [], "upper_vdc_id": "0", "name": "testvdc", "description": "", "mfa_status": false, "ldap_id": null, "all_quotas": "1", "processes": null, "third_type": "0", "cloud_federation_rate": null, "enterprise_id": null, "status": false, "tag": "vdc", "enterprise_detail": null, "extra": null, "create_user_name": null, "domain_description": null, "enabled": 1, "domain_id": "6383f8307d2d45efbc3d547c0afe07cc", "domain_name": null, "id": "8c8cca18-2418-4c4e-91ee-b1f848e0de25", "create_user_id": "a56bf873148944dfa0dacadd2e19be50", "is_domain": false, "level": 1, "create_at": 0 }}其中,id为VDC Id,name为VDC名称,domain_id为租户Id,upper_vdc_id为上级VDC Id。步骤2:查询Region列表,授权租户可用的Region、资源池、可用分区URLGET https://{SC北向接口域名}/rest/serviceaccess/v3.0/regions请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 2, "records": [ { "id": "dg-tky-12", "public_region_id": null, "type": "private_cloud", "name": "东莞", "status": "normal", "isLocal": true, "locales": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "cloud_infras": [ { "id": "FUSION_CLOUD_dg-tky-12", "name": "OpenStack_dg-tky-12", "region_id": "dg-tky-12", "type": "FUSION_CLOUD", "version": "8.1", "status": "normal", "access_status": "connected", "description": null, "public_cloud_infra_id": null } ] }, { "id": "dg-tky-13", "public_region_id": null, "type": "private_cloud", "name": "华南Region2", "status": "normal", "isLocal": true, "locales": "{\"zh_cn\":\"华南Region2\",\"en_us\":\"华南Region2\"}", "cloud_infras": [ { "id": "FUSION_CLOUD_dg-tky-13", "name": "OpenStack_dg-tky-13", "region_id": "dg-tky-13", "type": "FUSION_CLOUD", "version": "8.1", "status": "normal", "access_status": "connected", "description": null, "public_cloud_infra_id": null } ] } ]}其中,从响应体中取records.id为region_id(如dg-tky-12),取records.cloud_infras.id为资源池id(如FUSION_CLOUD_dg-tky-12)步骤3:查询资源池下的可用分区列表URLGET https://{SC北向接口域名}/rest/serviceaccess/v3.0/available-zones?cloud_infra_id={cloud_infra_id}其中,cloud_infra_id从步骤2查询结果获取。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 3, "records": [ { "az_id": "az0.dc1", "region_id": "dg-tky-12", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "name": "华为", "type": "KVM", "status": "normal", "extend_param": "{\"cloud_location\":\"localcloud\"}" }, { "az_id": "az0.dc2", "region_id": "dg-tky-12", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "name": "华为_x86", "type": "KVM", "status": "normal", "extend_param": "{\"cloud_location\":\"localcloud\"}" }, { "az_id": "az0.bms", "region_id": "dg-tky-12", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "name": "华为_BMS", "type": "Ironic", "status": "normal", "extend_param": "{\"cloud_location\":\"localcloud\"}" } ]}其中,取az_id为可用分区id,例如az0.dc1。步骤4:为租户/一级VDC授权Region、资源池、可用分区URLPUT https://{SC北向接口域名}/rest/vdc/v3.1/vdcs/{vdc_id}/regions其中,vdc_id从步骤1中的响应体获取。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体示例:{ "regions": [ { "region_id": "dg-tky-12", "action": "bind", "cloud_infras": [ { "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "action": "bind", "available_zones": [ { "az_id": "az0.bms", "action": "bind" }, { "az_id": "az0.dc1", "action": "bind" }, { "az_id": "az0.dc2", "action": "bind" } ] } ] }, { "region_id": "dg-tky-13", "action": "bind", "cloud_infras": [ { "cloud_infra_id": "FUSION_CLOUD_dg-tky-13", "action": "bind", "available_zones": [ { "az_id": "az1.dc1", "action": "bind" } ] } ] } ]}如果需要解绑Region、资源池或可用分区,将上述请求体中的action字段的bind值改为unbind即可。状态码:204(成功)响应体:无步骤5:查询云资源池下外部网络列表(非一级VDC可跳过)URLGET https://{SC北向接口域名}/rest/serviceaccess/v3.0/external-networks?cloud_infra_id={cloud_infra_id}其中,cloud_infra_id需要为步骤4已授权的cloud_infra_id。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "external_networks": [ { "id": "a340cd45-fa9f-41cb-96a8-672507e08f71", "name": "EIP_external_net", "location": null, "group": "group1", "service_availability_zones": [], "service_types": [ "Internet" ], "description": "" }, { "id": "8049223b-ed6a-40fd-b1e7-2d8390b31719", "name": "dummy_external_network", "location": null, "group": "group1", "service_availability_zones": [ "az0.dc2" ], "service_types": [ "Location" ], "description": "" } ], "total": 2}其中,取external_networks.id为外部网络的id,例如a340cd45-fa9f-41cb-96a8-672507e08f71。步骤6:为租户分配外部网络(非一级VDC可跳过)注:新创建的租户不执行此步骤则无法创建VPC、EIPURLPUT https://{SC北向接口域名}/rest/vdc/v3.0/vdcs/external-networks/{network_id}其中,network_id为步骤5的外部网络的id。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体示例:{ "resource_id": "e030b8e0-621d-4bfd-b66b-212a86341f51", "cloudInfraId": "FUSION_CLOUD_dg-tky-12", "networkName": "external network", "associateAction": true}其中,resource_id为一级VDC的id,从步骤1获取;cloudInfraId为资源池id,为步骤5的url中填写的参数;networkName为网络名称,该值可自定义;associateAction为分配动作,true表示分配,false表示取消分配。步骤7:查询VDC列表(可选)URLGET https://{SC北向接口域名}/rest/vdc/v3.0/vdcs?start=0&limit=1000其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-1000之间,默认值为20。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询VDC列表“接口。)参数类型描述namestringVDC名称,长度在0-128之间。upper_vdc_idstring上级VDC id。domain_idstring所属租户id。levelint32VDC级别,取值在1-5之间。sort_keystring排序字段,支持按create_at、name字段排序。默认值:name。sort_dirstring排序方向,取值范围asc,desc。默认值:asc。is_domainstring是否为租户,1代表是,0代表不是。query_namestring过滤字段。取值范围domainName,upperVdcName,extraquery_valuestring过滤字段值。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "total": 4, "vdcs": [ { "id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "name": "hzp_vdc", "tag": "vdc", "description": null, "upper_vdc_id": "0", "upper_vdc_name": null, "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 2, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 1, "create_user_id": "9d30a3d12bac4d879e9e9fb4274b76ed", "create_user_name": "bss_admin", "create_at": 1650350228000, "utc_create_at": "2022-04-19 06:37:08.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null }, { "id": "bf588c5a-8d05-49bd-a93d-e937286893e5", "name": "hzp_vdc2", "tag": "vdc", "description": "", "upper_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "upper_vdc_name": "hzp_vdc", "top_vdc_id": "d86c3636-c637-4ee6-93ca-16c34b38b5c0", "extra": "{\"manager\":\"\",\"phone\":\"\",\"email\":\"\"}", "project_count": 1, "enabled": true, "domain_id": "16ea1a6e341d44e385fb3cb077c3b63f", "level": 2, "create_user_id": "d0cc23141778469f82854c5269d3d9ee", "create_user_name": "hzp_admin", "create_at": 1651040610000, "utc_create_at": "2022-04-27 06:23:30.0", "domain_name": "hzp_vdc", "ldap_id": null, "third_id": null, "idp_name": null, "third_type": "0", "region_id": null, "enterprise_id": null, "az_id": null, "enterprise_project_id": null } ]}部分响应体字段说明如下: id:VDC idname:vdc名称level:vdc级别,取值在1-5之间。description:描述domain_id:租户iddomain_name:租户名create_at/utc_create_at:创建时间upper_vdc_id:上级VDC idupper_vdc_name:上级VDC 名称project_count:project数量top_vdc_id:所在的一级VDC id。4.4 创建Project步骤1:查询VDC支持的区域URLGET https://{SC北向接口域名}/rest/vdc/v3.1/vdcs/{vdc_id}/regions请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无响应体示例{ "region_num": 1, "vdc_id": "e030b8e0-621d-4bfd-b66b-212a86341f51", "regions": [ { "region_id": "dg-tky-12", "action": null, "name": "{\"zh_cn\":\"东莞\",\"en_us\":\"东莞\"}", "type": "private_cloud", "status": "normal", "cloud_infras": [ { "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "name": "OpenStack_dg-tky-12", "type": "FUSION_CLOUD", "status": "normal", "available_zones": [ { "az_id": "az0.bms", "name": "华为_BMS", "status": "normal", "type": "Ironic", "extend_param": "{\"cloud_location\":\"localcloud\"}", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "quotas": [] }, { "az_id": "az0.dc1", "name": "华为", "status": "normal", "type": "KVM", "extend_param": "{\"cloud_location\":\"localcloud\"}", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "quotas": [] }, { "az_id": "az0.dc2", "name": "华为_x86", "status": "normal", "type": "KVM", "extend_param": "{\"cloud_location\":\"localcloud\"}", "cloud_infra_id": "FUSION_CLOUD_dg-tky-12", "quotas": [] } ], "quotas": [] } ] } ]}其中,取region_id为区域的id,例如dg-tky-12。步骤2:创建ProjectURLPOST https://{SC北向接口域名}/rest/vdc/v3.1/projects请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例:{ "project": { "tenant_id": "e030b8e0-621d-4bfd-b66b-212a86341f51", "name": "dg-tky-12_test_project", "display_name": "", "is_shared": "false", "description": "", "regions": [ { "region_id": "dg-tky-12" } ], "is_bind_external_network": true, "is_support_hws_service": true }}参数说明:tenant_id:填写project所属的vdc_id。与步骤1的url入参相同。必填。regions:绑定的区域id列表。必填。存在如下约束:如果绑定的region超过一个,那么仅支持HUAWEI CLOUD Stack 基础服务(计算、网络、存储),建议只绑定一个区域。name:project(项目/资源集)名称,必填。如果绑定的regions只有1个,名称需要加上“{region_id}_”前缀。is_shared:是否支持共享,true表示支持,false表示不支持。共享VPC的管理员创建VPC和子网并给下级VDC授予访问VPC中网络的权限,当“是否支持共享VPC”选择“是”时,拥有资源集授权的用户可以使用管理员在该资源集创建的VPC和子网,达到跨VDC的用户使用同一VPC的能力,使网络资源合理共享,实现更加灵活方便的管理和监控。选填。is_bind_external_network:是否绑定租户下分配的外部网络,true表示绑定,false表示不绑定。默认为true。选填。is_support_hws_service:资源集是否支持高阶云服务,true表示支持,false表示不支持。默认为false。如果绑定的region超过一个,此处只能填写false。选填。description:资源集描述,长度为0到255位,不能包含“<”和“>”。状态码:成功(201)响应体示例{ "project": { "id": "05713a92a38d45a8b4fa911fa3b9552e" }}注:非本级或上级VDC管理员需要授权才能获得project的操作权限,具体操作可参考“将用户加入指定用户组”、和“为指定用户组授权指定资源集”。步骤3:查询VDC关联的Project(可选)URLGET https://{SC北向接口域名}/rest/vdc/v3.1/vdcs/{vdc_id}/projects?start=0&limit=100其中,start为分页查询的起始位置,取值在0-2147483647之间,默认从0开始, 默认值为0。分页查询时,start需要为limit的整数倍;limit限制每页显示的条目数量,取值在1-100之间,默认值为10。可包含如下查询条件:(下表包含部分查询条件,全部查询条件请参考《ManageOne 运营面API参考.docx》中”查询指定VDC中资源集集合“接口。)参数类型描述inheritboolean是否查询VDC下所有可见VDC关联的资源集。默认值:falsenamestring模糊搜索所使用的名称字段,长度在1-64之间。sort_dirstring排序方向,取值范围asc,desc。默认值:asc请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "projects": [ { "id": "6aa4d449d6fe4ea68c7cacb1a9803959", "name": "cn-global-205_hzp_project", "description": "", "domain_id": "e1fcb3ba48a64cb2acb5894bcd6d892d", "enabled": true, "tenant_id": "d8e2a487-843b-4309-9d14-e845f593411f", "is_shared": false, "tenant_name": "hzp_vdc", "create_user_id": "b9fd4029af7a4b71a085048b9bbe9072", "create_user_name": "bss_admin", "regions": [ { "region_id": "cn-global-205", "region_name": { "zh_cn": "西安", "en_us": "西安" }, "region_type": null, "region_status": "normal" } ] } ]}其中,id为project Id,name为project名称,domain_id为project所在的租户Id,tenant_id为project所属的VDC Id;tenant_name为project所属的VDC名称;description为project描述;regions为project关联的region信息。4.5 创建默认角色用户说明:此接口可创建系统默认角色用户(VDC管理员、VDC业务员、VDC只读管理员),支持租户用户绑定project。ManegeOne 8.0.3及以上版本,使用此接口创建租户用户,会自动创建同名用户组,并将用户与用户组绑定,然后绑定指定project。ManegeOne 8.0.3及以上版本使用此接口只能绑定系统默认角色,不支持细粒度授权特性,如果有此需求,请参考“如何通过API创建细粒度授权用户”。接口约束:运营管理员角色用户必须使用运营管理员token才能创建;VDC管理员token仅可在本VDC或子级VDC下创建用户。运营管理员token支持在任意VDC下创建用户。URLPOST https://{SC北向接口域名}/rest/vdc/v3.0/users请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "tenant_id": "1d165aa8-7309-4ec7-9854-8d24334bc6ed", "user": { "name": "testuser", "password": "tT123456#", "roles":["00000000-0000-0000-0000-000000000001"], "description":"" }}参数说明:tenant_id:用户所属VDC的Id(非domain_id),参考4.3的步骤7获取。若创建运营管理员为运营管理员的domain_id。user对象中包含以下参数:name:用户名,只能由英文字母(区分大小写)、数字和特殊字符@._-组成,不能以“op_svc”、“paas_op”或\开头,且不能以\结尾,且不能命名为admin、power_user、或guest。长度范围是4到32位。必选。password:密码,包含以下四种字符的三种: 大写字母、小写字母、数字、特殊字符(除<和>字符),且必须包含特殊字符,不能包含名字正序或逆序。长度:8到32个字符 。必选。roles:角色。数据类型:List。常用角色:运营管理员:“00000000-0000-0000-0000-000000000000”;VDC管理员:“00000000-0000-0000-0000-000000000001”;VDC业务员:“00000000-0000-0000-0000-000000000002”;VDC只读管理员:“00000000-0000-0000-0000-000000000005”。必选。projects:授权用户的资源集/项目列表。VDC管理员角色默认拥有所在VDC和子级VDC的资源集权限,可不填写。其他租户角色需要关联project才拥有对应资源集权限。运营管理员角色不需要填写此参数。数据类型:List。project id和获取方法可参考4.4章节的步骤2或步骤3。description:描述,不能包含<或者>字符。长度:0到255个字符。可选。email:邮箱,符合邮箱格式,长度:0到64个字符。可选。areacode:国际区号,只能为数字,长度:0到10个字符。可选。phone:手机号,只能为数字,长度:0到32个字符。可选。响应体示例{ "user": { "id": "811498d36a674e698b25d7d73c817f3f" }}其中,id为用户Id。4.6 其他接口1. 查询用户列表接口约束:运营管理员token可查询全量用户。VDC管理员仅可查询本VDC以及子级VDC的用户。URLGET https://{SC北向接口域名}/rest/vdc/v3.0/users?limit=100&start=0URL常用参数:(完整参数请参考《ManageOne 运营面API参考》)start:分页查询的起始位置,最小值:0 ,最大值:2147483647 ,默认值:0。可选。limit:限制每页显示的条目数量,最小值:1,最大值:100 ,默认值:10。可选。tenant_id:用户归属的VDC ID。可选。name:按照名称或显示名字段模糊搜索。长度:1到128个字符。可选。exact:是否精确匹配,枚举值:true和false,默认值:false。可选。请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx响应体示例{ "total": 1, "users": [ { "enabled": "true", "description": "", "email": "", "areacode": "", "phone": "", "vdc_name": "hzp_vdc", "resource_tenant_id": null, "level": null, "roles": [ { "id": "00000000-0000-0000-0000-000000000001", "name": "vdcServiceManager", "display_name": "VDC Admin", "user_role_type": "0" } ], "display_name": "", "vdc_id": "8c3e288e-49a5-4eab-90a0-47916dac8589", "domain_id": "9b01faf18f454c59a6fd157f0c82e556", "domain_name": "hzp_vdc", "user_type": "0", "name": "hzp_admin", "login_at": "2022-04-18 01:24:27.0", "id": "b7f8bc098f4f4891b93eeff5dcdfc6b5", "create_at": "2022-02-23 06:55:53.0" } ]}其中,id为用户Id,name为用户名称,domain_id为租户Id,vdc_id为所属的VDC Id。2. 修改用户密码接口约束:运营管理员可修改任意用户的密码;VDC管理员仅可修改本VDC或子级VDC下的用户密码;VDC业务员仅可修改自己的密码。URLPUT https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}/password其中,user_id需要通过“查询用户列表”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "user": { "original_password": "******", "password": "******" } }参数说明: original_password:原始密码。 password:密码,必须包含以下四种字符的三种: 大写字母、小写字母、数字、特殊字符(除<和>字符),且必须包含特殊字符,不能包含名字正序或逆序。长度:8到32个字符。状态码:200(重置密码成功)响应体:无3. 重置用户密码接口约束:运营管理员可重置任意用户的密码;VDC管理员仅可重置本VDC或子级VDC下的用户密码;VDC业务员仅可重置自己的密码。重置密码后,用户在第一次登录ManageOne页面时,会被要求修改密码,如果希望解除此限制,可以先调“重置用户密码”接口,再调“修改用户密码”接口。URLPUT https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}/reset-password其中,user_id需要通过“查询用户”接口获取。请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例{ "user": { "password": "*****" } }参数说明: password:密码,必须包含以下四种字符的三种: 大写字母、小写字母、数字、特殊字符(除<和>字符),且必须包含特殊字符,不能包含名字正序或逆序。长度:8到32个字符状态码:200(重置密码成功)响应体:无4. 修改用户基本信息URLPUT https://{SC北向接口域名}/rest/vdc/v3.2/users/{user_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例(完整参数请参考《ManageOne 运营面API参考》){ "user": { "description": "test" }}user中可包含如下字段:display_name:用户别名,由除">"和"<"之外的字符组成,0-128个字符。可选。enabled:用户状态,枚举值:true或false,默认为true。为false时,表示用户处于停用状态。可选。description:说明,不能包含<或>字符,长度:0到255个字符。可选。email:邮箱,符合邮箱格式,长度:0到64个字符。可选。areacode:国际区号,长度:0到10个字符。可选。phone:手机号,长度:0到32个字符。可选。状态码:204(成功)响应体:无5. 删除用户接口约束:1.删除用户时,需确保该用户没有未完成的审批流程、审批任务、订单。2.运营管理员token可删除任意用户,VDC管理员token仅可删除本VDC或子级VDC下的用户。URLDELETE https://{SC北向接口域名}/rest/vdc/v3.0/users/{user_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体:无成功状态码:2006. 修改Project基本信息URLPUT https://{SC北向接口域名}/rest/vdc/v3.0/projects/{project_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体示例(完整参数请参考《ManageOne 运营面API参考》){ "project": { "name": "name", "description": "desc" } }常用字段说明:name:资源集名称,以{region_id}_开头,只能由英文字母、中文、数字、中划线、下划线或者英文括号组成。长度范围1到64位。可选。display_name:资源集别名,不能包含“<”和“>”,长度为0到64位。可选。description:资源集描述,长度为0到255位,不能包含“<”和“>”。可选。状态码:204(成功)响应体:无7. 删除Project接口约束: 删除资源集时,需确保该资源集内的所有资源均已清除。若不满足,接口会报错“movdc-02284:Resource set xxxx has resources in use.”URLDELETE https://{SC北向接口域名}/rest/vdc/v3.0/projects/{project_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx请求体:无状态码:成功(204)响应体:无8. 删除租户/VDC接口约束:删除VDC时,需确保:1. 不存在子级VDC;2. VDC内不存在用户;3. VDC内不存在资源集。若不满足,接口会报错“movdc-01136:The VDC has x lower-level VDCs, x users, x resource sets that include resources.”URLDELETE https://{SC北向接口域名}/rest/vdc/v3.0/vdcs/{vdc_id}请求头Content-Type:application/json X-Auth-Token:x-xxxxxxxxxxx响应体:无成功状态码:204
-
1 数据分析平台介绍数据分析平台及相关接口可介绍参考:cid:link_02 分布式消息服务(DMS)性能查询注:调用API步骤可参考:cid:link_0HCS 8.5.1及以上版本支持查询。2.1 Kafka性能查询URLPOST https://{OC北向接口域名}/rest/analysis/v1/datasets/perf-namespace-sys-dms?pageNo=1&pageSize=1000请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体(建议endTime取当前时间的时间戳,beginTime取10分钟前的时间戳){ "timeRange": { "beginTime": 1646985312000, "endTime": 1647071952452 }, "filters": { }, "dimensions": [ { "field": "dimensions.object.id", "index": 1 }, { "field": "dimensions.object.name", "index": 2 } ], "metrics": [ { "aggType": "avg", "field": "metrics.group_msgs" }, { "aggType": "avg", "field": "metrics.current_partitions" } ]}注:响应体中的id可对应CLOUD_DMS_INSTANCE的resId。响应体中可能存在一些无性能数据的空字段,直接忽略即可。相关接口:查询DMS实例列表:GET https://{OC北向接口域名}/rest/tenant-resource/v1/instances/CLOUD_DMS_INSTANCE?pageNo=1&pageSize=1000指标说明(指标关键字/指标含义/单位) 上报频率:1min。(以OC资源性能界面显示为准) 注:如果未查询到性能数据,请登录”OC界面->集中监控->资源监控“,找到对应资源,检查该资源性能指标是否有数据。如果页面上无数据,表明该指标未上报数据;若页面上有数据,请检查参数是否有误。kafka(实例)性能指标:group_msgs--Kafka堆积消息数--Countcurrent_partitions--分区数--Countcurrent_topics--主题数--Countkafka(节点)性能指标:查询以下指标时,需添加维度dimensions.oridim.kafka_brokerbroker_bytes_in_rate--节点生产流量(Kafka)--byte/sbroker_connections--连接数--Countbroker_total_bytes_in_rate--网络入流量--byte/sbroker_cpu_usage--CPU使用率--%broker_disk_write_rate--磁盘写流量--byte/sbroker_memory_usage--内存使用率--%broker_alive--节点存活状态--Countbroker_disk_usage--磁盘容量使用率--%broker_disk_read_await--磁盘平均读操作耗时--msbroker_cpu_core_load--CPU核均负载--Countbroker_data_size--节点数据容量--bytebroker_fetch_mean--消费请求平均处理时长--msbroker_bytes_out_rate--节点消费流量(Kafka)--byte/sbroker_messages_in_rate--节点消息生产速率(Kafka)--Count/sbroker_disk_write_await--磁盘平均写操作耗时--msbroker_produce_mean--生产请求平均处理时长--msbroker_total_bytes_out_rate--网络出流量--byte/sbroker_disk_read_rate--磁盘读流量--byte/sbroker_heap_usage--Kafka进程JVM堆内存使用率--%kafka(消费组)性能指标:查询以下指标时,需添加维度dimensions.oridim.kafka_groupsconsumer_messages_consumed--消费组已消费消息数--Countconsumer_messages_remained--Kafka消费组可消费消息数--Countkafka(主题)性能指标:查询以下指标时,需添加维度dimensions.oridim.kafka_topicstopic_bytes_in_rate--主题生产流量--byte/stopic_data_size--主题数据容量--bytetopic_messages_in_rate--主题消息生产速率(Kafka)--Count/stopic_messages--主题消息总数--Counttopic_bytes_out_rate--主题消费流量(Kafka)--byte/s2.2 RocketMQ性能查询URLPOST https://{OC北向接口域名}/rest/analysis/v1/datasets/perf-namespace-sys-dms?pageNo=1&pageSize=1000请求头Content-Type:application/jsonX-Auth-Token:x-xxxxxxxxxxx请求体(建议endTime取当前时间的时间戳,beginTime取10分钟前的时间戳){ "timeRange": { "beginTime": 1646985312000, "endTime": 1647071952452 }, "filters": { }, "dimensions": [ { "field": "dimensions.object.id", "index": 1 }, { "field": "dimensions.object.name", "index": 2 } ], "metrics": [ { "aggType": "avg", "field": "metrics.current_queues" }, { "aggType": "avg", "field": "metrics.instance_produce_msg" } ]}注:响应体中的id可对应CLOUD_DMS_INSTANCE的resId。响应体中可能存在一些无性能数据的空字段,直接忽略即可。相关接口:查询DMS实例列表:GET https://{OC北向接口域名}/rest/tenant-resource/v1/instances/CLOUD_DMS_INSTANCE?pageNo=1&pageSize=1000指标说明(指标关键字/指标含义/单位) 上报频率:1min。(以OC资源性能界面显示为准) 注:如果未查询到性能数据,请登录”OC界面->集中监控->资源监控“,找到对应资源,检查该资源性能指标是否有数据。如果页面上无数据,表明该指标未上报数据;若页面上有数据,请检查参数是否有误。RocketMQ(实例)性能指标:current_queues--队列数--Countinstance_produce_msg--实例消息生产数(RocketMQ)--Countcurrent_topics--主题数--Countinstance_consume_msg--实例消息消费数(RocketMQ)--Countinstance_accumulation--RocketMQ堆积消息数--CountRocketMQ(节点)性能指标:查询以下指标时,需添加维度dimensions.oridim.reliablemq_brokerbroker_memory_usage--内存使用率--%broker_produce_p999--节点生产请求P99.9处理时长--msbroker_disk_usage--磁盘容量使用率--%broker_produce_rate--节点消息生产速率(RocketMQ)--Count/sbroker_produce_msg--节点消息生产数(RocketMQ)--Countbroker_cpu_core_load--CPU核均负载--Countbroker_produce_success_rate--生产成功率--%broker_produce_p99--节点生产请求P99处理时长--msbroker_consume_msg--节点消息消费数(RocketMQ)--Countbroker_produce_scheduled_msg--一分钟生产定时消息数--Countbroker_disk_write_rate--磁盘写流量--byte/sbroker_cpu_usage--CPU使用率--%broker_connections--连接数--Countbroker_total_bytes_in_rate--网络入流量--byte/sbroker_disk_read_await--磁盘平均读操作耗时--msbroker_disk_write_await--磁盘平均写操作耗时--msbroker_retention_period--消息保留时间--HOURSbroker_consume_rate--节点消息消费速率(RocketMQ)--Count/sbroker_total_bytes_out_rate--网络出流量--byte/sbroker_disk_read_rate--磁盘读流量--byte/sbroker_alive--节点存活状态--CountRocketMQ(消费组)性能指标:查询以下指标时,需添加维度dimensions.oridim.reliablemq_groupsgroup_accumulation--RocketMQ消费组可消费消息数--Countgroup_consume_msg--消费组消息消费数(RocketMQ)--CountRocketMQ(主题)性能指标:查询以下指标时,需添加维度dimensions.oridim.reliablemq_topicstopic_bytes_in_rate--主题生产流量--byte/stopic_consume_rate--主题消息消费速率(RocketMQ)--count/stopic_produce_rate--主题消息生产速率(RocketMQ)--Count/stopic_bytes_out_rate--主题消费流量--byte/stopic_consume_msg--主题消息消费数(RocketMQ)--Counttopic_produce_msg--主题消息生产数(RocketMQ)--CountRocketMQ(死信队列)性能指标:查询以下指标时,需添加维度dimensions.oridim.reliablemq_dlq_topicsdlq_accumulation--死信主题消息量--Count
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签