华为云用户手册

  • 操作流程 APIG专享版支持单向认证和双向认证两种认证方式,两种认证方式开启认证的流程相同,下面描述单向认证流程,双向认证具体操作请参考双向认证。 创建SSL证书 SSL证书是进行数据传输加密和身份证明的证书。 绑定域名 将API所属的分组与已备案且解析的独立域名绑定。 绑定证书 将独立域名与已创建的SSL证书绑定。 调用API 验证API是否调用成功。 父主题: 使用API网关专享版与客户端进行认证
  • 修改基本信息 专享版实例创建后,您可能需要调整实例的一些配置,比如调大出公网的带宽,以便支撑更高的API请求流量。 登录管理控制台。 在管理控制台左上角单击,选择区域。 单击管理控制台左上角,然后单击“API网关 APIG”。 在左侧导航单击“专享版”,进入专享版实例列表页,单击“查看控制台”,进入API开发与调用管理页面。 在实例基本信息页签,找到您需要调整的基本信息项并进行修改。 表1 专享版实例基本信息修改 可修改项 说明 实例名称 填写实例的名称,根据规划自定义。 描述 填写实例的描述信息。 可维护时间窗 指允许云服务技术支持对实例进行维护的时间段。如有维护需要,技术支持会提前与您沟通确认。 建议选择业务量较少的时间段。 安全组 安全组用于设置端口访问规则,定义哪些端口允许被外部访问,以及允许访问外部哪些地址与端口。 例如,后端服务部署在外部网络,则需要设置相应的安全组规则,允许访问后端服务地址与API调用端口。 说明: 更换安全组时,新的安全组须满足专享版实例的前端API调用以及访问后端服务所需出入规则。 如果开启公网入口,安全组入方向需要放开80(HTTP)和443(HTTPS)端口的访问权限。 弹性IP地址 指允许外部服务通过弹性IP地址,调用专享版实例创建的API。开启“公网入口”,需要绑定一个“弹性IP地址”,弹性IP地址另行收费。 您需要使用独立域名/子域名访问,使用子域名访问时存在单日访问次数限制。 可在创建API分组后,为分组绑定独立域名,独立域名需要解析到专享版实例的弹性IP。 公网带宽 启用“弹性IP地址”后,在“入口地址”区域展示“公网带宽”。 公网带宽费用按小时计算,以弹性公网IP服务的价格为准。 出口地址 指允许专享版实例API的后端服务部署在外部网络,API网关为实例开启公网出口。公网出口可随时关闭或开启。 出公网带宽 出公网带宽费用按小时计算,以弹性公网IP服务的价格为准。 路由 如果本地数据中心的子网不在以下三个大子网段内,暂时不支持配置本地路由:10.0.0.0/8-24、172.16.0.0/12-24、192.168.0.0/16-24。
  • 配置参数修改 登录管理控制台。 在管理控制台左上角单击,选择区域。 单击管理控制台左上角,然后单击“API网关 APIG”。 在左侧导航单击“专享版”,进入专享版实例列表页,单击“查看控制台”,进入API开发与调用管理页面。 单击“配置参数”页签,找到您需要调整的配置项并进行修改。 修改实例配置参数会引起APIG业务中断,建议在无业务运行或业务低峰时修改配置参数。 表2 实例配置参数说明 参数名 参数说明 ratelimit_api_limits API全局默认流控值。API未绑定流控策略时,执行此默认流控;API绑定流控策略时,则执行绑定的流控策略。流控策略的API流量限制值不能超过API全局默认流控值。 request_body_size API请求中允许携带的Body大小上限,默认值为12MB。 backend_timeout 后端响应超时时间上限,默认值为60000ms,可修改范围为1ms~600000ms。 app_token app_token认证方式开关。启用后,可在API请求中使用获取的access_token进行API的调用认证。 app_token_expire_time:access_token的有效时间,在access_token到期前,请及时获取新的access_token并更新,避免影响正常使用。 refresh_token_expire_time:refresh_token的有效时间。refresh_token用于获取新的access_token。 app_token_uri:获取access_token的uri。 app_token_key:access_token的加密key。 app_basic app_basic认证方式开关,默认关闭。启用后,在API请求中添加Header参数“Authorization”,参数值为"Basic"+base64(appkey:appsecret),其中appkey和appsecret分别为应用的Key和Secret。 app_secret app_secret认证方式开关。启用后,可在API请求中添加“X-HW-ID”和“X-HW-AppKey”参数,携带应用的Key和Secret进行API的调用认证。 app_route 支持IP访问开关。启用后,非DEFAULT分组下的APP认证的API可以仅使用IP地址调用。 backend_client_certificate 后端双向认证开关。启用后,创建API配置后端服务时,可配置后端双向认证。 ssl_ciphers 支持配置https加密套件,默认所有的加密套件全部支持。当您绑定独立域名后,可根据需要选择支持的加密套件。 real_ip_from_xff 是否使用X-Forwarded-For头中的IP作为ACL、流控的判断依据。 xff_index:X-Forwarded-For头中IP的排序序号,值允许为正数、负数、0。 xff_index值为0或正数时,获取X-Forwarded-For头中对应索引的IP。 xff_index值为负数时,按倒序方式从X-Forwarded-For头中获取IP。 例如到达API网关的X-Forwarded-For头中依次有IP1,IP2,IP3三个IP地址,xff_index取0时获取IP1,xff_index取1时获取IP2,xff_index取-1时获取IP3,xff_index取-2时获取IP2。 vpc_name_modifiable 负载通道名称是否可修改。 须知: 负载通道名称可修改时,当前实例的负载通道无法通过项目级负载通道管理接口操作。 app_jwt_enable app_jwt认证方式开关。启用后,可在API请求中添加“Authorization”和“Timestamp”参数,携带应用的Key和Secret以及时间戳进行API的调用认证。 app_jwt_auth_header:app_jwt认证头,即API请求中携带app_jwt认证信息的Header参数,默认为Authorization。 public_key_enable public_key类型签名密钥开关。启用后,可在签名密钥认证中使用public_key类型签名。 public_key_uri_prefix:获取public_key对应secret的uri前缀。具体uri格式为:https://{虚拟私有云 访问地址}{public_key_uri_prefix}{public_key签名密钥名称}。
  • 计费示例 假设您在2023/03/10 8:45:30部署专业版实例(假设实例版本单价为12.88元/小时/实例,公网带宽单价为0.063元/小时/实例),然后在9:30:00将其全部删除,则计费周期分为如下两个时间段: 8:00:00~9:00:00时间段,在8:45:30~9:00:00间产生费用,该计费周期内的计费时长为870秒。则参考计费项中的计费公式,该计费时间段内的费用为:870÷3600x12.88x1+870÷3600x0.063x1=3.13(元)。 9:00:00~10:00:00时间段,在9:00:00~9:30:00间产生费用,该计费周期内的计费时长为1800秒。则参考计费项中的计费公式,该计费时间段的费用为:1800÷3600x12.88x1+1800÷3600x0.063x1=6.47(元)。
  • 适用计费项 表1 按需计费适用计费项 计费项 说明 版本(实例规格) API网关提供的实例版本有:基础版、专业版、企业版、铂金版等,您可以根据实际业务需要按需使用。实例版本说明,请参考产品规格。如果您当前使用的实例版本不能满足需要,API网关支持升级产品版本,例如从“基础版”升级到“专业版”或者铂金版,并且对现有业务没有影响。 实例版本单价,请参考价格详情中的按需计费价格。 公网带宽 使用的公网出口带宽大小。 购买时长 使用实例或公网带宽的时间长度,按小时计费,精确到秒。 购买个数 实例的个数。 假设您计划使用1个专业版实例,开启公网出口,公网带宽大小为5Mbit/s,使用时长1小时,在价格计算器页面底部,您将看到所需的配置费用。 图1 按需计费配置费用示例 配置费用包括版本、公网带宽、实例数以及使用时长。
  • 计费周期 按需计费时,实例按秒计费,每一个小时整点结算一次费用(以GMT+08:00时间为准),结算完毕后进入新的计费周期。计费的起点以部署在API网关上实例启动运行的时间点为准,终点以实例删除的时间为准。 例如,您在2023/03/10 8:45:30部署了专业版实例,然后在9:30:00将其全部删除,则计费周期分为如下两个时间段: 8:00:00~9:00:00时间段,在8:45:30~9:00:00间产生费用,该计费周期内的计费时长为870秒。 9:00:00~10:00:00时间段,在9:00:00~9:30:00间产生费用,该计费周期内的计费时长为1800秒。
  • 升级实例版本后对计费的影响 如果您当前使用的实例版本不能满足需要,API网关支持升级产品版本,例如从“基础版”升级到“专业版”或者铂金版,并且对现有业务没有影响。 如果您在一个小时内升级了实例版本,将会产生多条计费信息。每条计费信息的开始时间和结束时间对应不同配置在该小时内的生效时间。 例如2023/03/10 9:00:00,您部署运行了专业版实例(假设实例版本单价为12.88元/小时/实例,公网带宽单价为0.063元/小时/实例)。并在9:30:00升级实例版本到企业版(假设实例版本单价为19.36元/小时/实例,公网带宽单价为0.063元/小时/实例),那么在9:00:00 ~ 10:00:00间会产生两条计费信息: 第一条对应9:00:00 ~ 9:30:00,按照专业版计费。则参考计费项中的计费公式,该计费时间段内的费用为:1800÷3600x12.88x1+1800÷3600x0.063x1=6.47(元)。 第二条对应9:30:00 ~ 10:00:00,按照企业版计费。则参考计费项中的计费公式,该计费时间段内的费用为:1800÷3600x19.36x1+1800÷3600x0.063x1=9.71(元)。
  • 计费说明 API网关提供包年/包月模式和按需模式,包年/包月模式计费项信息请参考表1,按需模式计费项信息请参考表2 表1 包年/包月模式计费项信息 计费项目 计费项说明 适用的计费模式 计费公式 版本 API网关提供的实例版本有:基础版、专业版、企业版、铂金版等,您可以根据实际业务需要按需使用。实例版本说明,请参考产品规格。如果您当前使用的实例版本不能满足需要,API网关支持升级产品版本,例如从“基础版”升级到“专业版”或者铂金版,并且对现有业务没有影响。 实例版本单价,请参考价格详情中的包年/包月计费价格。 包年/包月计费。 版本实例价格x购买个数+公网带宽单价x实际使用时长x实例个数 购买时长(月或年) 使用API网关实例的时间长度,支持使用1~9个月,或者1~3年。 购买个数(个) 使用API网关实例的个数。 公网带宽 API请求出公网带宽 按需计费。 表2 按需模式计费项信息 计费项目 计费项说明 适用的计费模式 计费公式 版本 API网关提供的实例版本有:基础版、专业版、企业版、铂金版等,您可以根据实际业务需要按需使用。实例版本说明,请参考产品规格。如果您当前使用的实例版本不能满足需要,API网关支持升级产品版本,例如从“基础版”升级到“专业版”或者铂金版,并且对现有业务没有影响。 实例版本单价,请参考价格详情中的按需计费价格。 按需计费。 实例版本单价x使用时长x实例个数+公网带宽单价x使用时长x实例个数 公网带宽 API请求出公网带宽。 购买时长(小时) 使用API网关实例的时间长度,按小时计费,精确到秒。 购买个数(个) 使用API网关实例的个数。
  • 计费示例 以按需使用为例,假设您已开通API网关实例专业版且未使用公网带宽,该版本按需计费的实例版本单价为12.88元/小时/实例。您于2023/03/08 15:50:04在API网关上购买了1个实例,在2023/03/10 17:50:00使用完成后删除实例。费用计算如下: 费用计算结果保留小数点后两位,第三位四舍五入。如遇四舍五入后不足¥0.01,则按¥0.01展示。因此,费用为643.99元。
  • 错误码(I CS Error) 本节介绍Web SDK客户端错误码IcsError的详细信息。 表1 错误码说明 报错信息 错误码 错误描述 错误原因或建议处理方式 NO_ENOUGH_RESOURCE 20010035 There are not enough resources. 没有充足的资源。 NATS_PUBLISH_FAILURE 20010040 Failed to publish message to nats. NATS发送消息失败,请联系技术支持。 NATS_SUBSCRIBE_FAILURE 20010041 Failed to subscribe single message. NATS订阅消息失败,请联系技术支持。 NATS_DELETE_SUBJECT_FAILURE 20010042 No such subject, delete subject failed. NATS消息删除失败,请联系技术支持。 NATS_INTERNAL_ERROR 20010043 Nats internal error. NATS内部错误,请联系技术支持。 DIGITAL_HUMAN_NOT_AVAILABLE 20010044 digital human asset not available. 数字人资产不可用。 ROOM_NOT_FOUNT 20010045 roomInfo not found. 房间信息未找到,请联系技术支持。 ROOM_ID_JOB_EXIST 20010046 roomId job exist. 房间任务ID未找到,请联系技术支持。 ASSET_NOT_EXIST 20010047 asset not exist. 资产未找到,请联系技术支持。 ASSET_INFO_INVALID 20010050 the asset info is invalid, please check the digital human config info. 资产信息无效,请检查数字人的ID配置。 INVALID_COMMAND 20010053 Invalid command, please check your command. 非法command命令,请检查你的command参数。 QUOTA_INSUFFICIENT 20010056 2d digital human video ncj insufficient resource quota. 运行中的任务数已达上限,请稍后重试。 REQUEST_TMS_UNAVAILABLE 20010060 tms request unavailable. 请求TMS失败,请联系技术支持。 AUDIO_NOT_FOUND_URL 20010067 audio file not found, please check field audio_config. 音频文件未找到,请检查audio_config,并联系技术支持。 MPS_FIELD_VERIFY_FAIL 20010070 field verify fail. 字段校验报错,请联系技术支持。 ASSET_UNAVAILABLE 20010071 the asset is unavailable. 资产不可用。 INVAILD_CHAT_JOB 20010074 The job info is not existed or the job is over. 智能交互任务不存在或已过期。 CHAT_QUOTA_INSUFFICIENT 20010075 insufficient resource chat concurrent quota. 智能交互的并发数配额不足。 CHAT_JOB_EXPIRE 20010076 chat task has been expired. 智能交互任务过期,请稍后重试。 DIA LOG _CONCURRENT_EXCEED_MAX_VALUE MSS.47010040 The number of concurrent intelligent interactions exceeds the maximum. 智能交互并发数超过最大值。 ONCE_CODE_AUTH_FAILED MSS.47010046 Once authentication code authentication failed. 一次性鉴权码鉴权失败。 ONCE_CODE_AUTH_LOCKED MSS.47010047 The number of once authentication failures exceeds the maximum. Locked. 一次性鉴权码的鉴权失败次数超过最大值,已锁定。 WS_INTERNAL_ERROR MSS.47010100 Internal error. 内部异常,请联系技术支持。 WS_MESSAGE_PARSE_ERROR MSS.47010101 Failed to parse the message. 消息解析失败,请联系技术支持。 WS_ROBOT_ID_IS_EMPTY MSS.47010102 Failed to start the dialog. The robot ID is empty. 启动对话失败,robot ID为空,请联系技术支持。 WS_UNKNOWN_ACTION MSS.47010103 Dialog request failed. The action is not supported. 对话请求失败,不支持该操作,请联系技术支持。 CONNECT_AIUI_TIMEOUT MSS.47010104 Connection to the third-party app timed out. 对话连接第三方APP超时。 AIUI_PA RAM _FAILED MSS.47010107 Error information returned by the third-party app. 第三方APP返回错误信息。 NOT_IN_WAITCONNECT MSS.47010109 Failed to start the dialog. The dialog is not in the waitConnect state. 对话不处于waitConnect状态,无法启动对话。 请联系技术支持。 WEBCLIENT_START_CHAT_WORKER_BROKEN MSS.47010111 Failed to start the dialog and disconnected from the worker. 启动对话失败,已与worker断链。请联系技术支持。 RTC_ERR_CODE_RTC_SDK_ERROR 90000001 sdk internal error. 内部错误,请联系技术支持。 RTC_ERR_CODE_NOT_SUPPORT_MEDIA_DEVI CES 90100002 not support enumerate devices. 浏览器不支持enumerateDevices方法,请升级或更换浏览器。 RTC_ERR_CODE_NO_AVAILABLE_DEVICES 90100003 no available devices. 没有找到可用设备,请排查设备是否就绪。 RTC_ERR_CODE_NO_AVAILABLE_AUDIO_INPUT_DEVICES 90100005 no available audio input devices. 没有找到音频输入设备,请排查音频采集设备是否就绪。 RTC_ERR_CODE_NO_AVAILABLE_AUDIO_OUTPUT_DEVICES 90100006 no available audio output devices. 没有找到音频输出设备。 RTC_ERR_CODE_STATUS_ERROR 90100007 room status error. 房间状态不正确,请检查是否入会成功。 RTC_ERR_CODE_WEBSOCKET_NOT_CONNECTED 90100008 websocket connection state is not "CONNECTED". websocket未连接,请检查websocket连接情况。 RTC_ERR_CODE_WAIT_CONFIG_FAIL 90100009 wait server config fail. 获取下发配置失败,请联系技术支持。 RTC_ERR_CODE_PUBLISH_RESPONSE_FAIL 90100010 publish response fail. 发布响应失败,请联系技术支持。 RTC_ERR_CODE_REGION_NOT_COVERED 90100011 current region is not covered, service unavailable. 没有找到服务端地址,请联系技术支持。 RTC_ERR_CODE_WEBSOCKET_CONNECT_TIMEOUT 90100012 websocket connect timeout. websocket建立连接超时,请联系技术支持。 RTC_ERR_CODE_WEBSOCKET_RECONNECT_TIMEOUT 90100013 websocket reconnect timeout. websocket重新建立连接超时,请联系技术支持。 RTC_ERR_CODE_WEBSOCKET_NOT_OPEN 90100014 websocket is not open. websocket连接未打开,请联系技术支持。 RTC_ERR_CODE_WEBSOCKET_INTERRUPTED 90100015 websocket connection state is idle, interrupt operation. websocket连接被强制关闭,一般为离会或重连。 RTC_ERR_CODE_WEBSOCKET_CONNECT_ERROR 90100016 websocket connect error. websocket连接出错,服务端主动断连。 RTC_ERR_CODE_CAPTURE_PERMISSION_DENIED 90100017 capture failed, permission denied. 未授权音频设备采集权限,采集失败。建议用户授权麦克风访问权限。 RTC_ERR_CODE_CAPTURE_OVER_CONSTRAINED 90100018 capture failed, Constraint parameter invalid. 音频采集设备不支持设置的采集约束,采集失败。 RTC_ERR_CODE_CAPTURE_DEVICE_NOT_FOUND 90100019 capture failed, requested device not found. 未找到请求的设备,采集失败。建议通话开始前,引导用户检查通话所需的麦克风等设备是否就绪。 RTC_ERR_CODE_CAPTURE_DEVICE_NOT_READABLE 90100020 capture failed, maybe device is occupied by other application. 设备可能被其他应用程序占用,采集失败。请检查设备的使用状态。建议提示用户“暂时无法访问麦克风,请确保当前没有其他应用请求访问麦克风后,重试”。 RTC_ERR_CODE_PLAY_NOT_ALLOW 90100021 the user didn't interact with the document first, please trigger by gesture. 不允许播放。 RTC_ERR_CODE_ROLE_NO_PERMISSION 90100022 the user role have no permission to operate. 用户角色没有权限,请检查用户角色。 RTC_ERR_CODE_ANSWER_SDP_INVALID 90100023 the answer sdp is invalid. SDP协商错误,请联系技术支持。 RTC_ERR_CODE_MEDIA_UPSTREAM_UNSUPPORTED 90100024 the upstream media is not supported. 浏览器不支持媒体采集。 RTC_ERR_CODE_MEDIA_NETWORK_ERROR 90100026 media connection establish failed, please switch network or try again later. 媒体建连失败,请切换网络后重试。 RTC_ERR_CODE_ROOM_STREAM_STATUS_PAUSED 90100029 room stream status paused. 房间音频已暂停。 RTC_ERR_CODE_SIGNATURE_EXPIRED 90100030 signature expired. 签名已过期。 RTC_ERR_CODE_SIGNATURE_INVALID 90100031 signature invalid. 非法签名。 RTC_ERR_CODE_RTC_ACS 90100100 server internal exception. 服务端内部错误,请联系技术支持。 RTC_ERR_CODE_RTC_CONTROL_ERROR 90100200 server internal exception. 服务端内部错误,请联系技术支持。 RTC_ERR_CODE_SFU_ERROR 90100300 server internal exception. 服务端内部错误,请联系技术支持。 MPS_JOB_STATE_NULL 999000001 - 网络异常,请检查网络连接后刷新重试。 MPS_JOB_STATE_ERROR 999000002 - 任务状态异常,请刷新后重试。 PROMISE_ERROR 999100001 - 内部错误,请刷新后重试。 CATCH_ERROR 999100002 - 内部错误,请刷新后重试。 KICK_OUT 999100003 - 该用户已经在其他地方加入房间,如需恢复请刷新重试。 AUDIO_DEVICE_ERROR 999100004 - 音频设备异常,请检查设备是否存在或已授权使用。 PEER_LEAVE 999100005 - 内部错误,请刷新后重试。 CONNECT_ERROR 999200001 - 内部错误,请刷新后重试。 UI_NO_PARENT 999300001 - 参数错误,请检查参数。 UI_PARAM_ERROR 999300002 - SDK挂载节点不存在,请检查参数。 父主题: 接口参考
  • 环境要求 Web SDK运行环境要求,如表1所示。 表1 环境要求 环境项 使用限制 开发工具 Microsoft Visual Studio Code、WebStorm或其他Web IDE开发工具。 语言 Javascript或Typescript。 编译环境 建议Node 17+。 浏览器 浏览器使用限制,请参见表2。 由于浏览器的安全策略限制,仅支持通过“https://域名”方式访问,否则无法获取麦克风权限。 表2 浏览器适配详情 操作系统类型 浏览器类型 浏览器版本 Windows Chrome浏览器 91+ Edge浏览器 80+ Android 微信内嵌浏览器(TBS内核) - 微信内嵌浏览器(XWEB内核) - 企业微信内嵌浏览器 - 移动版Chrome浏览器 91+ iOS 微信内嵌浏览器 iOS 14.3+ 微信6.5+版本 移动版Safari浏览器 -
  • 谷歌浏览器 打开Chrome浏览器,单击浏览器右上方的图标,从下拉框中选择“设置”。 进入“设置”页面。 在左侧导航栏中,选择“隐私设置和安全性”。 在右侧界面中,单击“网络设置”,进入“网络设置”页面。 在“权限”区域,单击“麦克风”,进入麦克风授权页面。 选择“网站可以请求使用您的麦克风”。如果默认已勾选此项,则已满足。 单击左上方的返回图标,返回到“网络设置”页面。 在“权限”区域,单击“摄像头”,进入摄像头授权页面。 选择“网站可以请求使用您的摄像头”。如果默认已勾选此项,则已满足。 上述设置完成后,当浏览器需要使用麦克风、摄像头时,会在页面弹出询问框,询问是否可以使用您的麦克风或摄像头,单击“允许”即可。
  • setLogLevel (static) setLogLevel(logLevel: 'debug' | 'info' | 'warn' | 'error' | 'none'): void 【功能说明】 设置输出日志的级别。 【请求参数】 表6 logLevel 参数 是否必须 默认值 类型 描述 logLevel 是 info debug info warn error none 日志级别。 【返回参数】 无
  • setConfig (static) setConfig(config: ConfigMap): void 【功能说明】 设置配置项,用于控制是否显示字幕或交互按钮。 【请求参数】 表4 config 参数 是否必须 默认值 类型 描述 config 是 - ConfigMap 配置信息,请参见表5。 表5 ConfigMap 参数 是否必须 默认值 类型 描述 enableCaption 否 false boolean 是否显示字幕。 enableChatBtn 否 false boolean 是否显示交互按钮。 【返回参数】 无 【代码示例】 HwICSUiSdk.setConfig({ enableCaption: true, enableChatBtn: false, });
  • 共享函数资源简介 基于 资源访问管理 (Resource Access Manager,简称RAM)服务, 函数工作流 服务可以实现跨账号共享函数资源,资源所有者将资源同时共享给多个其他账号使用,资源使用者接受共享邀请后就可以访问和使用共享的函数资源,就像拥有它们一样。资源所有者可以依据最小权限原则和不同的使用诉求,选择不同的共享权限,资源使用者只能对资源进行权限内的访问,保证共享资源在满足资源使用者业务诉求的同时,提升资源管理的安全性。关于RAM服务的更多信息请参见什么是资源访问管理。 当您的账号由华为云组织管理时,您还可以利用此优势更轻松地共享资源。如果您的账号在组织中,则您可以与单个账号共享,也可以与组织或OU中的所有账号共享,而不必枚举每个账号,具体请参见启用与组织共享资源。
  • 停止共享 资源所有者如果不再需要某个共享时,可以随时将其删除,删除共享不会删除共享的资源。共享删除后,共享资源指定的使用者将无法继续使用该共享中的资源,详情请参见删除共享。 资源所有者可以随时更新资源共享实例,支持更新资源共享实例的名称、描述、标签、共享的资源、共享权限以及共享使用者,详情请参见更新共享。 资源使用者如果不再需要访问共享给您的资源,可以随时退出共享。退出共享后,将失去对共享资源的访问权限。 只有当共享资源的指定使用者是华为云账号而不是组织内共享时,才可以退出此共享。如果共享资源的指定使用者是组织,而资源使用者的账号由组织管理,则无法退出此共享,详情请参见退出共享。
  • 步骤六:测试函数 在函数详情页,单击“测试”,在弹窗中创建新的测试事件。 选择“apig-event-template”,事件名称输入“helloworld”,测试事件修改为如下所示,完成后单击“创建”。 { "body": "{\"message\": \"helloworld\"}", "requestContext": { "requestId": "11cdcdcf33949dc6d722640a13091c77", "stage": "RELEASE" }, "queryStringParameters": { "responseType": "html" }, "httpMethod": "POST", "pathParameters": {}, "headers": { "Content-Type": "application/json" }, "path": "/helloworld", "isBase64Encoded": false }
  • 步骤三:本地验证 启动docker容器 docker run -u 1003:1003 -p 8000:8000 custom_container_http_example:latest 打开一个新的命令行窗口,向开放的8000端口发送消息,支持访问模板代码中根目录“/”下所有路径,以下以“helloworld”为例。 curl -XPOST -H 'Content-Type: application/json' -d '{"message":"HelloWorld"}' localhost:8000/helloworld 按照模块代码中返回 Hello FunctionGraph, method POST 在容器启动端口可以看到 receive {"message":"HelloWorld"} 或者使用docker logs命令获取容器的日志
  • CPU调度 CCE提供CPU管理策略为应用分配完整的CPU物理核,提升应用性能,减少应用的调度延迟。 功能 描述 参考文档 CPU管理策略 当节点上运行了很多 CPU 密集的 Pod 时,工作负载可能会迁移到不同的 CPU 核。许多应用对这种迁移不敏感,因此无需任何干预即可正常工作。有些应用对CPU敏感,对于CPU敏感型应用,您可以利用Kubernetes中提供的CPU管理策略为应用分配独占核,提升应用性能,减少应用的调度延迟。 CPU管理策略 增强型CPU管理策略 增强型CPU管理策略(enhanced-static),是在兼容静态绑核CPU管理策略的基础上,新增一种符合某些资源特征的Burstable Pod(CPU的Request和Limit值都是正整数)优先使用某些CPU的能力,以减少应用在多个CPU间频繁切换带来的影响。 增强型CPU管理策略
  • 云原生混部 云原生混部解决方案围绕Volcano和Kubernetes生态,帮助用户提升资源利用率,实现降本增效。 功能 描述 参考文档 动态资源超卖 根据在线作业和离线作业类型,通过Volcano调度将集群中申请而未使用的资源(即申请量与使用量的差值)利用起来,实现资源超卖和混合部署,提升集群资源利用率。 动态资源超卖 CPU Burst弹性限流 提供一种可以短暂突破CPU Limit值的弹性限流机制,以降低业务长尾响应时间,可以有效提升时延敏感型业务的服务质量。 CPU Burst弹性限流 出口网络带宽保障 平衡在线业务与离线业务对出口网络带宽的使用,保证在线业务有足够的网络带宽。 出口网络带宽保障
  • Volcano调度 Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。 功能 描述 参考文档 使用Volcano调度工作负载 一般情况下,Kubernetes在调度工作负载时会使用自带的默认调度器,若需要使用Volcano调度器的能力,您可以为工作负载指定调度器。 使用Volcano调度工作负载 资源利用率优化调度 针对计算资源进行优化的调度策略,可以有效减少各节点资源碎片,最大化地提高计算资源的利用率。 资源利用率优化调度 业务优先级保障调度 根据业务的重要性和优先级,设置自定义的策略对业务占用的资源进行调度,确保关键业务的资源优先级得到保障。 业务优先级保障调度 AI任务性能增强调度 根据AI任务的工作性质、资源的使用情况,设置对应的调度策略,可以增强集群业务的吞吐量,提高业务运行性能。 AI任务性能增强调度 NUMA亲和性调度 Volcano可解决调度程序NUMA拓扑感知的限制,实现以下目标: 避免将Pod调度到NUMA拓扑不匹配的节点。 将Pod调度到NUMA拓扑的最佳节点。 NUMA亲和性调度
  • GPU调度 CCE为集群中的GPU异构资源提供调度能力,支持在容器中使用GPU显卡。 功能 描述 参考文档 Kubernetes默认GPU调度 Kubernetes默认GPU调度可以指定Pod申请GPU的数量,支持申请设置为小于1的数量,实现多个Pod共享使用GPU。 使用Kubernetes默认GPU调度 GPU虚拟化 GPU虚拟化能够动态对GPU设备显存与算力进行划分,单个GPU卡最多虚拟化成20个GPU虚拟设备。相对于静态分配来说,虚拟化的方案更加灵活,最大程度保证业务稳定的前提下,可以完全由用户自己定义使用的GPU量,提高GPU利用率。 GPU虚拟化
  • 组调度介绍 Gang调度策略是volcano-scheduler的核心调度算法之一,它满足了调度过程中的“All or nothing”的调度需求,避免Pod的任意调度导致集群资源的浪费。具体算法是,观察Job下的Pod已调度数量是否满足了最小运行数量,当Job的最小运行数量得到满足时,为Job下的所有Pod执行调度动作,否则,不执行。 基于容器组概念的Gang调度算法十分适合需要多进程协作的场景。AI场景往往包含复杂的流程,Data Ingestion、Data Analysts、Data Splitting、Trainer、Serving、Logging等,需要一组容器进行协同工作,就很适合基于容器组的Gang调度策略。MPI计算框架下的多线程并行计算通信场景,由于需要主从进程协同工作,也非常适合使用Gang调度策略。容器组下的容器高度相关也可能存在资源争抢,整体调度分配,能够有效解决死锁。在集群资源不足的场景下,Gang的调度策略对于集群资源的利用率的提升是非常明显的。
  • 公平调度介绍 在实际业务中,经常会遇到将集群稀缺资源分配给多个用户的情况,每个用户获得资源的权利都相同,但是需求数却可能不同,如何公平的将资源分配给每个用户是一项非常有意义的事情。调度层面有一种常用的方法为最大最小化公平分配算法(max-min fairness share),尽量满足用户中的最小的需求,然后将剩余的资源公平分配给剩下的用户。形式化定义如下: 资源分配以需求递增的方式进行分配 每个用户获得的资源不超过其需求 未得到满足的用户等价平分剩下的资源
  • Volcano Scheduler Volcano Scheduler是负责Pod调度的组件,它由一系列action和plugin组成。action定义了调度各环节中需要执行的动作;plugin根据不同场景提供了action 中算法的具体实现细节。Volcano Scheduler具有高度的可扩展性,您可以根据需要实现自己的action和plugin。 图1 Volcano Scheduler工作流 Volcano Scheduler的工作流程如下: 客户端提交的Job被调度器识别到并缓存起来。 周期性开启会话,一个调度周期开始。 将没有被调度的Job发送到会话的待调度队列中。 遍历所有的待调度Job,按照定义的次序依次执行enqueue、allocate、preempt、reclaim、backfill等动作,为每个Job找到一个最合适的节点。将该Job 绑定到这个节点。action中执行的具体算法逻辑取决于注册的plugin中各函数的实现。 关闭本次会话。
  • Volcano自定义资源 Pod组(PodGroup):Pod组是Volcano自定义资源类型,代表一组强关联Pod的集合,主要用于批处理工作负载场景,比如Tensorflow中的一组ps和worker。 队列(Queue):容纳一组PodGroup的队列,也是该组PodGroup获取集群资源的划分依据。 作业(Volcano Job,简称vcjob):Volcano自定义的Job资源类型。区别于Kubernetes Job,vcjob提供了更多高级功能,如可指定调度器、支持最小运行Pod数、 支持task、支持生命周期管理、支持指定队列、支持优先级调度等。Volcano Job更加适用于机器学习、大数据、科学计算等高性能计算场景。
  • 升级备份说明 目前集群升级备份方式如下: 备份方式 备份对象 备份方式 备份时间 回滚时间 说明 etcd数据备份 etcd数据 升级流程中自动备份 1-5min 2h 必选备份,升级过程中自动进行,用户无需关注 CBR整机备份 Master节点磁盘,包括组件镜像、配置、日志以及etcd数据 通过页面一键备份(手动触发) 20min-2h(受当前局点云备份任务排队情况影响) 20min 该功能逐步由EVS快照备份替代 EVS快照备份 Master节点磁盘,包括组件镜像、配置、日志以及etcd数据 通过页面一键备份(手动触发) 1-5min 20min 该功能上线中 对于已上线的区域,EVS快照备份将替代CBR整机备份
  • Binpack算法原理 Binpack在对一个节点打分时,会根据Binpack插件自身权重和各资源设置的权重值综合打分。首先,对Pod请求资源中的每类资源依次打分,以CPU为例,CPU资源在待调度节点的得分信息如下: CPU.weight * (request + used) / allocatable 即CPU权重值越高,得分越高,节点资源使用量越满,得分越高。Memory、GPU等资源原理类似。其中: CPU.weight为用户设置的CPU权重 request为当前pod请求的CPU资源量 used为当前节点已经分配使用的CPU量 allocatable为当前节点CPU可用总量 通过Binpack策略的节点总得分如下: binpack.weight * (CPU.score + Memory.score + GPU.score) / (CPU.weight+ Memory.weight+ GPU.weight) * 100 即binpack插件的权重值越大,得分越高,某类资源的权重越大,该资源在打分时的占比越大。其中: binpack.weight为用户设置的装箱调度策略权重 CPU.score为CPU资源得分,CPU.weight为CPU权重 Memory.score为Memory资源得分,Memory.weight为Memory权重 GPU.score为GPU资源得分,GPU.weight为GPU权重 图1 Binpack策略示例
  • Binpack功能介绍 Binpack调度算法的目标是尽量把已有的节点填满(即尽量不往空白节点分配)。具体实现上,Binpack调度算法为满足调度条件的节点打分,节点的资源利用率越高得分越高。Binpack算法能够尽可能填满节点,将应用负载靠拢在部分节点,这非常有利于集群节点的自动扩缩容功能。 Binpack为调度器的多个调度插件之一,与其他插件共同为节点打分,用户可以自定义该插件整体权重和各资源维度打分权重,用以提高或降低Binpack在整体调度中的影响力。调度器在计算Binpack策略得分时,会考虑Pod请求的各种资源,如:CPU、Memory和GPU等扩展资源,并根据各种资源所配置的权重做平均。
  • 资源和成本规划 该解决方案主要部署如下资源,以下费用仅供参考,具体请参考华为云官网价格详情,实际收费以账单为准。 表1 成本预估(仅供参考) 华为云服务 计费说明 每月花费(调用100万次) 内容审核 服务-图像内容审核 1千次(含)以内免费。 1千-100万次:0.35元/千次 349.65元 对象存储服务 OBS 区域:华北-北京四 存储空间:数据存储(多AZ存储) 默认存储类别:标准存储 桶策略:私有 请求费用:0.0100元/万次 存储空间:0.1390元/GB/月 流量费用: 公网流出流量 / 00:00-08:00(闲时)0.2500元/GB 公网流出流量 / 08:00-24:00(忙时)0.5000元/GB 费用包括存储空间、请求费用、流量费用两部分,具体请参考OBS计费详情。 费用包括存储空间、请求费用、流量费用两部分,详细请参考每月账单。 函数工作流 FunctionGraph 区域:华北-北京四 产品:函数 请求次数: 0-100万次: 0元/100万次 100万次以上 : 1.33元/100万次 计量时间: 0-400,000 GB/秒: 0元/GB-秒 400,000 GB/秒以上 :0.00011108元/GB-秒 费用包括请求次数、计量时间两部分,详细请参考每月账单。 合计 - 349.65+OBS费用+函数工作流费用
    AI
共100000条