云服务器内容精选

  • IAM 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 资源编排 服务( RFS ) 支持的自定义策略授权项如下所示: 表1 privateTemplate 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目 (Enterprise Project) 创建私有模板 POST /v1/{project_id}/templates rf:privateTemplate:create √ x 创建新的私有模板版本 POST /v1/{project_id}/templates/{template_name}/versions rf:privateTemplate:createVersion √ x 删除私有模板 DELETE /v1/{project_id}/templates/{template_name} rf:privateTemplate:delete √ x 删除私有模板版本 DELETE /v1/{project_id}/templates/{template_name}/versions/{version_id} rf:privateTemplate:deleteVersion √ x 列举project下所有的私有模板 GET /v1/{project_id}/templates rf:privateTemplate:list √ x 展示私有模板下所有模板版本信息 GET /v1/{project_id}/templates/{template_name}/versions rf:privateTemplate:listVersions √ x 展示私有模板的信息 GET /v1/{project_id}/templates/{template_name}/metadata rf:privateTemplate:showMetadata √ x 获取私有模板版本内容 GET /v1/{project_id}/templates/{template_name}/versions/{version_id} rf:privateTemplate:showVersionContent √ x 获取私有模板版本的元数据 GET /v1/{project_id}/templates/{template_name}/versions/{version_id}/metadata rf:privateTemplate:showVersionMetadata √ x 更新私有模板元数据 PATCH /v1/{project_id}/templates/{template_name}/metadata rf:privateTemplate:updateMetadata √ x 表2 stack 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 应用执行计划 POST /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name} rf:stack:applyExecutionPlan √ x 继续部署堆栈 POST /v1/{project_id}/stacks/{stack_name}/continuations rf:stack:continueDeployStack √ x 继续回滚堆栈 POST /v1/{project_id}/stacks/{stack_name}/rollbacks rf:stack:continueRollbackStack √ x 创建执行计划 POST /v1/{project_id}/stacks/{stack_name}/execution-plans rf:stack:createExecutionPlan √ x 创建堆栈 POST /v1/{project_id}/stacks rf:stack:createStack √ x 删除执行计划 DELETE /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name} rf:stack:deleteExecutionPlan √ x 删除堆栈 DELETE /v1/{project_id}/stacks/{stack_name} rf:stack:deleteStack √ x 部署堆栈 PATCH /v1/{project_id}/stacks/{stack_name}/deployment rf:stack:deployStack √ x 预估执行计划价格 GET /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name}/prices rf:stack:estimateExecutionPlanPrice √ x 获取执行计划信息 GET /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name} rf:stack:getExecutionPlan √ x 获取执行计划元数据信息 GET /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name}/metadata rf:stack:getExecutionPlanMetadata √ x 获取执行计划模板 GET /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name}/templates rf:stack:getExecutionPlanTemplate √ x 获取堆栈元数据信息 GET /v1/{project_id}/stacks/{stack_name}/metadata rf:stack:getStackMetadata √ x 获取堆栈模板 GET /v1/{project_id}/stacks/{stack_name}/templates rf:stack:getStackTemplate √ x 导入资源栈资源 PATCH /v1/{project_id}/stacks/{stack_name}/resources rf:stack:importResources √ x 查询执行计划信息列表 GET /v1/{project_id}/stacks/{stack_name}/execution-plans rf:stack:listExecutionPlans √ x 查询堆栈部署事件列表 GET /v1/{project_id}/stacks/{stack_name}/events rf:stack:listStackEvents √ x 查询堆栈输出列表 GET /v1/{project_id}/stacks/{stack_name}/outputs rf:stack:listStackOutputs √ x 查询堆栈资源信息列表 GET /v1/{project_id}/stacks/{stack_name}/resources rf:stack:listStackResources √ x 查询堆栈列表 GET /v1/{project_id}/stacks rf:stack:listStacks √ x 更新堆栈 PATCH /v1/{project_id}/stacks/{stack_name} rf:stack:updateStack √ x 修改堆栈删除保护 PUT /v1/{project_id}/stacks/{stack_name}/deletion-protections rf:stack:updateStackDeletionProtection √ x 表3 stackSet 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 创建资源栈集 POST /v1/stack-sets rf:stackSet:create √ x 创建资源栈实例 POST /v1/stack-sets/{stack_set_name}/stack-instances rf:stackSet:createStackInstances √ x 删除资源栈集 DELETE /v1/stack-sets/{stack_set_name} rf:stackSet:delete √ x 删除资源栈实例 DELETE /v1/stack-sets/{stack_set_name}/stack-instances rf:stackSet:deleteStackInstances √ x 部署资源栈集 POST /v1/stack-sets/{stack_set_name}/deployments rf:stackSet:deploy √ x 查询资源栈集列表 GET /v1/stack-sets rf:stackSet:list √ x 查询资源栈集操作信息列表 GET /v1/stack-sets/{stack_set_name}/operations rf:stackSet:listOperations √ x 查询资源栈实例列表 GET /v1/stack-sets/{stack_set_name}/stack-instances rf:stackSet:listStackInstances √ x 获取资源栈集元数据信息 GET /v1/stack-sets/{stack_set_name}/metadata rf:stackSet:showMetadata √ x 获取资源栈集操作元数据信息 GET /v1/stack-sets/{stack_set_name}/operations/{stack_set_operation_id}/metadata rf:stackSet:showOperationMetadata √ x 获取资源栈实例信息 GET /v1/stack-sets/{stack_set_name}/stack-instances/{stack_instance_addr} rf:stackSet:showStackInstance √ x 获取资源栈集模板 GET /v1/stack-sets/{stack_set_name}/templates rf:stackSet:showTemplate √ x 更新资源栈集 PATCH /v1/stack-sets/{stack_set_name} rf:stackSet:update √ x 更新资源栈实例 PATCH /v1/stack-sets/{stack_set_name}/stack-instances rf:stackSet:updateStackInstances √ x 表4 template 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 解析模板参数 POST /v1/{project_id}/template-analyses/variables rf:template:parseTemplateVariables √ x
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 约束与限制 通过IAM应用授权的IAM认证方式API,仅支持通过当前账号及其归属用户的Token进行调用,不支持其他账号及其归属用户调用。如有需要可以通过白名单授权的方式授权给其他账号,详见通过白名单授权IAM认证方式API。 IAM认证方式的API只能授权给IAM类型的应用。 如果对无认证方式的API进行应用授权,则系统会忽略此操作。 IAM类型的应用每个 DataArts Studio 实例下仅能创建一个,名称固定为华为账号,且不支持修改。 对于数据服务共享版IAM认证方式的API,系统已默认记录了当前账号的白名单,不支持删除,因此共享版IAM认证方式的API无需进行授权即可进行调用。而专享版中使用IAM认证方式的API则必须先通过应用或白名单授权才能调用。
  • 测试API 填写入参取值。 如果单个参数需要传多个值时,写法如下: 字符串:'a','b','c' 数值:1,2 字段:a,b,c 图6 填写入参取值 (可选)调整排序参数描述pre_order_by的值。 pre_order_by的默认值已由系统根据已配置的所有排序参数给出,自定义排序默认为升序。排序参数描述pre_order_by的值填写形式为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。勾选“是否传值”后,测试结果将按照pre_order_by的值排序。 对于pre_order_by的值,您可以进行如下修改: 删掉某可选的排序参数,则此排序参数不再参与排序。 修改自定义排序方式的排序参数为升序或降序方式,则此排序参数按照修改后的排序方式排序。 pre_order_by的值,不支持进行如下修改,否则会修改不生效或导致调用报错。 删掉某必选的排序参数,则此排序参数依然会正常参与排序,删除不生效。 调整排序参数的前后顺序,则排序依然以SQL中的排序参数顺序为准。调整不生效。 修改升序或降序的排序参数为其他排序方式,则会调用失败,不允许修改。 图7 调整排序参数描述pre_order_by的值 (可选)查看分页参数值。 采用默认分页方式时,可以查看分页参数情况,其中pageSize表示分页后的页面大小,pageNum表示页码。默认按100的大小分页,返回第1页数据。 图8 查看分页参数值 完成API参数的配置并保存后,单击左下角的“开始测试”,可进入API测试环节。 填写参数值,单击“开始测试”,即可在线发送API请求,在右侧可以看到API请求详情及返回内容。 测试过程中,如果数据服务API查询及返回数据的总时长超过默认60秒,会报超时错误。 如果测试失败,请查看错误提示并做相应的修改重新测试。 完成API测试之后,单击“确定”,即成功生成了一个数据API。
  • 配置取数逻辑 本例中以脚本方式说明如何配置API取数逻辑。Mybatis方式与之相比差异在于参数解析形式和支持的语法差异,在使用流程上没有区别。 如果使用Mybatis方式生成API,则需要将本章节脚本中的参数解析格式由${parameter}修改为#{parameter}形式,另外Mybatis方式支持的标签语法可在界面中单击脚本编辑处的,查看弹出的Mybatis脚本编辑提示。 “取数方式”选择“脚本方式”或“MyBatis方式”: 选择数据源、数据连接、数据库等数据信息。 数据服务仅支持部分数据源,详情请参见DataArts Studio支持的数据源。您需提前在DataArts Studio管理中心中配置好数据源,按照脚本编辑提示要求输入SQL语句。 选择分页方式,推荐使用自定义分页方式。 默认分页是指在创建API时输入了SQL,数据服务会自动基于SQL外层包装分页逻辑。 例如输入的SQL脚本为: SELECT * FROM userinfo WHERE id=${userid} 数据服务在处理调试或者调用时,将自动在用户SQL外层包装分页逻辑,从而变成以下脚本: SELECT * FROM (SELECT * FROM userinfo WHERE id=${userid}) LIMIT {limitValue} OFFSET {offsetValue} 其中limitValue表示读取的数据条数,offsetValue表示跳过的数据条数(即偏移量),系统将默认赋值。 自定义分页是指在创建API时,数据服务将不对SQL进行处理,分页逻辑需要在写SQL时由用户自定义。值得注意的是,为避免API查询数据量过大导致集群异常,自定义分页方式下必须在写SQL时添加分页逻辑。 如果已知需要读取的数据条数limitValue和需要跳过的数据条数offsetValue,则分页逻辑可以写成以下脚本: SELECT * FROM userinfo WHERE id=${userid} LIMIT {limitValue} OFFSET {offsetValue} 而在实际使用中,更多的是根据分页后的页面大小pageSize和页码pageNum定义分页逻辑,脚本样式如下: SELECT * FROM userinfo WHERE id=${userid} LIMIT {pageSize} OFFSET {pageSize*(pageNum-1)} 不同的数据源具有不同的语法风格,分页脚本应按照数据源语法要求调整。例如: DLI 数据源不支持“LIMIT {limitValue} OFFSET {offsetValue}”的写法,仅支持“LIMIT {limitValue}” 。 HETU数据源分页需要反转,不支持“LIMIT {limitValue} OFFSET {offsetValue}”的写法,仅支持“OFFSET {offsetValue} LIMIT {limitValue}”。 编写API查询SQL。 在脚本编辑页面,单击脚本编辑处的,按照脚本编辑提示开发SQL查询语句。单击可将入参添加为SQL语句的API请求参数。另外,专享版数据服务支持返回总条数,开启后可返回取值脚本执行结果数据的总条数。 例如,需要在用户表中根据用户ID查询用户信息时,取值脚本可写为如下脚本。其中,“id”为userinfo表中的字段,“userid”为API中定义的入参。 SELECT * FROM userinfo WHERE id=${userid} 如果分页方式为自定义分页,页面大小pageSize为10、页码pageNum为2时,按照LIMIT {pageSize} OFFSET {pageSize*(pageNum-1)}转换方法,脚本可写为: SELECT * FROM userinfo WHERE id=${userid} LIMIT 10 OFFSET 10 图2 编写API查询SQL 脚本编辑完成后,单击脚本编辑窗口下方的“测试SQL”,填写入参值,执行验证是否能返回预期结果。如果测试失败,可在“预览SQL”页签下查看实际运行的SQL语句是否符合预期,或者通过“日志”页签查看报错信息。 图3 测试SQL SELECT查询的字段即为API返回参数,支持通过AS返回别名。 WHERE条件中的参数为API请求参数,脚本方式下参数格式为${参数名},MyBatis方式下参数格式为#{参数名}。 专享版数据服务支持返回总条数,开启后可返回取值脚本执行结果数据的总条数。 如果单个参数需要传多个值时,写法如下: 字符串:'a','b','c' 数值:1,2 字段:a,b,c 添加排序参数。 在排序参数列表中,单击“新建”可设置排序字段。 字段名称对外不可见,是所选的数据表中的字段,是API调用时实际访问的内容。在API查询SQL语句已编写完成且测试通过的前提下,可在“字段名称”输入框中选择排序字段。 变量可自定义,用于与字段名称关联。在“变量”输入框中输入参数名称(一般填写为参数名称即可),系统会自动修改为变量形式。 是否可选决定了调用API时此排序参数是否必选,勾选则表示此参数可以不传,可以通过排序参数描述pre_order_by的值配置是否参与排序;不勾选则此参数必传,即使排序参数描述pre_order_by的值未配置此参数,依然会参与排序。 排序方式表示了当前参数允许使用的排序形式,分为升序、降序以及自定义。自定义排序参数默认为升序排序,可通过排序参数描述pre_order_by的值进行调整;而升序或降序的排序参数,不支持通过pre_order_by的值调整排序方式,如果pre_order_by的值与此处设置排序方式不符,则会导致配置调试或调用报错。 多个排序参数时,表示当第一个排序参数相等时,再逐一用后续排序参数去排序。与配置方式不同的是,参数的排序顺序与添加排序字段的先后无关,而是需要通过SQL脚本自定义,并且不支持通过排序参数描述pre_order_by的值进行调整。 注意,脚本/MyBatis API的排序字段必须要使用ORDER BY添加到SQL语句中,才能使该排序参数生效,单击可将排序参数添加到SQL语句。添加ORDER BY参数时,关联字段名即可,多个排序字段的先后顺序由脚本定义,不支持在脚本中通过ASC或DESC设置顺序或降序方式。SQL语句中未添加的排序参数即使在排序参数描述pre_order_by的值中定义,排序也不会生效。 例如,需要在用户表中根据用户ID查询用户信息,先后通过age和kk两个字段排序,页面大小pageSize为10、页码pageNum为2时,脚本样例如下。 SELECT * FROM userinfo WHERE id=${userid} order by ${age},${kk} LIMIT 10 OFFSET 10 图4 添加排序参数 脚本编辑完成后,单击脚本编辑窗口下方的“测试SQL”,填写入参值和排序参数描述pre_order_by的值,执行验证是否能返回预期结果。 pre_order_by的默认值已由系统根据已配置的所有排序参数给出,自定义排序默认为升序。排序参数描述pre_order_by的值填写形式为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。勾选“是否传值”后,测试结果将按照pre_order_by的值排序。 对于pre_order_by的值,您可以进行如下修改: 删掉某可选的排序参数,则此排序参数不再参与排序。 修改自定义排序方式的排序参数为升序或降序方式,则此排序参数按照修改后的排序方式排序。 pre_order_by的值,不支持进行如下修改,否则会修改不生效或导致调用报错。 删掉某必选的排序参数,则此排序参数依然会正常参与排序,删除不生效。 调整排序参数的前后顺序,则排序依然以SQL中的排序参数顺序为准。调整不生效。 修改升序或降序的排序参数为其他排序方式,则会调用失败,不允许修改。 如果测试失败,可在“预览SQL”页签下查看实际运行的SQL语句是否符合预期,或者通过“日志”页签查看报错信息。 图5 测试SQL 单击“下一步”,进行API测试页面。
  • 获取API信息 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。 在左侧导航栏选择服务版本(例如:专享版),进入总览页。 获取待调用API的调用地址、请求方法和入参信息。 在左侧导航栏中进入API管理,找到待调用的API,并单击API名称查看API的完整信息,保存调用地址、请求方法和入参信息。 调用地址:专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。共享版使用APIG地址,可直接选择该地址进行调用。 入参:本调用样例中创建了一个具备Query和Path入参位置的API,以便为您介绍入参应如何在调用时输入。 图1 保存调用地址、请求方法和入参信息
  • 调用API 打开Chrome浏览器,新建一个空白页签。 参考获取API信息,在浏览器中输入API调用地址并直接访问。注意如果入参中包含Path和Query参数,则需要将调用地址中的{path}变量修改为Path参数具体取值,Query参数取值可以通过“?Query参数名=Query参数值”的形式添加到调用地址的最后,如本例中为“?query=1”。 https://xx.xx.xx.xx/getContestantInfo/2?query=1 如果您需要对调用结果进行自定义调整,则还可以配置如下Query参数,通过“&”连接多个参数: (可选)分页配置:默认情况下,对于配置方式和默认分页的脚本/MyBatis方式API,系统将默认赋值返回量。如果需要获取特定分页数据,您可以添加如下参数设置分页,其中pageSize表示分页后的页面大小,pageNum表示页码。 https://xx.xx.xx.xx/getContestantInfo/2?query=1&pageSize=100&pageNum=1 自定义分页的脚本/MyBatis方式API是在创建API时将分页逻辑写到取数SQL中,因此不支持在调用时修改分页设置。 (可选)排序配置:默认情况下,系统会根据排序参数信息给出默认排序情况,自定义排序默认为升序。如果需要修改排序情况,您可以修改pre_order_by参数。其中排序参数描述pre_order_by的值填写形式为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。 https://xx.xx.xx.xx/getContestantInfo/2?query=1&pre_order_by=id:ASC;age:ASC;score:DESC 对于pre_order_by的值,您可以进行如下修改: 删掉某可选的排序参数,则此排序参数不再参与排序。 修改自定义排序方式的排序参数为升序或降序方式,则此排序参数按照修改后的排序方式排序。 pre_order_by的值,不支持进行如下修改,否则会修改不生效或导致调用报错。 删掉某必选的排序参数,则此排序参数依然会正常参与排序,删除不生效。 调整排序参数的前后顺序,则排序依然以配置方式API配置排序参数时的排序参数顺序或脚本/MyBatis方式API SQL中的排序参数顺序为准,调整不生效。 修改升序或降序的排序参数为其他排序方式,则会调用失败,不允许修改。 (可选)“返回总条数”配置:在创建API时,如果已打开“返回总条数”开关,则当API对应的数据表数据量较大时,获取数据总条数将会比较耗时。此时,如果需要在调用时不计算并返回数据总条数,可以修改use_total_num参数。use_total_num参数用于控制是否计算并返回数据总条数,值为1返回数据总条数,值非1不返回数据总条数。 https://xx.xx.xx.xx/getContestantInfo/2?query=1&use_total_num=0 浏览器访问后可查看返回结果。返回"errCode":"DLM.0"即表示API调用成功。如果失败,则请根据保错信息进行修复。 图2 使用浏览器调用API
  • 约束与限制 如需在本地调用专享版API,则需在创建专享版集群时绑定一个弹性公网IP,作为实例的公网入口。共享版API默认可通过公网访问。 调用数据服务API时,如果查询及返回数据的总时长超过默认60秒则会报超时错误。此时可通过访问日志中的API调用时长信息,根据超时阶段进一步优化API配置。 ____________Duration information__________ duration: 60491ms //总耗时 url_duration: 0ms //URL匹配耗时 auth_duration: 70ms //鉴权耗时 befor_sql_duration: 402ms //执行SQL预处理耗时 sql_duration: 60001ms //SQL执行耗时 after_sql_duration:18ms //执行SQL后处理耗时
  • 管理集群共享 专享版集群创建成功后,默认仅能在绑定的工作空间内使用。如果您需要在其他工作空间使用此集群,则可以进行集群共享,共享后在其他工作空间可查看、使用但不能管理该集群,并能将API发布至该集群。 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择已购买专享版集群的工作空间的“数据服务”模块,进入数据服务页面。 在数据服务集群页面单击“集群”,进入集群列表页面。 单击集群名称,进入集群详情页面。 在集群详情页面,单击“共享管理”页签,进入共享管理页面。 图3 进入共享管理页面 单击“共享”,在弹出的窗口中勾选需要共享的工作空间后,单击“确定”完成集群共享。 图4 选择工作空间 对于已共享集群的工作空间,您可以在该工作空间内,正常查看、使用该集群。 如后续需要取消该工作空间的集群共享,则需要先下线该工作空间已在集群上发布的API,再到绑定工作空间的数据服务集群详情页面,取消共享。
  • 操作步骤 购买数据服务专享集群增量包,系统会按照您所选规格自动创建一个数据服务专享集群。 单击已开通实例卡片上的“购买增量包”。 进入购买DataArts Studio增量包页面,参见表1进行配置。 表1 购买数据服务专享版实例参数说明 参数项 说明 增量包类型 选择数据服务专享集群增量包。 计费方式 实例收费方式,当前支持“包年包月”。 工作空间 选择需要使用数据服务专享集群增量包的工作空间。例如需要在DataArts Studio实例的工作空间A中使用数据服务专享版,则此处工作空间应选择为A。集群购买成功后,即可通过在工作空间A查看到创建好的数据服务专享集群。 如果需要在其他工作空间内使用该集群,您可以在集群创建成功后,参考管理集群共享将该集群共享给其他工作空间。 可用区 选择数据服务专享集群所在的可用区。 支持单AZ和多AZ两种部署方式。推荐使用多AZ方式。 单AZ:仅可以选择1个AZ,集群节点部署在同一AZ上。 多AZ:可选择2-10个AZ,集群节点部署在不同AZ上,以提升集群的容灾能力。 详情请参见什么是可用区。 集群名称 - 集群描述 可以自定义对当前数据服务专享版集群的描述。 版本 当前数据服务专享版的集群版本。 集群规格 不同实例规格,对API数量的支持能力不同。 公网入口 开启“公网入口”,创建集群时会为集群自动绑定一个新建的弹性公网IP,后续可以通过此公网IP地址调用专享版API。该功能新建的弹性公网IP不会计入收费项。 如果您存在需要本地调用或跨网调用API的使用场景,建议开启。如果在创建集群时未开启公网入口,后续则不再支持绑定EIP。 带宽大小 可配置公网带宽范围。 虚拟私有云 DataArts Studio实例中的数据服务专享版集群所属的VPC、子网、安全组。 在相同VPC、子网、安全组中的云服务资源(如E CS ),可以使用数据服务专享版实例的私有地址调用API。建议将专享版集群和您的其他关联业务配置一个相同的VPC、子网、安全组,确保网络安全的同时,方便网络配置。 VPC、子网、安全组的详细操作,请参见《虚拟私有云用户指南》。 说明: 目前专享版集群创建完成后不支持切换VPC、子网、安全组,请谨慎选择。 如果开启公网入口,安全组入方向需要放开80(HTTP)和443(HTTPS)端口的访问权限。 此处支持选择共享VPC子网,即由VPC的所有者将VPC内的子网共享给当前账号,由当前账号在购买数据服务专享版集群时选择共享VPC子网。通过共享VPC子网功能,可以简化网络配置,帮助您统一配置和运维多个账号下的资源,有助于提升资源的管控效率,降低运维成本。如何共享VPC子网,请参考《共享VPC》。 子网 安全组 企业项目 DataArts Studio专享版集群关联的企业项目。企业项目管理是一种按企业项目管理云资源的方式,具体请参见企业管理用户指南。 节点数量 - 购买时长 - 单击“立即购买”,确认规格后提交。
  • 网络环境准备 如图1所示,专享版集群创建后,资源位于资源租户区,由ELB统一对集群节点进行负载均衡。 专享版集群创建后,您可以通过如下途径访问集群API: 内网地址:内网地址为用户VPC内的终端节点IP地址,默认具备。 外网地址(可选):外网地址为绑定在ELB上的EIP地址。EIP仅在创建数据服务集群时,勾选开启公网入口,才会具备。 内网 域名 (可选):内网域名是指在VPC中生效的域名。创建集群后可通过“绑定内网域名”,输入自定义内网域名,数据服务调用DNS服务将内网域名与内网地址相关联。 公网域名(可选):公网域名是在Internet中使用公网解析的域名。创建集群后可通过“绑定公网域名”,输入已完成注册、备案的域名,数据服务调用DNS服务将公网域名与外网地址相关联。 图1 专享版集群网络架构说明 因此,为了保证专享版集群API能够被用户访问,集群创建中需要注意如下网络配置: VPC 虚拟私有云。专享版实例需要配置虚拟私有云(VPC),在同一VPC中的资源(如ECS),可以使用专享版实例的私有地址调用API。 在购买时专享版实例时,建议配置和您其他关联业务相同VPC,确保网络安全的同时,方便网络配置。 弹性公网IP 专享版实例的API如果要允许外部调用,则需要购买一个弹性公网IP,并在购买时绑定给实例,作为实例的公网入口。 安全组 安全组类似防火墙,控制谁能访问实例的指定端口,以及控制实例的通信数据流向指定的目的地址。安全组入方向规则建议按需开放地址与端口,这样可以最大程度保护实例的网络安全。 专享版实例绑定的安全组有如下要求: 入方向:如果需要从公网调用API,或从其他安全组内资源调用API,则需要为专享版实例绑定的安全组的入方向放开80(HTTP)、443(HTTPS)两个端口。 出方向:如果后端服务部署在公网,或者其他安全组内,则需要为专享版实例绑定的安全组的出方向放开后端服务地址与API调用监听端口。 如果API的前后端服务与专享版实例绑定了相同的安全组、相同的虚拟私有云,则无需专门为专享版实例开放上述端口。 路由配置 在物理机纳管场景下,如果物理机纳管网段与集群网段不一致,需要配置路由。 进入集群“基本信息”页面,单击配置路由项的“新建”按钮,新增物理机的IP地址,如图2所示。 图2 基本信息
  • 删除API 在DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。 在左侧导航栏选择服务版本(例如:专享版),进入总览页。 在左侧选择“API目录”,进入API列表页,勾选需要删除的API,单击“删除”。 只有未发布状态(如已创建、已下线)的API可以删除,已停用或发布状态不可删除。 批量删除API最多同时删除1000个API。 单击“确定”,完成API删除。
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于管理员创建IAM用户接口,您可以从接口的请求部分看到所需的请求参数及参数说明,将消息体加入后的请求如下所示,其中加粗的字段需要根据实际值填写。 accountid为IAM用户所属的账号ID。 username为要创建的IAM用户名。 email为IAM用户的邮箱。 **********为IAM用户的登录密码。 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users Content-Type: application/json X-Sdk-Date: 20240416T095341Z Authorization: SDK-HMAC-SHA256 Access=****************, SignedHeaders=content-type;host;x-sdk-date, Signature=**************** { "user": { "domain_id": "accountid", "name": "username", "password": "**********", "email": "email", "description": "IAM User Description" } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“X-Subject-Token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于管理员创建IAM用户接口,使用AK/SK方式认证时,添加消息头后的请求如下所示。 1 2 3 4 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users Content-Type: application/json X-Sdk-Date: 20240416T095341Z Authorization: SDK-HMAC-SHA256 Access=****************, SignedHeaders=content-type;host;x-sdk-date, Signature=****************