华为云用户手册

  • 图像标签 模板作用:能准确识别自然图片中数百种场景、上千种通用物体及其属性。让智能相册管理等功能更加直观。该模板实际调用的是Image服务的图像标签接口。 表16 图像标签属性配置说明 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 threshold 置信度的阈值(0~100),输入非该范围内值算法即取默认值。默认值:0。 limit 最多返回的tag数,默认值:30。 language 中文:返回标签的语言类型为中文。 英文:返回标签的语言类型为英文。
  • 视频解析 模板作用:用于新建视频解析任务,以解析视频元数据。该模板实际调用的是MPC服务的新建视频解析任务接口。 表17 视频解析属性配置说明 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 sync 视频解析处理模式。 排队处理:查询后仅返回任务ID,还需进一步调用查询视频解析任务接口才能获取到视频元数据。 同步处理:查询后将直接返回视频元数据。 bucket 视频解析输出桶,用于保存解析后的视频。 输出桶需要和DWR工作流在同一区域,工作流所属区域为创建工作流的桶所属区域。例如工作流A是在桶A中创建的,则桶A的区域即为工作流A的区域。 outpath 视频解析输出桶中存放视频的具体目录。 例如:输入abc或abc/,均表示视频存放在abc文件夹下,如果文件夹不存在,会自动新建。输出路径为空表示存放在桶的根目录。
  • 文字水印 模板作用:对添加水印的图片进行预处理操作,包括设置缩略、旋转图片和剪切图片,但不支持剪切为内切圆。 表9 文字水印 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 twm_g 可选参数,表示水印处于图片的位置。取值为tl、top、tr、left、center、right、bl、bottom和br,共9个取值。默认值为tl。 twm_x 可选参数,表示距离图片边缘的水平距离,默认左上角为原点。取值范围为[0,4096]。默认值为10。单位为像素(px)。 twm_y 可选参数,表示距离图片边缘的垂直距离,默认左上角为原点。取值范围为[0,4096]。默认值为10。单位为像素(px)。 twm_voffset 可选参数,表示水印距离图片水平中线的垂直偏移方向。可以使水印根据中线往上或往下偏移。取值范围为[-1000,1000]。默认值为0。单位为像素(px)。 当g取值为left、center、right才有意义,即位置为左中、正中、右中才有意义。 twm_align 可选参数,水印文字和图片的对齐方式。取值为0、1或2。默认值为0。 0:表示上对齐。 1:表示中对齐。 2:表示下对齐。 twm_order 可选参数,水印文字和图片的前后顺序。取值为0或1。默认值为0。 0:表示图片在前面。 1:表示文字在前面。 twm_t 可选参数,文字或图片水印的透明度。取值范围为[0,100]。默认值为100,100%表示不透明。 twm_interval 可选参数,表示文字和图片的间距。取值范围为[0,1000]。 twm_text 添加文字水印时的必选参数。 须知: 必须是URL安全base64编码。encodeText = url_safe_base64_encode(fontText),最大长度为64个字符(支持最多16个中文字符)。 twm_size 可选参数,表示文字水印的文字大小。取值范围为(0,1000]。默认值为40。 twm_type 可选参数,表示文字水印的文字类型。默认值为wqy-zenhei(文泉驿正黑,编码后的值:d3F5LXplbmhlaQ)。 须知: 必须是URL安全base64编码。encodeText = url_safe_base64_encode(fontType)。 twm_color 可选参数,表示文字水印的文字颜色。 格式为六位十六进制颜色码,取值为000000到FFFFFF,默认值为黑色。 twm_shadow 可选参数,表示文字水印的阴影透明度。取值范围为(0,100]。 twm_fill 可选参数,表示水印的铺满效果。取值为0或1。 0:无效果。 1:铺满。 twm_rotate 可选参数,表示文字水印的按顺时针旋转的角度。取值范围为(0,360)。 twm_source_path 输出路径是否保持原路径。true,输出路径为:output/原路径;false,输出路径为:output。 twm_outbucket 图片处理输出桶。
  • 缩略图 模板作用:通过resize操作能够使图片按照一定规则进行缩放,支持按照指定宽高和比例进行缩放。 表10 缩略图设置 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 resize_m 设置缩略的类型。取值为lfit、mfit、fill、pad和fixed,默认值为lfit。 lfit:指定一个w和h的矩形,将图片进行等比缩放,取在矩形内最大的图片。 mfit:指定一个w和h的矩形,将图片进行等比缩放,取在矩形延伸区域的最小图片。 fill:指定一个w和h的矩形,将图片进行等比缩放,取在延伸区域的最小图片,并进行居中剪切。即将mfit缩略类型的图片进行居中剪裁。 pad:指定一个w和h的矩形,将图片进行等比缩放,取在矩形内最大的图片,并在矩形空白处进行颜色填充。即lfit缩略类型的图片在矩形空白处进行颜色填充。 fixed:强制按照固定的宽高进行缩略。 resize_p 等比例缩放的倍数百分比。使用参数p时,无法使用其它参数。取值范围为[1,1000]。当取值为: <100:缩小。 =100:保持原图大小。 >100:放大。 resize_h 目标缩略图的高度。取值为[1,4096]。 resize_w 目标缩略图的宽度。取值为[1,4096]。 resize_l 指定目标缩略图的最长边。取值为[1, 4096]。 长边为指定的值,短边按照比例缩放。 resize_s 指定目标缩略图的最短边。取值为[1, 4096]。 短边为指定的值,长边按照比例缩放。 resize_color 填充的颜色。选择pad(缩略后填充)模式时可以使用。 格式为十六进制颜色码,取值为000000到FFFFFF,默认值为白色。 resize_limit 是否在目标缩略图比原图大时进行限制放大。取值为0或1,默认值为1。 0:不进行限制。 1:进行限制。 iwm_path 输出路径是否保持原路径。true,输出路径为:output/原路径;false,输出路径为:output iwm_bucket 图片处理输出桶
  • 普通裁剪 模板作用:可以设置图片上的任意一点为起始点,根据指定宽高进行图片剪切,剪切后的图片为矩形。 表6 普通剪切 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 crop_g 表示剪切起始原点位置。取值为tl、top、tr、left、center、right、bl、bottom和br,共9个取值。 crop_h 剪切的高度,取值范围为[0,图片高度]。 crop_w 剪切的宽度,取值范围为[0,图片宽度]。 crop_x 表示剪切起始点的横坐标,默认左上角为原点。取值范围为[0,图片边界]。 crop_y 表示剪切起始点的纵坐标,默认左上角为原点。取值范围为[0,图片边界]。 crop_source_path 输出路径是否保持原路径。true,输出路径为:output/原路径;false,输出路径为:output crop_outbucket 图片处理输出桶
  • 索引剪切 模板作用:以图片左上角顶点为起始点,设宽为x轴,高为y轴。根据指定长度进行等长剪切,根据指定索引取出剪切后区域。 表7 索引剪切 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 crop_i 若剪切后一共有n块,则i的取值范围为[0,n-1]。0表示第一块,超过最大的块数则返回原图。 crop_x 水平剪切的每块图片长度。取值范围为[1,图片宽度]。x和y参数只能任选其一。 crop_y 垂直剪切的每块图片长度。取值范围为[1,图片高度]。 x和y参数只能任选其一。 crop_source_path 输出路径是否保持原路径。true,输出路径为:output/原路径;false,输出路径为:output crop_outbucket 图片处理输出桶
  • 图片水印 模板作用:对添加水印的图片进行预处理操作,包括设置缩略、旋转图片和剪切图片,但不支持剪切为内切圆。 表8 图片水印 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 iwm_g 可选参数,表示水印处于图片的位置。取值为tl、top、tr、left、center、right、bl、bottom和br,共9个取值。默认值为tl。 iwm_x 可选参数,表示距离图片边缘的水平距离,默认左上角为原点。取值范围为[0,4096]。默认值为10。单位为像素(px)。 iwm_y 可选参数,表示距离图片边缘的垂直距离,默认左上角为原点。取值范围为[0,4096]。默认值为10。单位为像素(px)。 iwm_voffset 可选参数,表示水印距离图片水平中线的垂直偏移方向。可以使水印根据中线往上或往下偏移。取值范围为[-1000,1000]。默认值为0。单位为像素(px)。 当g取值为left、center、right才有意义,即位置为左中、正中、右中才有意义。 iwm_align 可选参数,水印文字和图片的对齐方式。取值为0、1或2。默认值为0。 0:表示上对齐。 1:表示中对齐。 2:表示下对齐。 iwm_order 可选参数,水印文字和图片的前后顺序。取值为0或1。默认值为0。 0:表示图片在前面。 1:表示文字在前面。 iwm_t 可选参数,文字或图片水印的透明度。取值范围为[0,100]。默认值为100,100%表示不透明。 iwm_interval 可选参数,表示文字和图片的间距。取值范围为[0,1000]。 iwm_image 水印图路径,添加图片水印时的必选参数。 图片水印地址为:bucketName/objectName(必须编码)或bucketName/objectName?x-image-process=image/command(必须编码) 须知: 内容必须是URL安全base64编码。 encodedObject = url_safe_base64_encode(object)。如object为“panda.png”, 编码过后的内容为“cGFuZGEucG5n”。 iwm_P 水印图片尺寸,大写的P,表示将水印图片按原图(指被添加水印的图片)比例百分比P进行缩放。取值范围为[1,100]。 须知: 此处resize操作只支持大写P参数,不支持小写p参数。如需调整水印图片的大小,请参照设置缩略(除小p参数之外)。 iwm_source_path 输出路径是否保持原路径。true,输出路径为:output/原路径;false,输出路径为:output iwm_outbucket 图片处理输出桶
  • 人脸检测 模板作用:对输入图片进行人脸检测和分析,输出人脸在图像中的位置、人脸关键点位置和人脸关键属性。该模板实际调用的是FRS服务的人脸检测接口。 表3 人脸检测属性配置说明 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 attributes 选择希望获取的属性列表。
  • 人脸搜索 模板作用:在已有的人脸库中,查询与目标人脸相似的一张或者多张人脸,并返回相应的置信度。该模板实际调用的是FRS服务的人脸搜索接口。 表4 人脸搜索属性配置说明 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 face_set_name 人脸库名称。 return_fields 指定返回的自定义字段。 数组类型参数必须以前括号([)开头,以后括号(])结尾,值之间用英文逗号(,)分隔。 top_n 返回查询到的最相似的N张人脸,N默认为10。 threshold 人脸相似度阈值,低于这个阈值则不返回,取值范围0~1,一般情况下建议取值0.93,默认为0。
  • 圆角剪切 模板作用:指定圆角大小将图片剪切为圆角矩形。支持通过圆角半径大小和水平垂直大小两种方式设置。 表5 圆角剪切参数 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 crop_r 将图片切出圆角,指定圆角的半径,水平和垂直的值相同,可以使用像素数(如200)或百分比(如25p)。 像素数取值范围为[1,4096],当像素数大于原图最小边的一半时,取最小边的二分之一。 百分比取值范围为[1p,50p]。 不能与rx和ry参数同时使用。 crop_rx 圆角水平大小的参数,可以使用像素数(如200)或百分比(如25p)。 像素数取值范围为[1,4096],当像素数大于原图最小边的一半时,取最小边的二分之一。 百分比取值范围为[1p,50p]。 需要与ry同时使用。 crop_ry 圆角垂直大小的参数,可以使用像素数(如200)或百分比(如25p)。 像素数取值范围为[1,4096],当像素数大于原图最小边的一半时,取最小边的二分之一。 百分比取值范围为[1p,50p]。 需要与rx同时使用。 crop_source_path 输出路径是否保持原路径。true,输出路径为:output/原路径;false,输出路径为:output。 crop_outbucket 图片处理输出桶
  • 人脸比对 模板作用:人脸比对是将两个人脸进行比对,来判断是否为同一个人,返回比对置信度。如果传入的图片中包含多个人脸,选取最大的人脸进行比对。该模板实际调用的是FRS服务的人脸比对接口。 表2 人脸比对属性配置说明 属性类别 参数名称 参数说明 基本属性 名称 任务的名称,修改后将体现在工作流编排区域。 必须以字母或数字开头 只能由字母、数字、下划线和中划线组成 长度范围为1~20个字符 不能和同一工作流中的其他任务重名 超时(秒) 任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 动作提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、参数不合法、函数不存在、请求太频繁、函数不可用、函数异常 动态参数 bucket 待对比的人脸图片存放的OBS桶名。 path 待对比的人脸图片在OBS桶中存放的目录。
  • 操作步骤 在OBS服务中创建桶 在OBS服务控制台创建两个桶,一个用于上传待处理的数据对象,一个用于存储处理后的数据对象。桶的详细介绍参见创建桶。 数据输入桶:“piccomp” 数据处理后输出桶:“piccomp-output” 这里创建两个桶是为了防止无限循环。因为处理后的数据如果放在源桶,又跟事件触发器执行的条件匹配,会继续触发工作流执行。详细介绍参见了解更多无限循环原因。 在DWR服务中创建工作流 登录DWR控制台,在“工作流”页面单击“创建工作流”,进入“工作流编排”页面。 将“质量变换”算子拖拽至编排区域进行串联编排,并填写相关属性配置信息,如图1所示。 quality_q代表图片按照原图的q%进行压缩,取值范围为[1,100],可根据实际情况配置。 quality_bucket为图片处理后的输出桶,这里设置为“piccomp-output”。详细介绍参见质量变换参数说明。 保存并填写工作流名称“piccomp”。 图1 编排工作流 在DWR服务中创建事件触发器,如图2所示。 在工作流列表中,单击工作流“piccomp”操作列的“创建事件触发器”进行触发器的创建,如图2所示。 事件源存储桶选择“piccomp”。 图2 创建事件触发器 上传文件触发工作流执行 登录OBS服务控制台,进入桶“piccomp”对象列表页面上传图片,如图3所示。 上传图片至piccomp桶后OBS会自动生成事件触发工作流运行,将图片压缩。 触发器执行存在一定的延时,大概5分钟生效。 图3 上传文件 查看图片压缩效果 压缩后的图片存放在piccomp-output桶的output文件夹中。如图4所示,图片大小均有变小,实现了对图片的压缩。 图4 压缩图片 (可选)查看运行记录 在DWR控制台左侧导航栏选择“工作流”,进入“工作流”页面 在工作流列表中,单击工作流“piccomp”操作列的“运行记录”可以查看函数流的执行记录。详细介绍参见函数流执行历史管理。 图5 查看运行记录
  • 异步调用 执行异步调用示例命令,参数说明请参见表3。 hcloud FunctionGraph AsyncInvokeFunction --cli-region="cn-east-3" --function_urn="urn:fss:cn-east-3:******:function:default:hcloud-invoke:latest" --project_id="******" --key="value" 表3 参数说明 参数 是否必须 描述 --cli-region 是 调用函数所在region。 --function_urn 是 函数的URN(Uniform Resource Name),唯一标识函数。 --project_id 是 租户Project ID。 请求体 是 通过--key="value"方式指定请求体,其对应的json结构:{ "key":"value"}。 输出结果如图3所示,输出的响应参数请参见表2。 图3 输出结果 表4 响应参数说明 参数 参数类型 描述 request_id String 请求ID
  • 同步调用 执行同步调用示例命令,参数说明请参见表1。 hcloud FunctionGraph InvokeFunction --cli-region="ap-southeast-1" --X-Cff-Log-Type="tail" --X-CFF-Request-Version="v1" --function_urn="urn:fss:cn-east-3:******:function:default:hcloud-invoke:latest" --project_id="******" --key="value" 表1 参数说明 参数 是否必须 描述 --cli-region 是 调用函数所在region。 --function_urn 是 函数的URN(Uniform Resource Name),唯一标识函数。 --project_id 是 租户Project ID。 --X-Cff-Log-Type 否 tail(header里面返回函数执行后的4K日志),或者为空(不返回日志)。 X-CFF-Request-Version 否 返回体格式:取值v0,v1。 v0:默认返回文本格式。 v1:默认返回json格式,sdk需要使用此值。 Body 是 通过--key="value"方式指定请求体,其对应的json结构:{ "key":"value"}。 输出结果如图2所示,输出的响应参数请参见表2。 图2 输出结果 表2 响应参数 参数 参数类型 描述 request_id String 请求ID result String 函数执行结果 log String 函数执行返回日志 status Integer 函数执行返回状态 error_code String 错误码
  • 获取CLI工具 CLI工具支持64位的Linux x86系统及64位Windows系统,以及Mac系统,具体下载地址如表1所示。 表1 下载地址 系统 下载 软件包校验文件 参考文档 Linux CLI命令行工具下载 CLI命令行工具下载.sha256 KooCLI介绍 Windows CLI命令行工具下载 CLI命令行工具下载.sha256 Mac CLI命令行工具下载 CLI命令行工具下载.sha256
  • 请求示例 创建一个节点池,计费模式为按需计费,节点数量为0,节点池规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为40GB和100GB,磁盘类型均为高IO。 { "kind" : "NodePool", "apiVersion" : "v3", "metadata" : { "name" : "lc-it-nodepool-79796" }, "spec" : { "initialNodeCount" : 0, "type" : "vm", "autoscaling" : { "enable" : false, "minNodeCount" : 0, "maxNodeCount" : 1, "scaleDownCooldownTime" : 0, "priority" : 0 }, "nodeManagement" : { "serverGroupReference" : "" }, "nodeTemplate" : { "flavor" : "s6.large.2", "az" : "******", "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 40 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100, "extendParam" : { "useType" : "docker" } } ], "billingMode" : 0, "extendParam" : { "alpha.cce/preInstall" : "", "alpha.cce/postInstall" : "", "alpha.cce/NodeImageID" : "", "maxPods" : 110 }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a" } } }, "podSecurityGroups" : [ { "id" : "" } ] }}
  • 响应示例 状态码: 201 表示在指定集群下创建节点池的作业下发成功。 { "kind" : "NodePool", "apiVersion" : "v3", "metadata" : { "name" : "lc-it-nodepool-79796", "uid" : "99addaa2-69eb-11ea-a592-0255ac1001bb" }, "spec" : { "type" : "vm", "nodeTemplate" : { "flavor" : "s6.large.2", "az" : "******", "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 40 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100, "extendParam" : { "useType" : "docker" } } ], "publicIP" : { "eip" : { "bandwidth" : { } } }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a" } }, "billingMode" : 0, "extendParam" : { "alpha.cce/NodeImageID" : "", "alpha.cce/postInstall" : "", "alpha.cce/preInstall" : "", "maxPods" : 110 }, "k8sTags" : { "cce.cloud.com/cce-nodepool" : "lc-it-nodepool-79796" } }, "autoscaling" : { "maxNodeCount" : 1 }, "nodeManagement" : { } }, "status" : { "phase" : "" }}
  • IAM支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 云容器引擎(CCE)支持的自定义策略授权项如下所示: 表1 Cluster 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目 (Enterprise Project) 获取指定项目下的集群 GET /api/v3/projects/{project_id}/clusters cce:cluster:list √ √ 获取指定的集群 GET /api/v3/projects/{project_id}/clusters/{cluster_id} cce:cluster:get √ √ 创建集群 POST /api/v3/projects/{project_id}/clusters cce:cluster:create √ √ 更新指定的集群 PUT /api/v3/projects/{project_id}/clusters/{cluster_id} cce:cluster:update √ √ 删除集群 DELETE /api/v3/projects/{project_id}/clusters/{cluster_id} cce:cluster:delete √ √ 升级集群 POST /api/v2/projects/:projectid/clusters/:clusterid/upgrade cce:cluster:upgrade √ √ 唤醒集群 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/awake cce:cluster:start √ √ 休眠集群 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/hibernate cce:cluster:stop √ √ 变更集群规格 POST /api/v2/projects/{project_id}/clusters/:clusterid/resize cce:cluster:resize √ √ 获取集群证书 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/clustercert cce:cluster:get √ √ 表2 Node 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 获取集群下所有节点 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes cce:node:list √ √ 获取指定的节点 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} cce:node:get √ √ 创建节点 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes cce:node:create √ √ 更新指定的节点 PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} cce:node:update √ √ 删除节点 DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} cce:node:delete √ √ 表3 Job 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 获取任务信息 GET /api/v3/projects/{project_id}/jobs/{job_id} cce:job:get √ √ 列出所有任务 GET /api/v2/projects/{project_id}/jobs cce:job:list √ √ 删除所有任务或删除单个任务 DELETE /api/v2/projects/{project_id}/jobs DELETE /api/v2/projects/{project_id}/jobs/{job_id} cce:job:delete √ √ 表4 Nodepool 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 获取集群下所有节点池 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools cce:nodepool:list √ √ 获取节点池 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} cce:nodepool:get √ √ 创建节点池 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools cce:nodepool:create √ √ 更新节点池信息 PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} cce:nodepool:update √ √ 删除节点池 DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} cce:nodepool:delete √ √ 表5 Chart 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 更新模板 PUT /v2/charts/{id} cce:chart:update √ × 上传模板 POST /v2/charts cce:chart:upload √ × 列出所有模板 GET /v2/charts cce:chart:list √ × 获取模板信息 GET /v2/charts/{id} cce:chart:get √ × 删除模板 DELETE /v2/charts/{id} cce:chart:delete √ × 表6 Release 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 更新升级模板实例 PUT /v2/releases/{name} cce:release:update √ √ 列出所有模板实例 GET /v2/releases cce:release:list √ √ 创建模板实例 POST /v2/releases cce:release:create √ √ 获取模板实例信息 GET /v2/releases/{name} cce:release:get √ √ 删除模板实例 DELETE /v2/releases/{name} cce:release:delete √ √ 表7 Storage 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 创建PersistentVolumeClaim POST /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims cce:storage:create √ √ 删除PersistentVolumeClaim DELETE /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims/{name} cce:storage:delete √ √ 列出所有磁盘 GET /storage/api/v1/namespaces/{namespace}/listvolumes cce:storage:list √ √ 表8 Addon 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 创建插件实例 POST /api/v3/addons cce:addonInstance:create √ √ 获取插件实例 GET /api/v3/addons/{id}?cluster_id={cluster_id} cce:addonInstance:get √ √ 列出所有插件实例 GET /api/v3/addons?cluster_id={cluster_id} cce:addonInstance:list √ √ 删除插件实例 DELETE /api/v3/addons/{id}?cluster_id={cluster_id} cce:addonInstance:delete √ √ 更新升级插件实例 PUT /api/v3/addons/{id} cce:addonInstance:update √ √ 表9 Quota 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 查询配额详情 GET /api/v3/projects/{project_id}/quotas cce:quota:get √ √
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从终端节点(Endpoint)获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" }}
  • 响应示例 状态码: 200 表示获取集群列表成功。 { "kind" : "Cluster", "apiVersion" : "v3", "items" : [ { "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "alias" : "mycluster", "name" : "mycluster", "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "creationTimestamp" : "2018-08-02 03:48:58.968214406 +0000 UTC", "updateTimestamp" : "2018-08-02 04:05:29.386391813 +0000 UTC" }, "spec" : { "type" : "VirtualMachine", "flavor" : "cce.s1.small", "version" : "v1.7.3-r13", "description" : "awesome cluster", "customSan" : [ "192.168.1.0", "example.com" ], "hostNetwork" : { "vpc" : "f0c12911-4fdb-4284-9230-7ffb0860826a", "subnet" : "ac274229-fd2e-4695-9f01-a0c1372b8006" }, "containerNetwork" : { "mode" : "overlay_l2", "cidr" : "172.16.0.0/16" }, "authentication" : { "mode" : "x509", "authenticatingProxy" : { } }, "billingMode" : 0 }, "status" : { "phase" : "Available", "endpoints" : [ { "url" : "https://192.168.0.11:5443", "type" : "Internal" } ] } } ]}
  • URI GET /api/v3/projects/{project_id}/clusters 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 表2 Query参数 参数 是否必选 参数类型 描述 detail 否 String 查询集群详细信息。 若设置为true,获取集群下节点总数(totalNodesNumber)、正常节点数(activeNodesNumber)、CPU总量(totalNodesCPU)、内存总量(totalNodesMemory)、已安装插件列表(installedAddonInstances),已安装插件列表中包含名称(addonTemplateName)、版本号(version)、插件的状态信息(status),放入到annotation中。 status 否 String 集群状态,取值如下 Available:可用,表示集群处于正常状态。 Unavailable:不可用,表示集群异常,需手动删除。 ScalingUp:扩容中,表示集群正处于扩容过程中。 ScalingDown:缩容中,表示集群正处于缩容过程中。 Creating:创建中,表示集群正处于创建过程中。 Deleting:删除中,表示集群正处于删除过程中。 Upgrading:升级中,表示集群正处于升级过程中。 Resizing:规格变更中,表示集群正处于变更规格中。 RollingBack:回滚中,表示集群正处于回滚过程中。 RollbackFailed:回滚异常,表示集群回滚异常。 Hibernating:休眠中,表示集群正处于休眠过程中。 Hibernation:已休眠,表示集群正处于休眠状态。 Awaking:唤醒中,表示集群正处于从休眠状态唤醒的过程中。 Empty:集群无任何资源(已废弃) type 否 String 集群类型: VirtualMachine:CCE集群 ARM64:鲲鹏集群 version 否 String 集群版本过滤
  • 基本概念 帐号 用户注册时的帐号,帐号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于帐号是付费主体,为了确保帐号安全,建议您不要直接使用帐号进行日常管理工作,而是创建用户并使用用户进行日常管理工作。 用户 由帐号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看帐号ID和IAM用户ID。通常在调用API的鉴权过程中,您需要用到帐号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您帐号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中的资源,使得资源的权限控制更加精确。 图1 项目隔离模型 同样在我的凭证下,您可以查看项目ID。 企业项目 企业项目是项目的升级版,针对企业不同项目间的资源进行分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。 父主题: 使用前必读
  • 响应示例 状态码: 200 表示更新指定集群成功。 { "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "alias" : "mycluster", "name" : "mycluster", "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "creationTimestamp" : "2018-08-02 03:48:58.968214406 +0000 UTC", "updateTimestamp" : "2018-08-02 06:39:36.844676088 +0000 UTC" }, "spec" : { "type" : "VirtualMachine", "flavor" : "cce.s1.small", "version" : "v1.7.3-r13", "description" : "new description", "customSan" : [ "192.168.1.0", "example.com" ], "hostNetwork" : { "vpc" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "subnet" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "SecurityGroup" : "6ee29825-8f49-4796-b33a-fc76f84a59ae" }, "containerNetwork" : { "mode" : "overlay_l2", "cidr" : "172.17.0.0/16" }, "authentication" : { "mode" : "x509", "authenticatingProxy" : { } }, "billingMode" : 0 }, "status" : { "phase" : "Available", "endpoints" : [ { "url" : "https://192.168.0.11:5443", "type" : "Internal" } ] }}
  • 请求示例 仅更新集群描述 { "spec" : { "description" : "new description" }} 仅更新集群自定义证书SAN { "spec" : { "customSan" : [ "192.168.1.0", "example.com" ] }} 同时更新集群描述和自定义证书SAN { "spec" : { "description" : "new description", "customSan" : [ "192.168.1.0", "example.com" ] }} 添加集群容器网段(v1.21版本以上VPC网络模型的集群适用) { "spec" : { "containerNetwork" : { "cidrs" : [ { "cidr" : "10.10.0.0/16" }, { "cidr" : "10.11.0.0/16" } ] } }} 修改集群默认节点安全组 /api/v3/projects/{project_id}/clusters/{cluster_id}{ "spec" : { "hostNetwork" : { "SecurityGroup" : "6ee29825-8f49-4796-b33a-fc76f84a59ae" } }}
  • URI GET /api/v3/projects/{project_id}/clusters/{cluster_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 cluster_id 是 String 集群ID,获取方式请参见如何获取接口URI中参数。 表2 Query参数 参数 是否必选 参数类型 描述 detail 否 String 查询集群详细信息。 若设置为true,获取集群下节点总数(totalNodesNumber)、正常节点数(activeNodesNumber)、CPU总量(totalNodesCPU)、内存总量(totalNodesMemory)和已安装插件列表(installedAddonInstances),已安装插件列表中包含名称(addonTemplateName)、版本号(version)、插件的状态信息(status),放入到annotation中。
  • 响应示例 状态码: 200 表示获取指定集群成功。 { "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "alias" : "mycluster", "name" : "mycluster", "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "creationTimestamp" : "2018-08-02 03:48:58.968214406 +0000 UTC", "updateTimestamp" : "2018-08-02 04:05:29.386391813 +0000 UTC" }, "spec" : { "type" : "VirtualMachine", "flavor" : "cce.s1.small", "version" : "v1.7.3-r13", "description" : "this is a demo cluster", "customSan" : [ "192.168.1.0", "example.com" ], "hostNetwork" : { "vpc" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "subnet" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb" }, "containerNetwork" : { "mode" : "overlay_l2", "cidr" : "172.16.0.0/16" }, "authentication" : { "mode" : "x509", "authenticatingProxy" : { } }, "billingMode" : 0 }, "status" : { "phase" : "Available", "endpoints" : [ { "url" : "https://192.168.0.11:5443", "type" : "Internal" } ] }}
  • 请求消息头 附加请求头字段,如指定的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认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 12 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,您可以从地区和终端节点获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取用户Token。 1 2 3 4 5 6 7 8 91011121314151617181920212223242526 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } }} 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
共100000条