华为云用户手册

  • 了解算法工程模板 算法工程模板结构如下: your-project-name ├── algorithms -- algorithm toolkit folder │ ├──custom ├── data -- data folder, │ └── raw -- the original, immutable data dump. ├── docs -- doc for your project ├── model_zoo -- pretrained model zoo folder ├── project-slug -- user's source code in this project. ├── config_ma.py -- ModelArts related configuration, authentications, temp obs bucket, proxy, etc. ├── manage.py -- CLI entry ├── README.md ├── requirement.txt -- The requirements file for reproducing the environment └── setup.py -- makes project pip installable (pip install -e .) so project-slug can be imported 其中: - algorithms:算法默认下载路径。 - data:数据集默认下载路径。 - docs:使用文档目录。 - model_zoo:模型默认下载路径。 - config_ma.py:创建工程时输入的配置信息,如果在算法内的config.py里填写了同样的信息,那么算法config.py的优先级高于config_ma.py。 - manage.py:算法工程命令行入口。
  • 使用ma-cli创建工程 场景一:在JupyterLab的Terminal里使用ma-cli创建工程 打开JupyterLab的Terminal。 图1 打开Terminal 执行ma-cli createproject命令创建工程,用户可按照提示交互式输入project_name,此处以water_meter为例。 ma-cli createproject 图2 创建算法工程 执行cd {project_name}命令切换到工程目录下。 cd {project_name} 根据界面提示输入相关参数。 author_name [Your name/organization/company/team]: 自定义,例如:modelarts-algorithms-test huaweicloud_region_name [cn-north-4]: 此参数可以忽略,系统会自动识别Notebook所在区域。 obs_bucket :自定义OBS桶路径,该OBS桶必须与Notebook在同一个区域。 Select install_asset: 图3 创建算法工程参数设置 场景二:在JuputerLab的Ipynb文件里使用ma-cli创建工程 在JuputerLab的Ipynb文件里执行命令,需要在命令前加!符号,例如: !ma-cli createproject -sc
  • 参数说明 参数 是否必选 参数说明 默认值 feature_columns_str 是 特征列列名,支持多列用','分隔 "” label_column 是 标签列列名 "" discretization_columns_str 否 需要进行离散化特征列列名,支持多列用','分隔 "" method 是 过滤选择的方法,取值如下: IV:根据IV值计算特征的重要性,注:IV法仅支持2分类; Gini增益:根据Gini增益计算特征重要性; 信息增益:根据信息增益计算特征重要性; Lasso:采用Lasso回归计算特征重要性; "" select_feature_num 是 选择的TopN个特征,如果大于输入特征数,则输出所以特征 None discretization_method 否 离散化连续特征方法,取值如下: equidistant division:根据特征的最小、最大值等距离分隔 "" discretization_bin_num 否 离散化连续特征区间数量 None is_sparse 是 是否是K:V的稀疏特征 False kv_col 否 稀疏特征列名 "" item_spliter 否 K:V特征中每个item之间的分隔符 "," kv_spliter 否 K:V特征中每个key与value之间的分隔符 ":"
  • 子用户启动其他用户的SSH实例 子用户可以看到所有用户的Notebook实例后,如果要通过SSH方式远程连接其他用户的Notebook实例,需要将SSH密钥对更新成自己的,否则会报错ModelArts.6786。更新密钥对具体操作请参见修改Notebook SSH远程连接配置。 具体的错误信息提示:ModelArts.6789: 在ECS密钥对管理中找不到指定的ssh密钥对xxx,请更新密钥对并重试。
  • 样例 inputs = { "predict_dataframe": None # @input {"label":"dataframe","type":"DataFrame"} } params = { "inputs": inputs, "label_col": "", # @param {"label": "label_col", "type": "string", "required": "true", "helpTip": ""} "prediction_index_col": "prediction_index", # @param {"label": "prediction_index_col", "type": "string", "required": "true", "helpTip": ""} "label_index_col": "label_index" # @param {"label": "label_index_col", "type": "string", "required": "true", "helpTip": ""} } multi_class_evaluation____id___ = MLSMultiClassEvaluation(**params) multi_class_evaluation____id___.run() # @output {"label":"dataframe","name":"multi_class_evaluation____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 inputs = { "dataframe": None, # @input {"label":"dataDF","type":"DataFrame"} } params = { "inputs": inputs, "data_delimeter": ",", # @param {"label":"data_delimeter","type":"string","required":"false","helpTip":""} "compression_type": "Bzip2", # @param {"label":"task","type":"enum", "options":"Bzip2,deflate,Gzip","required":"true","helpTip":""} "data_partition": 1, # @param {"label":"data_partition","type":"int","required":"false","helpTip":""} "data_path": "", # @param {"label":"data_path","type":"path","required":"true","helpTip":""} } execute_compress____id___ = MLSSaveWithCompression(**params) execute_compress____id___.run()
  • 参数说明 参数 参数含义 默认值 tensor_col_name 特征列名称。 数据格式为key:value,多个特征使用英文逗号(,)分隔。例如1:1.0,3:1.0 无 label_col_name label列名。数据必须是数值类型。如果task取值为binary_classification,则label只能取0或1。 无 task FM算法的训练模式(分类、回归) binary_classification dim 使用英文逗号(,)分隔的三个整数,分别表示0次项、线性项及二次项的长度。 1,1,8 num_epochs 迭代数。 100 learn_rate 学习率。 0.01 param_lambda 使用英文逗号(,)分隔的三个浮点数,分别表示0次项、线性项及二次项的正则化系数。 0.2,0.2,0.2 init_stdev 参数初始化标准差。 0.01 mini_batch_fraction 训练过程中,最小分片大小。 1 tol 判断收敛的忍受度。 0.1 pred_result_col_name 预测结果列名。 predictResultCol pred_score_col_name 预测得分列名(在分类模型中存在)。 predictScoreCol keep_col_names 保存至输出结果表的列。 无 数据样例:
  • 查看Notebook实例事件 在Notebook的整个生命周期,包括实例的创建、启动、停止、规格变更等关键操作以及实例的运行状态等在后台都有记录,用户可以在Notebook实例详情页中查看具体的事件,通过实例的事件,从而看到实例的运行或者异常等状态详情。在右侧可以手动刷新事件,也可以设置间隔30秒,1分钟,5分钟自动刷新事件。 图1 查看Notebook实例事件并设置自动刷新 表1 实例创建过程的事件列表 事件名称 事件描述 事件级别 Scheduled 实例被调度成功 提示 PullingImage 正在拉取镜像 提示 PulledImage 镜像拉取完毕 提示 NotebookHealthy 实例运行中,处于健康状态 重要 CreateNotebookFailed 创建实例失败 紧急 PullImageFailed 镜像拉取失败 紧急 表2 实例启动过程的事件列表 事件名称 事件描述 事件级别 Scheduled 实例被调度成功 提示 PullingImage 正在拉取镜像 提示 PulledImage 镜像拉取完毕 提示 NotebookHealthy 实例运行中,处于健康状态 重要 RunHookScript 运行自定义脚本 提示 StartNotebookFailed 实例启动失败 紧急 PullImageFailed 镜像拉取失败 紧急 CreateKernelFailed conda命令不可用导致创建jupyter kernel失败 (The jupyter launcher page does not contain the kernel due to conda environment issues, please ensure that {conda_env} is available and the command: {conda_cmdt} env list can be run properly) 重要 权限问题导致创建jupyter kernel失败 (The jupyter launcher page does not contain the kernel due to permission issues, please ensure that the uid {ma_uid} have write permissions to {conda_path}) 重要 ConfigurationError conda命令不可用导致配置modelarts sdk和ma-cli路径到conda env失败 (The modelarts sdk and cli is unavailable in the conda envs due to conda environment issues, please ensure that the {conda_env} is available and the command: {conda_cmd} env list can be run properly) 重要 权限问题导致配置modelarts sdk和ma-cli路径到conda env失败 (The modelarts sdk and cli is unavailable in the conda env due to permission issues,please ensure that the uid {ma_uid} have write permissions to {conda_path}) 重要 表3 实例停止过程的事件列表 事件名称 事件描述 事件级别 StopNotebook 实例停止 重要 StopNotebookResourceIdle 实例因资源空闲即将自动停止或实例因资源空闲自动停止 重要 表4 更新实例过程的事件列表 事件名称 事件描述 事件级别 UpdateName 更新实例名称 提示 UpdateDescription 更新实例描述 提示 UpdateFlavor 更新实例规格 重要 UpdateImage 更新实例镜像 重要 UpdateStorageSize 实例存储正在扩容 (User %s is updating storage size from %sGB to %sGB) 重要 实例扩容完成 (User %s updated storage size successfully) 重要 UpdateKeyPair 配置实例密钥对 (User %s updated the instance keypair to "{%s}") 重要 更新实例密钥对 (User %s updated the instance keypair from %s to %s) 重要 UpdateWhitelist 更新实例访问白名单 重要 UpdateHook 更新自定义脚本 重要 UpdateStorageSizeFailed 资源售罄引起的实例存储扩容失败 (The EVS disk is sold out) 紧急 内部错误引起的实例扩容失败 (The EVS disk size updated failed. Operations and maintenance personnel are handling the problem) 紧急 表5 镜像保存过程中的事件列表 事件名称 事件描述 事件级别 SaveImage 保存镜像成功 重要 SavedImageFailed D进程引起的保存镜像失败 (There are processes in 'D' status, please check process status using 'ps -aux' and kill all the 'D' status processes) 紧急 镜像大小引起的保存镜像失败 (Container size %dG is greater than threshold %dG) 紧急 层数限制引起的保存镜像失败 (Too many layers in your image) 紧急 任务超时引起的保存镜像失败 (Operations personnel are handling the problem) 紧急 SWR故障引起的保存镜像失败 (Failed to save the image because the SWR service is faulty) 紧急 表6 实例运行过程的事件列表 事件名称 事件描述 事件级别 NotebookUnhealthy 实例处于不健康状态 紧急 OutOfMemory 实例被OOM掉了 紧急 JupyterProcessKilled jupyter进程被killed掉了 紧急 CacheVolumeExceedQuota /cache目录文件大小超过最大限制 紧急 NotebookHealthy 实例从不健康恢复到了健康状态 重要 EVSSoldOut EVS存储售罄 紧急 表7 OBS动态挂载产生的事件列表 事件名称 事件描述 事件级别 DynamicMountStorage 挂载OBS存储 重要 DynamicUnmountStorage 卸载OBS存储 重要 表8 用户侧触发的事件 事件名称 事件描述 事件级别 RefreshCredentialsFailed 用户鉴权失败 紧急 父主题: 管理Notebook实例
  • 组件配置方式 方式一 : 以配置表方式确定填充策略 输入 参数 子参数 参数说明 inputs dataDF inputs为字典类型,dataDF为pyspark中的DataFrame类型对象,输入数据 inputs paramDF inputs为字典类型,paramDF为pyspark中的DataFrame类型对象,待修改字段的配置 输出 参数 参数说明 dataDF inputs为字典类型,dataDF为pyspark中的DataFrame类型对象,填充后的数据输出 paramDF inputs为字典类型,paramDF为pyspark中的DataFrame类型对象,已被修改字段的配置 样例 dataDF: +---+----+-----------+--------+---------+-------+----+ |id |age |job |marital |education|housing|loan| +---+----+-----------+--------+---------+-------+----+ |0 |59 |admin. |married |secondary|yes |no | |1 |56 |admin. |married |secondary|no |no | |2 |41 |technician |married |secondary|yes |no | |3 |55 |services |married |secondary|yes |no | |4 |54 |admin. |married |tertiary |no |no | |5 |null|management |single |tertiary |yes |yes | |6 |56 |management |married |tertiary |yes |yes | |7 |60 |retired |divorced|secondary|yes |no | |8 |39 |technician |single |unknown |yes |no | |9 |37 |technician |married |secondary|yes |no | |10 |34 |admin. |married |secondary|no |no | |11 |null|null |divorced|secondary|yes |no | |12 |28 |services |single |secondary|yes |no | |13 |30 |technician |married |secondary|yes |no | |14 |36 |technician |married |secondary|yes |yes | |15 |37 |admin. |single |secondary|yes |yes | |16 |null|blue-collar|married |secondary|yes |no | |17 |53 |services |divorced|primary |yes |yes | +---+----+-----------+--------+---------+-------+----+ paramDF +---------+---------------------------------------------------------------------------------------------------------------------+ |feature |json | +---------+---------------------------------------------------------------------------------------------------------------------+ |age |{"name":"fillMissingValues","type":"IntegerType","paras":{"missing_value_type":"null","replaced_value":"45.0"}} | |job |{"name":"fillMissingValues","type":"StringType","paras":{"missing_value_type":"null","replaced_value":"blue-collar"}}| |education|{"name":"fillMissingValues","type":"StringType","paras":{"missing_value_type":"unknown","replaced_value":"primary"}} | +---------+---------------------------------------------------------------------------------------------------------------------+ 结果: 数据输出结果: +---+---+-----------+--------+---------+-------+----+ |id |age|job |marital |education|housing|loan| +---+---+-----------+--------+---------+-------+----+ |0 |59 |admin. |married |secondary|yes |no | |1 |56 |admin. |married |secondary|no |no | |2 |41 |technician |married |secondary|yes |no | |3 |55 |services |married |secondary|yes |no | |4 |54 |admin. |married |tertiary |no |no | |5 |45 |management |single |tertiary |yes |yes | |6 |56 |management |married |tertiary |yes |yes | |7 |60 |retired |divorced|secondary|yes |no | |8 |39 |technician |single |primary |yes |no | |9 |37 |technician |married |secondary|yes |no | |10 |34 |admin. |married |secondary|no |no | |11 |45 |blue-collar|divorced|secondary|yes |no | |12 |28 |services |single |secondary|yes |no | |13 |30 |technician |married |secondary|yes |no | |14 |36 |technician |married |secondary|yes |yes | |15 |37 |admin. |single |secondary|yes |yes | |16 |45 |blue-collar|married |secondary|yes |no | |17 |53 |services |divorced|primary |yes |yes | +---+---+-----------+--------+---------+-------+----+ 配置输出结果: +---------+---------------------------------------------------------------------------------------------------------------------+ |feature |json | +---------+---------------------------------------------------------------------------------------------------------------------+ |age |{"name":"fillMissingValues","type":"IntegerType","paras":{"missing_value_type":"null","replaced_value":"45.0"}} | |job |{"name":"fillMissingValues","type":"StringType","paras":{"missing_value_type":"null","replaced_value":"blue-collar"}}| |education|{"name":"fillMissingValues","type":"StringType","paras":{"missing_value_type":"unknown","replaced_value":"primary"}} | +---------+---------------------------------------------------------------------------------------------------------------------+ 方式二 : 以配置表方式确定填充策略 输入 参数 子参数 参数说明 inputs dataDF inputs为字典类型,dataDF为pyspark中的DataFrame类型对象,输入数据 输出 参数 参数说明 dataDF inputs为字典类型,dataDF为pyspark中的DataFrame类型对象,填充后的数据输出 paramDF inputs为字典类型,paramDF为pyspark中的DataFrame类型对象,已被修改字段的配置 参数说明 参数 参数说明 configs 第一个是列名1,被填充值1,填充值1;列名2,被填充值2,填充值2 例:col_double,null,mean;col_string,null-empty,str_type_empty 样例 dataDF: +---+----+-----------+--------+---------+-------+----+ |id |age |job |marital |education|housing|loan| +---+----+-----------+--------+---------+-------+----+ |0 |59 |admin. |married |secondary|yes |no | |1 |56 |admin. |married |secondary|no |no | |2 |41 |technician |married |secondary|yes |no | |3 |55 |services |married |secondary|yes |no | |4 |54 |admin. |married |tertiary |no |no | |5 |null|management |single |tertiary |yes |yes | |6 |56 |management |married |tertiary |yes |yes | |7 |60 |retired |divorced|secondary|yes |no | |8 |39 |technician |single |unknown |yes |no | |9 |37 |technician |married |secondary|yes |no | |10 |34 |admin. |married |secondary|no |no | |11 |null|null |divorced|secondary|yes |no | |12 |28 |services |single |secondary|yes |no | |13 |30 |technician |married |secondary|yes |no | |14 |36 |technician |married |secondary|yes |yes | |15 |37 |admin. |single |secondary|yes |yes | |16 |null|blue-collar|married |secondary|yes |no | |17 |53 |services |divorced|primary |yes |yes | +---+----+-----------+--------+---------+-------+----+ configs: age,null,mean;job,null,blue-collar;education,unknown,primary 结果: 数据输出结果: +---+---+-----------+--------+---------+-------+----+ |id |age|job |marital |education|housing|loan| +---+---+-----------+--------+---------+-------+----+ |0 |59 |admin. |married |secondary|yes |no | |1 |56 |admin. |married |secondary|no |no | |2 |41 |technician |married |secondary|yes |no | |3 |55 |services |married |secondary|yes |no | |4 |54 |admin. |married |tertiary |no |no | |5 |45 |management |single |tertiary |yes |yes | |6 |56 |management |married |tertiary |yes |yes | |7 |60 |retired |divorced|secondary|yes |no | |8 |39 |technician |single |primary |yes |no | |9 |37 |technician |married |secondary|yes |no | |10 |34 |admin. |married |secondary|no |no | |11 |45 |blue-collar|divorced|secondary|yes |no | |12 |28 |services |single |secondary|yes |no | |13 |30 |technician |married |secondary|yes |no | |14 |36 |technician |married |secondary|yes |yes | |15 |37 |admin. |single |secondary|yes |yes | |16 |45 |blue-collar|married |secondary|yes |no | |17 |53 |services |divorced|primary |yes |yes | +---+---+-----------+--------+---------+-------+----+ 配置输出结果: +---------+---------------------------------------------------------------------------------------------------------------------+ |feature |json | +---------+---------------------------------------------------------------------------------------------------------------------+ |age |{"name":"fillMissingValues","type":"IntegerType","paras":{"missing_value_type":"null","replaced_value":"45.0"}} | |job |{"name":"fillMissingValues","type":"StringType","paras":{"missing_value_type":"null","replaced_value":"blue-collar"}}| |education|{"name":"fillMissingValues","type":"StringType","paras":{"missing_value_type":"unknown","replaced_value":"primary"}} | +---------+---------------------------------------------------------------------------------------------------------------------+
  • 动态扩容EVS有什么限制 Notebook实例的存储配置采用的是云硬盘EVS。 图1 创建Notebook实例时选择云硬盘EVS存储 单次最大可以扩容100GB,扩容后的总容量不超过4096GB。 云硬盘EVS存储容量最大支持4096GB,达到4096GB时,不允许再扩容。 实例停止后,扩容后的容量仍然有效。计费也是按照扩容后的云硬盘EVS容量进行计费。 云硬盘EVS只要使用就会计费,请在停止Notebook实例后,确认不使用就及时删除数据,释放资源,避免产生费用。
  • 在VS Code中调试Add算子 在Terminal中执行如下命令进入Add算子所在目录。 cd samples/cplusplus/level1_single_api/4_op_dev/6_ascendc_custom_op/kernel_invocation/Add 执行如下命令编译和运行脚本。 CPU模式下执行如下命令。 bash run.sh add_custom ascend910B1 VectorCore cpu 其中,add_custom表示需要运行的算子,ascend910B1表示算子运行的AI处理器型号,VectorCore表示在VectorCore上运行,cpu表示算子以cpu模式运行。 运行结果如下,当前使用md5sum对比了所有输出bin文件,md5值一致表示实际的输出数据和真值数据相符合。 图3 CPU模式运行结果 NPU模式下执行如下命令 bash run.sh add_custom ascend910B1 VectorCore npu 运行结果如下,当前使用md5sum对比了所有输出bin文件,md5值一致表示实际的输出数据和真值数据相符合。 图4 NPU模式运行结果
  • 在VS Code中调试matmul算子 matmul算子所在目录为“samples/cplusplus/level1_single_api/4_op_dev/6_ascendc_custom_op/kernel_invocation/Matmul”。 在work目录下执行如下命令。 cd samples/cplusplus/level1_single_api/4_op_dev/6_ascendc_custom_op/kernel_invocation/Matmul 执行如下命令修改main.cpp文件,此文件为调用算子的应用程序文件。 vim main.cpp 将param4FileSize的值改为192 图5 修改param4FileSize为192 执行如下命令修改vim matmul_custom.cpp文件。 vim matmul_custom.cpp 将 matmul_custom.cpp中的tiling.K更改成tiling.Ka 图6 tiling.K更改成tiling.Ka 手动在Matmul目录下创建名为“output”的文件夹。 图7 创建output文件夹 执行如下命令编译和运行脚本。 CPU模式下执行如下命令 bash run.sh matmul_custom ascend910B1 AiCore cpu ONBOARD CUSTOM_TILING 运行结果如下,当前使用md5sum对比了所有输出bin文件,md5值一致表示实际的输出数据和真值数据相符合。 图8 CPU模式运行结果 NPU模式下执行如下命令 bash run.sh matmul_custom ascend910B1 AiCore npu ONBOARD CUSTOM_TILING 运行结果如下,当前使用md5sum对比了所有输出bin文件,md5值一致表示实际的输出数据和真值数据相符合。 图9 NPU模式运行结果
  • 概述 训练、推理场景下,使用第三方框架时遇到不支持的算子,需要自己开发;网络调优时,发现一些算子组合性能较低,需重新开发高性能算子替换低性能的算子,此时可以通过VS Code一键连接云上Notebook,使用云上资源,在VS Code端进行算子开发、调试等。Notebook中已经配置好环境,您无需进行CANN软件安装和环境变量配置就可以进行工程化开发。 本文档提供了一套算子工程样例代码,您可以直接使用。如果需要了解Ascend算子的编程模型等,请参见昇腾文档。Notebook中已经配置好环境,无需进行CANN软件安装和环境变量配置,直接在VS Code远端环境中直接进行算子分析及后续操作。
  • 准备工作 单击链接下载算子样例并上传到OBS桶。 创建基于mindspore_2.2.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b引擎的Notebook实例,并打开SSH远程开发开关。且该Notebook实例状态必须为“运行中”。具体操作参考创建Notebook实例。 本文档只针对选用“mindspore_2.2.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b”的引擎进行算子调测,如果使用其它AI引擎可能会报错。 图1 创建基于mindspore_2.2.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b引擎的Notebook实例 打开JupyterLab,单击文件上传按钮,将OBS桶的样例文件传至Notebook。详细操作请参考上传OBS文件到JupyterLab。
  • 快速部署 本章节主要指导用户如何自动化部署“全球数据传输加速”解决方案。 表1 参数配置 参数名称 类型 是否可选 参数解释 默认值 accelerate_domain string 必填 加速域名,该域名必须在工信部已经备案,此域名建议为public_zone_domain公网域名的二级域名。取值范围:域名用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成,各级域名之间用实点(.)连接,国际域名75个字符。注意连接符(-)不能作为域名的开头或结尾字符。示例:download.game-apk1.com。 空 public_zone_domain string 必填 公网域名地址。用户业务系统对外提供服务的域名。取值范围:域名用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成,各级域名之间用实点(.)连接,国际域名75个字符。注意连接符(-)不能作为域名的开头或结尾字符。示例:game-apk1.com。 空 service_area string 必填 服务范围,默认为中国大陆,可根据业务实际需求选择。 mainland_china:中国大陆 outside_mainland_china:中国大陆境外 global:全球 mainland_china origin_server_address string 必填 源站域名或源站IP,源站为IP类型时,仅支持IPv4,如需传入多个源站IP,以多个源站对象传入,除IP其他参数请保持一致,主源站最多支持15个源站IP对象,备源站最多支持15个源站IP对象;源站为域名类型时仅支持1个源站对象。不支持IP源站和域名源站混用。 空 origin_server_type string 必填 源站类型,默认为IP地址,可根据业务实际需求选择。 ipaddr:IP地址 Domain:域名 ipaddr 登录华为云解决方案实践,选择"全球数据传输加速"模板,单击“一键部署”,跳转至解决方案创建堆栈界面。 图1 解决方案实施库 在选择模板界面中,单击“下一步”。 图2 选择模板 在配置参数界面中,自定义填写堆栈名称,根据表1填写配置参数信息,单击“下一步”。 图3 配置参数 在资源栈设置页面中,权限委托选择“rf_admin_trust”(可选),单击“下一步”。 图4 资源栈设置 在配置确认页面中,单击“创建执行计划”。 图5 配置确认 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 等待执行计划状态为“创建成功,待部署”后,单击“部署”,并且在弹出的执行计划确认框中单击“执行”。 图7 执行计划 图8 执行计划确认 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考2-表 资源和成本规划(包年包月))请及时登录费用中心,手动完成待支付订单的费用支付。 等待解决方案自动部署。部署成功后,单击“事件”,回显结果如下: 图9 资源创建成功 图10 执行完成 父主题: 实施步骤
  • 约束与限制 该解决方案部署前,需注册华为账号并开通华为云,完成实名认证,且账号不能处于欠费或冻结状态。如果计费模式选择“包年包月”,请确保账户余额充足以便一键部署资源的时候可以自动支付;或者在一键部署的过程进入费用中心,找到“待支付订单”并手动完成支付。 公网域名必须在华为云域名注册服务中进行申请购买并完成工信部认证。 该解决方案在网络不佳情况下,可能会出现超时部署失败,如出现此情况,请先执行“快速卸载”操作,再执行“快速部署”重新部署解决方案。
  • 创建rf_admin_trust委托 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“统一身份认证”菜单。 图1 控制台管理界面 图2 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图3 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤 如果委托不存在时执行接下来的步骤创建委托 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务”,选择“RFS”,单击“下一步”。 图4 创建委托 在搜索框中输入“Tenant Administrator”权限,并勾选搜索结果。 图5 选择策略 选择“所有资源”,并单击下一步完成配置。 图6 设置授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图7 委托列表
  • 快速部署 本章节主要指导用户如何自动化部署“无服务告警推送”解决方案。 表1 参数填写说明 参数名称 类型 是否可选 参数解释 默认值 topic_name string 必填 消息通知服务SMN主题的名字。Topic名称只能包含大写字母、小写字母、数字、-和_,且必须由大写字母、小写字母或数字开头,长度为1到255个字符 serverless_alert_notifier_smn_demo secret_name string 必填 存储在数据加密服务DEW中的企业微信凭证名称,企业微信凭证获取以及存储请参照获取告警推送凭据 condition_cpu_value number 必填 指定CPU使用率平均值大于百分之多少时发送告警推送。取值范围:0-100。 70 condition_disk_value number 必填 指定系统盘使用率平均值大于百分之多少时发送告警推送。取值范围:0-100。 70 condition_mem_value number 必填 指定内存使用率平均值大于百分之多少时发送告警推送。取值范围:0-100。 70 登录华为云解决方案实践,选择"无服务器告警推送",单击“一键部署”,跳转至解决方案创建堆栈界面。 图1 解决方案实施库 在选择模板界面中,单击“下一步”。 图2 选择模板 在配置参数界面中,自定义填写堆栈名称,根据表1填写配置参数信息,单击“下一步”。 图3 配置参数 在资源栈设置页面中,权限委托选择“rf_admin_trust”,单击“下一步”。 图4 资源栈设置 在配置确认页面中,单击“创建执行计划”。 图5 配置确认 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 等待执行计划状态为“创建成功,待部署”后,单击“部署”,并且在弹出的执行计划确认框中单击“执行”。 图7 执行计划 图8 执行计划确认 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考2-表 资源和成本规划(包年包月))请及时登录费用中心,手动完成待支付订单的费用支付。 等待解决方案自动部署。部署成功后,单击“事件”,回显结果如下: 图9 资源创建成功 图10 执行完成 至此,如果您服务器的CPU、内存或磁盘使用量达到您在参数中设置的阈值,您就会在微信中收到告警信息了,您也可以通过推送测试发送测试消息,来测试微信是否可以成功接收到告警信息。 父主题: 实施步骤
  • 创建rf_amdin_trust委托 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“统一身份认证”菜单。 图9 控制台管理界面 图10 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图11 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤 如果委托不存在时执行接下来的步骤创建委托 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,选择“普通账号”,委托的账号,输入“op_svc_IAC”,单击“下一步”。 图12 创建委托 在搜索框中输入”Tenant Administrator”权限,并勾选搜索结果。 图13 选择策略 选择“所有资源”,并单击下一步完成配置。 图14 设置授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图15 委托列表
  • 将企业微信凭证保存在DEW 访问华为云数据加密服务DEW控制台。在“凭据管理”页面单击“创建凭据”。 图6 凭据管理 在创建凭据页面,填写凭据名称及凭据键/值后单击确认。 图7 创建凭据 ① 凭据名称可以自定义,在进行方案部署填写参数时使用,默认使用secretName。 ② 凭据键固定为:corpId、corpSecret、agentId。 corpId:填写获取告警推送凭据中获取到的企业微信ID。 corpSecret:填写获取告警推送凭据中获取到的应用secret。 agentId:填写获取告警推送凭据中获取到的应用agentId。
  • 方案架构 该方案基于无服务器架构,快速构建一个一键自动部署的无服务器告警推送解决方案,实现将华为云的资源告警信息推送到客户指定的通知平台(如企业微信)。 图1 方案架构 该方案部署如下资源: 云监控服务CES,为Region内所有运行中的ECS的CPU、内存、磁盘使用情况生成对应的告警规则,当ECS的状态变化触发告警规则设置的阈值时,您将收到告警通知 消息通知服务SMN,用于接受来自CES的告警数据,并触发函数工作流FunctionGraph进行告警推送。 函数工作流 FunctionGraph,该方案利用FunctionGraph调用微信接口推送告警信息,以SMN主题作为触发器。 数据加密服务DEW,该方案利用DEW存储企业微信的凭证数据,使得FunctionGraph可以安全地访问这些数据,轻松实现对敏感凭据的全生命周期统一管理。 此外,您也可以自己创建其他告警规则并添加到该方案自动生成的消息通知服务SMN中,实现自定义告警推送。
  • 约束与限制 部署该方案之前,需注册华为账号并开通华为云,完成实名认证,且账号不能处于欠费或冻结状态。如果计费模式选择“包年包月”,请确保账户余额充足以便一键部署资源的时候可以自动支付;或者在一键部署的过程进入费用中心,找到“待支付订单”并手动完成支付。 该方案一键部署完成之后新建的弹性云服务器,不会加入到无服务器告警通知中,可以通过手动方式加入,具体方式详见(可选)创建自定义云资源使用情况监控告警。 部署该方案时处于关机或异常状态的弹性云服务器,不会加入到无服务器告警通知中,可以通过手动方式加入,具体方式详见(可选)创建自定义云资源使用情况监控告警。 自定义云资源使用情况监控告警,可以通过手动方式加入到无服务器告警通知中,具体方式详见(可选)创建自定义云资源使用情况监控告警。 自定义云资源事件监控告警,可以通过手动方式加入到无服务器告警通知中,具体方式详见(可选)创建自定义云资源使用情况监控告警。
  • 创建rf_amdin_trust委托 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“统一身份认证”菜单。 图4 控制台管理界面 图5 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图6 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤 如果委托不存在时执行接下来的步骤创建委托 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,选择“普通账号”,委托的账号,输入“op_svc_IAC”,单击“下一步”。 图7 创建委托 在搜索框中输入”Tenant Administrator”权限,并勾选搜索结果。 图8 选择策略 选择“所有资源”,并单击下一步完成配置。 图9 设置授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图10 委托列表
  • 快速部署 本章节主要帮助用户快速部署“轻量离线大数据解决方案”。 表1 参数填写说明 参数名称 类型 是否必填 参数解释 默认值 subnet_id String 必填 子网ID,该模板使用已有子网,请选择后端业务服务器所在虚拟私有云VPC内子网,查询子网ID请参考部署指南。 空 secgroup_id String 必填 安全组ID,该模板使用已有安全组,建议选择后端业务服务器相同安全组,查询安全组ID请参考部署指南。 空 cdm_cluster_name String 必填 云数据迁移集群CDM名称。集群名称在4位到64位之间,必须以字母开头,可以包含字母、数字、中划线或者下划线,不能包含其他的特殊字符。 lightweight_offline_big_data_demo dli_queue_name String 必填 数据湖探索服务dli新建队列名称。名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。长度限制:1~128个字符。 lightweight_offline_big_data_demo dataarts_studio_name String 必填 数据治理中心DataArts Studio名称。名称在4位到64位之间,必须以字母开头,可以包含字母、数字、中划线或者下划线,不能包含其他的特殊字符。 lightweight_offline_big_data_demo dli_cu_count Number 必填 与队列绑定的最小计算单元个数。设置值当前只支持16,64,256。默认16。 16 登录华为云解决方案实践,选择“轻量化离线大数据解决方案”,单击“一键部署”,跳转至解决方案创建堆栈界面。 图1 解决方案实施库 在选择模板界面中,单击“下一步”。 图2 选择模板 在配置参数界面中,自定义填写堆栈名称,根据表1配置参数信息,单击“下一步”。 图3 配置参数 在资源栈设置页面中,权限委托选择“rf_admin_trust”,单击“下一步”。 图4 高级配置 在配置确认页面中,单击“创建执行计划”。 图5 配置确认 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 等待执行计划状态为“创建成功,待部署”后,单击“部署”,并且在弹出的执行计划确认框中单击“执行”。 图7 执行计划创建成功 图8 执行计划确认 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考2-表 资源和成本规划(包年包月))请及时登录费用中心,手动完成待支付订单的费用支付。 等待解决方案自动部署。部署成功后,单击“事件”,回显结果如下: 图9 资源创建成功 图10 执行计划完成 父主题: 实施步骤
  • 基础使用 登录华为云弹性云服务器控制台,查看ECS是否正常创建,并查看Manager节点的公网IP地址。 图1 查看ECS资源以及Pulsar Manager节点的公网,记为“manager-ip” 登录Pulsar Manager Web界面 ECS创建完成后,后台会进行环境部署,等待约20分钟后,将会完成Pulsar集群的构建,可以登录“http://manager-ip:9527”进入控制台Console界面 在登录前,需保证Pulsar Manager节点机器对登录客户端已开放9527端口,如果未开放,请参考如何修改安全组规则 已默认将admin配置为pulsar集群的管理用户,并开启了jwt token校验 登录的账号名和密码均为默认配置 默认账号名:admin 默认密码:创建ECS服务器时输入的密码 图2 Pulsar Manager登录界面 确认Pulsar集群部署完成(可选) 图3 登录任一Zookeeper节点,连接至Zookeeper服务端 图4 查看存活的Zookeeper节点,是否与已存在的Zookeeper节点一致 图5 查看存活的Bookie节点,是否与已存在的Bookie节点一致 图6 查看存活的Broker节点,是否与已存在的Broker节点一致 在Pulsar Manager中添加Pulsar环境 图7 添加Pulsar环境,可选择配置任一broker与bookie节点 查看Pulsar详情 图8 查看Pulsar详情,pulsar-cluster是已经内置的Pulsar集群名称 添加新租户 图9 添加新租户 创建命令空间 图10 创建命名空间 添加topic 图11 添加topic 生成token 图12 生成token 至此Pulsar集群已部署完成,您可以在您的应用中集成Pulsar应用了。
  • 快速部署 本章节主要帮助用户快速部署该解决方案 表1 参数说明 参数名称 类型 是否可选 参数解释 默认值 enterprise_project_id string 是 企业项目ID,参考部署指南到项目管理界面获取https://console.huaweicloud.com/eps,0代表default项目。取值范围:0或者uuid格式字符串。 0 vpc_name string 是 虚拟私有云 VPC名称,不允许和已有VPC名称重名。取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。 vpc-pulsar-cluster security_group_name string 是 安全组名称,安全组规则请参考部署指南进行配置。取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。 sg-pulsar-cluster ecs_name string 是 弹性云服务器 ECS名称前缀,不允许重名。命名规则{ecs_name}-zookeeper-0X、{ecs_name}-bookie-0X、{ecs_name}-broker-0X及{ecs_name}-manager,其中X取值[1,3]。取值范围:1-51个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。 pulsar-cluster ecs_password string 是 ECS初始化密码,创建并完成Pulsar部署后,请参考部署指南登录ECS控制台修改密码。取值范围:长度为8-26位,密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种,密码不能包含用户名或用户名的逆序。管理员账户为root。 无 pulsar_manager_flavor string 是 Pulsar Manager节点ECS规格,推荐使用2vCPUs4GB及以上规格,请参考弹性云服务器 ECS实例规格配置。 c7.large.2 pulsar_zookeeper_flavor string 是 Pulsar Zookeeper节点ECS规格,推荐使用2vCPUs8GB及以上规格,请参考弹性云服务器 ECS实例规格配置。 c7.large.4 pulsar_zookeeper_ecs_count number 是 部署Pulsar Zookeeper节点的ECS数量,取值范围:大于0且小于10。 3 pulsar_bookie_broker_flavor string 是 Pulsar Bookie与Broker节点规格,推荐使用4vCPUs8GB及以上规格,请参考弹性云服务器 ECS实例规格配置。 c7.xlarge.2 pulsar_bookie_ecs_count number 是 部署Pulsar Bookie节点的ECS数量,取值范围:大于0且小于10。 3 pulsar_broker_ecs_count number 是 部署Pulsar Broker节点的ECS数量,取值范围:大于0且小于10。 3 ecs_disk_size number 是 各组件系统盘大小,磁盘类型默认通用型SSD,以GB为单位,取值范围为40-1,024,不支持缩盘。 100 charge_mode string 是 ECS的计费模式,默认自动扣费,可选值为:postPaid(按需计费)、prePaid(包年包月)。 postPaid。 charge_period_unit string 是 ECS的订购周期类型,仅当charge_mode为prePaid(包年/包月)生效。取值范围:month(月),year(年)。 month charge_period string 是 订购周期,仅当charge_mode为prePaid(包年/包月)生效。取值范围:charge_period_unit=month(周期类型为月)时,取值为1-9;charge_period_unit=year(周期类型为年)时,取值为1-3。 1 登录华为云解决方案实践,选择“快速构建高可用Pulsar集群”,单击“一键部署”,跳转至解决方案创建资源栈界面 图1 解决方案实践 在选择模板界面中,单击“下一步”。 图2 选择模板 在配置参数界面中,参考表3-1 参数填写说明完成自定义参数填写,单击“下一步”。 图3 配置参数 (可选,如果使用华为主账号或admin用户组下的IAM子账户可不选委托)在资源设置界面中,在权限委托下拉框中选择“rf_admin_trust”委托,单击“下一步”。 图4 资源栈设置 在配置确认界面中,单击“创建执行计划”。 图5 配置确认 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 单击“部署”,并且在弹出的执行计划确认框中单击“执行”。 图7 执行计划 图8 执行计划确认 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考2-表 资源和成本规划(包年包月))请及时登录费用中心,手动完成待支付订单的费用支付。 待“事件”中出现“Apply required resource success”,表示该解决方案资源已经部署完成,后台将自动完成环境构建,大约需要20分钟。 图9 执行计划确认 图10 最终结果输出 父主题: 实施步骤
  • 创建rf_admin_trust委托(可选) 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“统一身份认证”菜单。 图1 控制台管理界面 图2 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图3 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤。 如果委托不存在时执行接下来的步骤创建委托。 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务”,选择“RFS”,单击“下一步”。 图4 创建委托 在搜索框中输入“Tenant Administrator”权限,并勾选搜索结果,单击“下一步”。 图5 选择策略 选择“所有资源”,并单击下一步完成配置。 图6 设置授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图7 委托列表
  • 方案优势 高可用、高可靠 集群式部署,存算分离,数据多副本存储,数据强一致性保障,有效提升业务系统的可靠性,并保障业务系统的性能 开源和定制化 该解决方案与Pulsar均开源,用户可以免费用于商业用途,并且还可以在源码基础上进行定制化开发 一键部署 一键轻松部署,即可完成基于弹性云服务器 ECS的Pulsar集群构建,并完成可视化管理组件Pulsar Manager的安装,实现云上快速使用分布式消息队列服务
  • 约束与限制 部署该解决方案之前,您需注册华为账号并开通华为云,完成实名认证,且账号不能处于欠费或冻结状态,如使用包周期部署确保余额充足。如果计费模式选择“包年包月”,请确保账户余额充足以便一键部署资源的时候可以自动支付;或者在一键部署的过程进入费用中心,找到“待支付订单”并手动完成支付。 请确保在部署解决方案前,使用的华为云账号有IAM的足够权限,具体请参考3.1-创建rf_admin_trust委托
  • 快速部署 本章节主要帮助用户快速部署该解决方案。 表1 参数填写说明 参数名称 类型 是否必填 参数解释 默认值 vpc_name String 必填 虚拟私有云名称,该模板新建VPC,不支持重名。取值范围:1-52个字符,支持字母、数字、中文、下划线(_)、中划线(-)、英文句号(.)。 highly-available-rabbitmq-cluster_demo secgroup_name String 必填 安全组名称,该模板新建安全组,安全组规则请参考部署指南进行配置。取值范围:1-64个字符,支持字母、数字、中文、下划线(_)、中划线(-)、英文句号(.)。 highly-available-rabbitmq-cluster_demo ecs_name String 必填 弹性云服务器名称,不允许重名。命名方式为{ecs_name}-node01、{ecs_name}-node02、{ecs_name}-node03。取值范围:1-57个字符,支持小写字母、数字、中划线(-)。 highly-available-rabbitmq-cluster-demo ecs_flavor String 必填 弹性云服务器规格名称,具体请参考官网弹性云服务器规格清单。 s6.medium.2 ecs_password String 必填 弹性云服务器初始密码,创建完成后,请参考在控制台重置弹性云服务器密码登录ECS控制台修改密码。取值范围:长度为8-26位,密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种,密码不能包含用户名或用户名的逆序。管理员账户为root。 空 system_disk_size String 必填 系统盘大小,以GB为单位,取值范围为1~1024,不支持缩盘。 40 data_disk_size String 必填 数据盘大小,以GB为单位,取值范围从 10 到 32768。 100 charging_mode String 必填 计费模式,默认自动扣费,取值为prePaid(包年包月)或postPaid(按需计费),默认postPaid。 postPaid charging_unit String 必填 有效值为“year”或“month”。当charging_mode(计费模式)为prePaid时,此选项为必填项。 month charging_period number 必填 包年包月时长,当charging_unit取值为“year”,取值范围为1~3;当charging_unit取值为“month”,取值范围为1~9。当charging_mode(计费模式)为prePaid时,此选项为必填项。 1 eip_bandwidth_size number 必填 弹性公网IP带宽大小,该模板采用按带宽计费。取值范围为1-2000Mbit/s。 5 RabbitMQ_username String 必填 RabbitMQ的用户名。取值范围:长度为5-16位,用户名只包含字母或者包含字母和数字的组合,默认值为admin。 admin RabbitMQ_password String 必填 RabbitMQ的用户密码,创建完成后,请参考部署指南修改密码。取值范围:长度为6-12位,密码包含大写字母、小写字母、数字和特殊字符(!@$#%^-=+,./?)。 空 登录华为云解决方案实践,选择“快速部署高可用RabbitMQ集群”解决方案。数据中心下拉菜单可以选择需要部署的区域,单击“一键部署”,跳转至解决方案创建堆栈界面。 图1 解决方案实施库 在选择模板界面中,单击“下一步”。 图2 选择模板 在配置参数界面中,自定义填写堆栈名称,根据表1配置参数信息,单击“下一步”。 图3 配置参数 在资源栈设置页面中,权限委托选择“rf_admin_trust”,单击“下一步”。 图4 资源栈设置 在配置确认页面中,单击“创建执行计划”。 图5 配置确认 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 等待执行计划状态为“创建成功,待部署”后,单击“部署”,并且在弹出的执行计划确认框中单击“执行”。 图7 执行计划 图8 执行计划确认 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考2-表 资源和成本规划(包年包月))请及时登录费用中心,手动完成待支付订单的费用支付。 等待解决方案自动部署。部署成功后,单击“事件”,回显结果如下: 图9 资源创建成功 图10 执行计划完成 单击“输出”,查看虚拟IP及相关信息。 图11 输出信息 父主题: 实施步骤
共100000条