云服务器内容精选

  • 在脚本中使用AI服务 预测模型发布后,在图3中单击“使用”,可使用该预测模型进行预测。 系统支持使用服务编排或者脚本来调用预测服务。 选择使用该预测服务的应用,选择页签“在Script中使用”,单击“开发”。 图8 在脚本中使用 系统会自动为所选应用创建好调用该AI的脚本,代码示例如下: import * as aienable from 'aienable'; export class Input { @action.param({ type: "Any", required: false, description: "name" }) name: string; // name为已发布的预测/推荐服务名称 @action.param({ type: "Any", required: false, description: "input" }) dataInputs: JSON; } export class Output { @action.param({ type: "Any" }) result: JSON; } export class testAIEnable { @action.method({ input: "Input", output: "Output", description: "do a operation" }) run(input: Input): void { let client = aienable.newClient("prediction_services") let result = client.predict(input.name, input.dataInputs); console.log(result) } } 单击编辑器上方的,保存脚本。 保存成功后,单击编辑器上方的,运行脚本。 在页面底部“输入参数”页签,输入请求参数,可从图8中“输入参数详情”区域,单击获取,给入参即相关字段配上测试值。 单击测试窗口右上角的,执行脚本。 { "name": "test_01", "dataInputs": { "aienable__AdministrativeDuration__CST": "222", "aienable__Administrative__CST": "221", "aienable__BounceRates__CST": "118", "aienable__InformationalDuration__CST": "1144", "aienable__Informational__CST": "112", "aienable__PageValues__CST": "11", "aienable__ProductRelatedDuration__CST": "12", "aienable__ProductRelated__CST": "11", "aienable__SpecialDay__CST": "11", "aienable__Browser__CST": "123", "aienable__Month__CST": "123", "aienable__OperatingSystems__CST": "123", "aienable__Region__CST": "123", "aienable__Revenue__CST": "123", "aienable__TrafficType__CST": "122", "aienable__VisitorType__CST": "111", "aienable__Weekend__CST": "111" } } 输出如下日志,表示调用预测服务成功,输出的“value”值为预测字段“aienable__ExitRates__CST”的预测值。 单击编辑页面上方的,启用脚本。
  • 在服务编排中使用AI服务 预测模型发布后,在图3中单击“使用”,可使用该预测模型进行预测。 系统支持使用服务编排或者脚本来调用预测服务。 选择使用该预测服务的应用,保持默认所选页签“在Flow中使用”,单击“开发”。 图4 在服务编排中使用 系统会自动为所选应用创建好“AIExample”文件夹和归属于该文件夹的服务编排。 在弹出的服务编排编辑页面查看如下信息。 在页面右侧选择,在全局上下文页面查看到系统已自动创建如下变量。 图5 查看变量 表2 变量说明 变量名 类型 描述 dataInputs 任意 输入参数。 resCode 文本 返回码,如果返回“0”代表请求成功。 resMsg 文本 返回消息,如果成功状态,通常会返回“成功”,其他情况会返回具体的错误信息。 result 任意 调用预测服务请求返回的预测字段取值。 查看整个服务编排的入参、出参。 图6 查看入参出参 选择预测服务图元,查看配置信息。 图7 图元配置 单击编辑器上方的,保存服务编排。 保存成功或,单击编辑器上方的,运行服务编排。 输入入参,入参可从图4中“输入参数详情”区域,单击获取,给入参即相关字段配上测试值。 { "dataInputs": { "aienable__AdministrativeDuration__CST": "222", "aienable__Administrative__CST": "221", "aienable__BounceRates__CST": "118", "aienable__InformationalDuration__CST": "1144", "aienable__Informational__CST": "112", "aienable__PageValues__CST": "11", "aienable__ProductRelatedDuration__CST": "12", "aienable__ProductRelated__CST": "11", "aienable__SpecialDay__CST": "11", "aienable__Browser__CST": "123", "aienable__Month__CST": "123", "aienable__OperatingSystems__CST": "123", "aienable__Region__CST": "123", "aienable__Revenue__CST": "123", "aienable__TrafficType__CST": "122", "aienable__VisitorType__CST": "111", "aienable__Weekend__CST": "111" } } 输出如下结果,表示调用预测服务成功,输出的“value”值为预测字段“aienable__ExitRates__CST”的预测值。 { "interviewId": "002N000000pLp8qlHHQ8", "outputs": { "resCode": "0", "resMsg": "成功", "result": [{ "value": 0.1666532122219126 }] } } 单击编辑器上方的,启用服务编排。
  • 使用说明 AstroZero通过对接软件开发生产线(CodeArts)和代码托管(CodeArts Repo),提供应用代码托管、代码检查、代码编译、验证、部署、发布功能,实现软件持续集成(Continuous Integration,简称CI)和持续交付(Continuous Delivery,简称CD)。 软件开发生产线(CodeArts)是集华为近30年研发实践、前沿研发理念、先进研发工具为一体的一站式云端DevOps平台,面向开发者提供的云服务,即开即用,让开发者快速而又轻松地开启云端开发之旅。更多介绍,请参见软件开发生产线(CodeArts)产品文档。 代码托管CodeArts Repo(原CodeHub)源自华为千亿级代码管理经验,基于Git,提供企业代码托管的全方位服务,为软件开发者提供基于Git的在线代码托管服务,包括代码克隆/下载/提交/推送/比较/合并/分支/Code Review等功能。更多介绍,请参见代码托管(CodeArts Repo)帮助文档。
  • 步骤3:进行代码托管 将AstroZero上开发的应用代码元数据归档到代码仓库。这里以归档某开发环境某个应用为例进行说明,您可对多个配置代码库的AstroZero环境的多个应用进行代码托管。 返回AstroZero经典版开发环境首页,单击某一需要归档代码的应用,进入应用开发页面。 参考图11和图12,在左侧单击。 首次归档应用代码,所有代码显示在“未暂存的更改”下,单击后面的“+”,再单击。设置归档描述信息,单击“确认”,即可归档该应用所有代码。支持选择部分代码归档,在需要归档的代码目录后,单击“+”进行操作即可。 图11 归档代码 图12 设置归档描述 单击“源代码管理”后的,打开代码仓库首页。 图13 提交代码 在代码仓库“文件”页签下,单击“Application”,可查看应用的归档代码。 图14 查看归档应用 图15 查看应用代码 代码仓库“提交网络”页签是以流向图的形式展现了某条分支或标签的整个提交(commit)历史(包括动作、时间、提交者、提交系统生成备注和手动填写备注)以及提交历史的关系。
  • 参数说明 表1 参数说明 参数 是否必选 默认值 数据类型 参数说明 spark.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.access.key 是 无 String 其中USER_BUCKET_NAME为用户的桶名,需要进行替换为用户的使用的OBS桶名。 参数的值为用户定义在CSMS通用凭证中的键key, 其Key对应的value为用户的AK(Access Key Id),需要具备访问OBS对应桶的权限。 spark.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.secret.key 是 无 String 其中USER_BUCKET_NAME为用户的桶名,需要进行替换为用户的使用的OBS桶名。 参数的值为用户定义在CSMS通用凭证中的键key, 其Key对应的value为用户的SK(Secret Access Key),需要具备访问OBS对应桶的权限。 spark.hadoop.fs.obs.security.provider 是 无 String OBS AKSK认证机制,使用DEW服务中的CSMS凭证管理,获取OBS的AK、SK。 默认取值为com.dli.provider.UserObsBasicCredentialProvider spark.hadoop.fs.dew.csms.secretName 是 无 String 在DEW服务的凭据管理中新建的通用凭据的名称。 配置示例:spark.hadoop.fs.dew.csms.secretName=secretInfo spark.hadoop.fs.dew.endpoint 是 无 String 指定要使用的DEW服务所在的endpoint信息。 获取地区和终端节点。 配置示例:spark.hadoop.fs.dew.endpoint=kms.cn-xxxx.myhuaweicloud.com spark.hadoop.fs.dew.csms.version 否 最新的version String 在DEW服务的凭据管理中新建的通用凭据的版本号(凭据的版本标识符)。 若不指定,则默认获取该通用凭证的最新版本号。 配置示例: spark.hadoop.fs.dew.csms.version=v1 spark.hadoop.fs.dew.csms.cache.time.second 否 3600 Long Spark作业访问获取CSMS通用凭证后,缓存的时间。 单位为秒。默认值为3600秒。 spark.hadoop.fs.dew.projectId 否 有 String DEW所在的项目ID, 默认是Spark作业所在的项目ID。 获取项目ID spark.dli.job.agency.name 是 - String 自定义委托名称。
  • 前提条件 已在DEW服务创建通用凭证,并存入凭据值。具体操作请参考:创建通用凭据。 已创建DLI访问DEW的委托并完成委托授权。该委托需具备以下权限: DEW中的查询凭据的版本与凭据值ShowSecretVersion接口权限,csms:secretVersion:get。 DEW中的查询凭据的版本列表ListSecretVersions接口权限,csms:secretVersion:list。 DEW解密凭据的权限,kms:dek:decrypt。 委托权限示例请参考自定义DLI委托权限和常见场景的委托权限策略。 仅支持Spark3.3.1(Spark通用队列场景)及以上版本使用DEW管理访问凭据,在创建作业时,请配置作业使用Spark3.3.1版本、且已在作业中配置允许DLI访问DEW的委托信息。 自定义委托及配置请参考自定义DLI委托权限。 使用该功能,所有涉及OBS的桶,都需要进行配置AKSK。
  • 语法格式 在Spark Jar作业编辑界面,选择配置优化参数,配置信息如下: 不同的OBS桶,使用不同的AKSK认证信息。 可以使用如下配置方式,根据桶指定不同的AKSK信息,参数说明详见表1。 spark.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.access.key= USER_AK_CSMS_KEY spark.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.secret.key= USER_SK_CSMS_KEY spark.hadoop.fs.obs.security.provider = com.dli.provider.UserObsBasicCredentialProvider spark.hadoop.fs.dew.csms.secretName= CredentialName spark.hadoop.fs.dew.endpoint=ENDPOINT spark.hadoop.fs.dew.csms.version=VERSION_ID spark.hadoop.fs.dew.csms.cache.time.second =CACHE_TIME spark.dli.job.agency.name=USER_AGENCY_NAME
  • 样例代码 本章节JAVA样例代码演示将DataGen数据处理后写入到OBS,具体参数配置请根据实际环境修改。 创建DLI访问DEW的委托并完成委托授权。 详细步骤请参考自定义DLI委托权限。 在DEW创建通用凭证。详细操作请参考创建通用凭据。 登录DEW管理控制台 选择“凭据管理”,进入“凭据管理”页面。 单击“创建凭据”。配置凭据基本信息 DLI Spark jar作业编辑界面设置作业参数。 Spark参数: spark.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.access.key= USER_AK_CSMS_KEY spark.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.secret.key= USER_SK_CSMS_KEY spark.hadoop.fs.obs.security.provider=com.dli.provider.UserObsBasicCredentialProvider spark.hadoop.fs.dew.csms.secretName=obsAkSk spark.hadoop.fs.dew.endpoint=kms.xxx.xxx.com spark.hadoop.fs.dew.csms.version=v3 spark.dli.job.agency.name=agency 示例代码 示例代码请参考使用Spark Jar作业读取和查询OBS数据。
  • 操作场景 DLI将Spark Jar作业并的输出数据写入到OBS时,需要配置AKSK访问OBS,为了确保AKSK数据安全,您可以用过数据加密服务(Data Encryption Workshop,DEW)、云凭据管理服务(Cloud Secret Management Service,CSMS),对AKSK统一管理,有效避免程序硬编码或明文配置等问题导致的敏感信息泄露以及权限失控带来的业务风险。 本例以获取访问OBS的AKSK为例介绍Spark Jar使用DEW获取访问凭证读写OBS的操作指导。
  • 示例 本例以通过DataGen表产生随机数据并输出到Mysql结果表中为例,介绍Flink Opensource SQL使用DEW管理访问凭据的配置方法。 创建DLI与Mysql的增强型跨源连接。详细步骤请参考创建增强型跨源连接。 创建DLI访问DEW的委托并完成委托授权。详细步骤请参考自定义DLI委托权限。 在DEW创建通用凭证。详细操作请参考创建通用凭据。 登录DEW管理控制台 选择“凭据管理”,进入“凭据管理”页面。 单击“创建凭据”。配置凭据基本信息 本例配置Mysql的凭据值: "MySQLUsername":"demo" "MySQLPassword":"*******",其中"*******"为Mysql的访问密码 Flink作业编辑框中输入具体的作业SQL,本示例作业参考如下。 create table dataGenSource( user_id string, amount int ) with ( 'connector' = 'datagen', 'rows-per-second' = '1', --每秒生成一条数据 'fields.user_id.kind' = 'random', --为字段user_id指定random生成器 'fields.user_id.length' = '3' --限制user_id长度为3 ); CREATE TABLE jdbcSink ( user_id string, amount int ) WITH ( 'connector' = 'jdbc', 'url' = 'jdbc:mysql://MySQLAddress:MySQLPort/flink',--其中url中的flink表示MySQL中orders表所在的数据库名 'table-name' = 'orders', 'username' = 'MySQLUsername', -- DEW服务中,名称为secretInfo,且版本号v1的的通用凭证,定义凭证值的键MySQLUsername,它的值为用户的敏感信息。 'password' = 'MySQLPassword', -- DEW服务中,名称为secretInfo,且版本号v1的的通用凭证,定义凭证值的键MySQLPassword,它的值为用户的敏感信息。 'sink.buffer-flush.max-rows' = '1', 'dew.endpoint'='kms.cn-xxxx.myhuaweicloud.com', --使用的DEW服务所在的endpoint信息 'dew.csms.secretName'='secretInfo', --DEW服务通用凭据的凭据名称 'dew.csms.decrypt.fields'='username,password', --其中username,password字段值,需要利用DEW凭证管理,进行解密替换。 'dew.csms.version'='v1' ); insert into jdbcSink select * from dataGenSOurce;
  • 语法格式 create table tableName( attr_name attr_type (',' attr_name attr_type)* (',' WATERMARK FOR rowtime_column_name AS watermark-strategy_expression) ) with ( ... 'dew.endpoint'='', 'dew.csms.secretName'='', 'dew.csms.decrypt.fields'='', 'dew.projectId'='', 'dew.csms.version'='' );
  • 参数说明 表1 参数说明 参数 是否必选 默认值 数据类型 参数说明 dew.endpoint 是 无 String 指定要使用的DEW服务所在的endpoint信息。 获取地区和终端节点。 配置示例:'dew.endpoint'='kms.cn-xxxx.myhuaweicloud.com' dew.projectId 否 有 String DEW所在的项目ID, 默认是Flink作业所在的项目ID。 获取项目ID dew.csms.secretName 是 无 String 在DEW服务的凭据管理中新建的通用凭据的名称。 配置示例:'dew.csms.secretName'='secretInfo' dew.csms.decrypt.fields 是 无 String 指定connector with属性中,哪些字段属性需要使用DEW云凭据管理服务进行解密。字段属性之间用逗号分隔,例如:'dew.csms.decrypt.fields'='field1,field2,field3' dew.csms.version 否 最新的version String 在DEW服务的凭据管理中新建的通用凭据的版本号(凭据的版本标识符)。 若不指定,则默认获取该通用凭证的最新版本号。 配置示例: 'dew.csms.version'='v1'
  • 前提条件 已在DEW服务创建通用凭证,并存入凭据值。具体操作请参考:创建通用凭据。 已创建DLI访问DEW的委托并完成委托授权。该委托需具备以下权限: DEW中的查询凭据的版本与凭据值ShowSecretVersion接口权限,csms:secretVersion:get。 DEW中的查询凭据的版本列表ListSecretVersions接口权限,csms:secretVersion:list。 DEW解密凭据的权限,kms:dek:decrypt。 委托权限示例请参考自定义DLI委托权限和常见场景的委托权限策略。 仅支持Flink1.15版本使用DEW管理访问凭据,在创建作业时,请配置作业使用Flink1.15版本、且已在作业中配置允许DLI访问DEW的委托信息。 在DLI管理控制台新建“增强型跨源连接”配置DLI与数据源的网络连通。 具体操作请参考增强型跨源连接。
  • 操作场景 DLI将Flink作业的输出数据写入到Mysql或DWS时,需要在connector中设置账号、密码等属性。但是账号密码等信息属于高度敏感数据,需要做加密处理,以保障用户的数据隐私安全。 数据加密服务(Data Encryption Workshop,DEW)、云凭据管理服务(Cloud Secret Management Service,CSMS),提供一种安全、可靠、简单易用隐私数据加解密方案。 用户或应用程序通过凭据管理服务,创建、检索、更新、删除凭据,轻松实现对敏感凭据的全生命周期的统一管理,有效避免程序硬编码或明文配置等问题导致的敏感信息泄露以及权限失控带来的业务风险。 本节操作介绍Flink Opensource SQL场景使用DEW管理和访问凭据的操作指导。
  • 操作步骤 使用STS的敏感配置项管理功能 ,需要在ACMS中录入敏感配置项,具体请参见录入敏感配置。 在IaC脚本中的业务配置项配置文件中指定敏感配置项取值路径。 此处以增加一个名为spring.redis.password的敏感配置项为例,这个敏感配置项是访问Redis的密码。 spring.redis.password: MicroService/{service}/{microservice}/spring.redis.password/default # 配置路径为:MicroService/服务名/微服务名/敏感配置项名称/敏感配置项标签 在IaC脚本中的业务配置项属性定义文件中,声明该配置项为敏感配置项。 type: object properties: spring.redis.password: format: sensitive 在application.yml配置文件中增加敏感配置项名称的配置。 nuwa: security: config: sensitiveWords: spring.redis.password,org.app.protocol-login.oauth.clientSecret,org.app.jwt-key 启动敏感配置项自动解密。 在启动类中添加@EnableStsEncryptableProperties注解。