华为云用户手册

  • 账号中的手机号码不可用(手机丢失、注销了手机号码等无法收取验证码),怎么更换? 如果手机号不可用,请提交工单处理或拨打客服电话4000-955-988反馈。 按照华为云售后支持回复提供所需材料用于身份核验。材料审核通过后,华为云售后支持会尽快为您更换手机号。 通常,您需提供以下信息和材料: 账号名称 姓名及身份证号码(用于进行人脸活体检测或银行卡身份验证) 变更后的手机号 您的联系方式:手机号(可以同变更后的手机号或填其他手机号)、邮件地址(选填) 对于企业实名认证账号,不仅需要提供以上信息和材料,还需要增加提供企业全称、企业证件号码、法定代表人姓名、对应企业证件: 当您为法定代表人身份时,请提供加盖单位公章的申请函(下载模板),法定代表人签字按手印。 当您为被授权人身份时,请提供加盖单位公章的授权书(下载模板),被授权人和法定代表人签字按手印。 如果情况特殊,包括但不限于下列情形,请按照华为云售后支持回复意见提供补充材料,以便我们进一步核实。 您为外籍人士,请提供相应国家/地区的身份证件(港澳台居民居住证、港澳台来往内地通行证、海外护照等)。 实名认证企业账号负责人离职的,历史上有消费/结算时,请提供现有与华为云的交易凭证(包括:华为云出具的账单、开具的发票、企业向华为云支付/汇款凭证等),此外还需提供实名认证企业账号负责人的离职证明。 实名认证企业被注销、吊销、解散、收购的,请提供登记管理机关(如:市场监督管理局)的证明,云账号资产处置证明(全部自然人股东签字并按手印 ;涉及法人实体股东的,由法人实体股东盖公章和对应法定代表人签字并按手印),拟承接该账号管理权的企业全称、企业证件号码、法定代表人姓名和对应企业证件(具体以华为云工作人员回复为准)。 其他情况,请与华为云工作人员充分沟通,以华为云工作人员回复为准。 父主题: 登录
  • 各类账号、手机号、电子邮件地址功能说明和设置指引 信息 用途 设置入口 约束 账号名 登录、找回密码 华为账号中心 华为账号的账号名。 只能修改一次。 租户名 华为云交易、 IAM 用户登录、华为云API调用等 华为云账号中心 租户名为客户在华为云业务中的账号名。 当租户名和华为账号的账号名不同时,华为云账号中心会展示租户名,相同时不会展示。 登录手机号/登录电子邮件地址 登录、安全验证 华为账号中心 一个手机号/电子邮件地址唯一绑定一个华为账号。 管理手机号 检索多账号名,选择登录 华为账号中心 如果某个手机号已经注册了一个华为账号,您使用该手机号注册的第二个或第三个华为账号登录华为云时,在华为云账号中心“华为账号信息”区域会出现“管理手机号”。 安全手机号/安全邮件地址 安全验证 华为账号中心 可绑定多个华为账号。 业务手机号/业务邮件地址 接收华为云资讯、活动消息以及业务相关验证码 华为云账号中心 仅在华为云账号手机号与华为账号手机号不一致时显示的华为云账号手机号。 一个手机号最多被三个华为云账号绑定为业务手机号。 仅在华为云账号邮件地址与华为账号邮件地址不一致时显示的华为云账号邮件地址。 一个邮件地址最多被三个华为云账号绑定为业务邮件地址。 接收人中的手机号和邮件地址 接收华为 云消息 通知 华为云消息中心 可绑定多个接收人。 父主题: 基本概念
  • 方案架构 图1 方案架构图 部署该解决方案会使用到如下资源: API网关:API托管服务, 通过APIG,对外提供 人证核身 人脸识别 的组合API能力。 函数工作流 :用于实现人证核身和人脸识别的组合业务逻辑,并通过APIG对外提供服务。 人脸识别服务 :提供动作活体检测功能,判断当前用户是否为真人。 人证核身服务:将活体检测截取的人脸照片与上传的身份证证件信息关联起来,对身份真实性的核验。 对象存储服务 :用于存放人证核身过程所需要的人像动作视频。
  • 安装SDK 使用SDK前,需要安装“HuaweiCloud.SDK.Core”和“HuaweiCloud.SDK.Ivs”,有两种安装方式,分别如下。 使用 .NET CLI 工具 dotnet add package HuaweiCloud.SDK.Core dotnet add package HuaweiCloud.SDK.Ivs 使用 Package Manager Install-Package HuaweiCloud.SDK.Core Install-Package HuaweiCloud.SDK.Ivs
  • 开始使用SDK 导入依赖模块 import com.huaweicloud.sdk.core.auth.ICredential; // 对用户身份进行认证 import com.huaweicloud.sdk.core.auth.BasicCredentials; // 请求异常类 import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; // 导入ivs sdk import com.huaweicloud.sdk.ivs.v2.region.IvsRegion; import com.huaweicloud.sdk.ivs.v2.*; import com.huaweicloud.sdk.ivs.v2.model.*; 配置认证信息 配置AK、SK信息。华为云通过AK识别用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。AK、SK获取方法请参见准备工作。 // 创建AK、SK认证凭据 public static ICredential getCredential(String ak, String sk) { return new BasicCredentials() .withAk(ak) .withSk(sk); } 初始化认证信息: String ak = System.getenv("HUAWEICLOUD_SDK_AK"); String sk = System.getenv("HUAWEICLOUD_SDK_SK"); ICredential credential = getCredential(ak, sk); 认证用的 ak 和sk 硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 本示例以 ak 和 sk 保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 图3 Windows环境新建环境变量 初始化客户端 指定region方式 public static IvsClient getClient(Region region, ICredential auth) { // 初始化客户端 return IvsClient.newBuilder() .withCredential(auth) .withRegion(region) .build(); } 华北-北京四region获取:IvsRegion.CN_NORTH_4 华北-北京一region获取:IvsRegion.CN_NORTH_1 发送请求并查看响应 // 以调用标准版(三要素)DetectStandardByIdCardImage 接口为例 DetectStandardByIdCardImageRequest request = new DetectStandardByIdCardImageRequest(); DetectStandardByIdCardImageResponse response = client.detectStandardByIdCardImage(request); System.out.println(response.toString()); 异常处理 表1 异常处理 一级分类 一级分类说明 二级分类 二级分类说明 ConnectionException 连接类异常 HostUnreachableException 网络不可达、被拒绝。 SslHandShakeException SSL认证异常。 RequestTimeoutException 响应超时异常 CallTimeoutException 单次请求,服务器处理超时未返回。 RetryOutageException 在重试策略消耗完成后,仍无有效的响应。 ServiceResponseException 服务器响应异常 ServerResponseException 服务端内部错误,Http响应码:[500,]。 ClientRequestException 请求参数不合法,Http响应码:[400, 500) // 捕获和处理不同类型的异常 DetectStandardByIdCardImageRequest request = new DetectStandardByIdCardImageRequest(); try { DetectStandardByIdCardImageResponse response = client.detectStandardByIdCardImage(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); }
  • 安装SDK 推荐使用 Composer 安装 SDK 。 Composer 是 php 的依赖管理工具,允许您在项目中声明依赖关系并安装这些依赖: // 安装 Composer curl -sS https://getcomposer.org/installer | php // 安装 PHP SDK composer require huaweicloud/huaweicloud-sdk-php 安装完毕后,你需要引入 Composer 的自动加载文件: require 'path/to/vendor/autoload.php';
  • 开始使用SDK 导入依赖模块 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions # 导入IVS的库 from huaweicloudsdkivs.v2.region.ivs_region import IvsRegion from huaweicloudsdkivs.v2 import * import os 配置认证信息 配置AK、SK信息。华为云通过AK识别用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。AK、SK获取方法请参见准备工作。 // 创建AK、SK认证凭据 def GetCredential(): return BasicCredentials(ak, sk) 初始化认证信息: ak = os.environ.get("HUAWEICLOUD_SDK_AK") sk = os.environ.get("HUAWEICLOUD_SDK_SK") credentials = GetCredential(ak, sk) 认证用的 ak 和sk 硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 本示例以 ak 和 sk 保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 图3 Windows环境新建环境变量 初始化客户端 指定region方式 # 选择服务部署区域 def GetClient(): return IvsClient.new_builder(IvsClient) \ .with_credentials(credentials) \ .with_region(IvsRegion.CN_NORTH_4) \ .build() CN_NORTH_4:华北-北京四 CN_NORTH_1:华北-北京一 发送请求并查看响应 # 以调用标准版(三要素)接口 DetectStandardByIdCardImage 为例 request = DetectStandardByIdCardImageRequest() response = client.detect_standard_by_id_card_image(request) print(response) 异常处理 表1 异常处理 一级分类 一级分类说明 二级分类 二级分类说明 ConnectionException 连接类异常 HostUnreachableException 网络不可达、被拒绝。 SslHandShakeException SSL认证异常。 RequestTimeoutException 响应超时异常 CallTimeoutException 单次请求,服务器处理超时未返回。 RetryOutageException 在重试策略消耗完成后,仍无有效的响应。 ServiceResponseException 服务器响应异常 ServerResponseException 服务端内部错误,Http响应码:[500,]。 ClientRequestException 请求参数不合法,Http响应码:[400, 500) # 异常处理 try: request = DetectStandardByIdCardImageRequest() response = client.detect_standard_by_id_card_image(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • SDK demo 代码解析 人证核身标准版(三要素) 方式一:使用身份证图片、人像图片进行校验 try: request = DetectStandardByIdCardImageRequest() listReqDataByIdCardImageReqDataIvsStandardByIdCardImageRequestBodyData = [ ReqDataByIdCardImage( idcard_image1="身份证人像面图像数据,使用base64编码", idcard_image2="身份证国徽面图像数据,使用base64编码", face_image="现场人像图像数据,使用base64编码," ) ] dataIvsStandardByIdCardImageRequestBodyData = IvsStandardByIdCardImageRequestBodyData( req_data=listReqDataByIdCardImageReqDataIvsStandardByIdCardImageRequestBodyData ) metaMeta = Meta( uuid="唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" ) request.body = IvsStandardByIdCardImageRequestBody( data=dataIvsStandardByIdCardImageRequestBodyData, meta=metaMeta ) response = client.detect_standard_by_id_card_image(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 方式二:使用身份证姓名、身份证号码文本,人像图片进行校验 try: request = DetectStandardByNameAndIdRequest() listStandardReqDataByNameAndIdReqDataIvsStandardByNameAndIdRequestBodyData = [ StandardReqDataByNameAndId( verification_name="被验证人的姓名", verification_id="被验证人的身份证号码", face_image="现场人像图像数据,使用base64编码" ) ] dataIvsStandardByNameAndIdRequestBodyData = IvsStandardByNameAndIdRequestBodyData( req_data=listStandardReqDataByNameAndIdReqDataIvsStandardByNameAndIdRequestBodyData ) metaMeta = Meta( uuid="唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" ) request.body = IvsStandardByNameAndIdRequestBody( data=dataIvsStandardByNameAndIdRequestBodyData, meta=metaMeta ) response = client.detect_standard_by_name_and_id(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 方式三:使用现场拍摄的人像视频数据,实现活体人证核身 try: request = DetectStandardByVideoAndIdCardImageRequest() listReqDataData = [ ReqDataByVideoAndIdCardImage( idcard_image1="身份证人像面图像数据,使用base64编码", idcard_image2="身份证国徽面图像数据,使用base64编码", video="现场拍摄人像视频数据,使用base64编码", actions="动作代码顺序列表" ) ] databody = IvsStandardByVideoAndIdCardImageRequestBodyData( req_data=listReqDataData ) metabody = Meta( uuid="唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" ) request.body = IvsStandardByVideoAndIdCardImageRequestBody( data=databody, meta=metabody ) response = client.detect_standard_by_video_and_id_card_image(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 人证核身证件版(二要素) 方式一:使用身份证图片进行校验 try: request = DetectExtentionByIdCardImageRequest() listExtentionReqDataByIdCardImageReqDataIvsExtentionByIdCardImageRequestBodyData = [ ExtentionReqDataByIdCardImage( idcard_image1="身份证人像面图像数据,使用base64编码", idcard_image2="身份证国徽面图像数据,使用base64编码" ) ] dataIvsExtentionByIdCardImageRequestBodyData = IvsExtentionByIdCardImageRequestBodyData( req_data=listExtentionReqDataByIdCardImageReqDataIvsExtentionByIdCardImageRequestBodyData ) metaMeta = Meta( uuid="唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" ) request.body = IvsExtentionByIdCardImageRequestBody( data=dataIvsExtentionByIdCardImageRequestBodyData, meta=metaMeta ) response = client.detect_extention_by_id_card_image(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 方式二:使用身份证姓名、身份证号码文本进行校验 try: request = DetectExtentionByNameAndIdRequest() listExtentionReqDataByNameAndIdReqDataIvsExtentionByNameAndIdRequestBodyData = [ ExtentionReqDataByNameAndId( verification_name="被验证人的姓名", verification_id="被验证人的身份证号码" ) ] dataIvsExtentionByNameAndIdRequestBodyData = IvsExtentionByNameAndIdRequestBodyData( req_data=listExtentionReqDataByNameAndIdReqDataIvsExtentionByNameAndIdRequestBodyData ) metaMeta = Meta( uuid="唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" ) request.body = IvsExtentionByNameAndIdRequestBody( data=dataIvsExtentionByNameAndIdRequestBodyData, meta=metaMeta ) response = client.detect_extention_by_name_and_id(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • 开始使用SDK 导入依赖模块 import ( "fmt" "os" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" // 导入IVS sdk ivs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ivs/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ivs/v2/model" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ivs/v2/region" ) 配置认证信息 配置AK、SK信息。华为云通过AK识别用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。AK、SK获取方法请参见准备工作。 // 创建AK、SK认证凭据 func GetCredential(ak, sk string) basic.Credentials { return basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() } 初始化认证信息: ak := os.Getenv("HUAWEICLOUD_SDK_AK") sk := os.Getenv("HUAWEICLOUD_SDK_SK") client := GetCredential(ak, sk) 认证用的 ak 和sk 硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 本示例以 ak 和 sk 保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 图3 Windows环境新建环境变量 初始化客户端 指定region方式 // 选择服务部署区域 func GetClient(auth basic.Credentials) *ivs.IvsClient { return ivs.NewIvsClient( ivs.IvsClientBuilder(). WithRegion(region.CN_NORTH_4). WithCredential(auth). Build()) } CN_NORTH_4:华北-北京四 CN_NORTH_1:华北-北京一 发送请求并查看响应 # 以调用标准版(三要素)接口 DetectStandardByIdCardImage 为例 request := &model.DetectStandardByIdCardImageRequest{} response, err := client.DetectStandardByIdCardImage(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } 异常处理 表1 异常处理 一级分类 一级分类说明 ServiceResponseError 服务响应异常 url.Error url异常 // 异常处理 response, err := client.DetectStandardByIdCardImage(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) }
  • SDK demo代码解析 人证核身标准版(三要素) 方式一:使用身份证图片、人像图片进行校验 request := &model.DetectStandardByIdCardImageRequest{} idcardImage2ReqDataReqDataByIdCardImage:= "身份证国徽面图像数据,使用base64编码" var listReqDataIvsStandardByIdCardImageRequestBodyData = []model.ReqDataByIdCardImage{ { IdcardImage1: "身份证人像面图像数据,使用base64编码", IdcardImage2: &idcardImage2ReqDataReqDataByIdCardImage, FaceImage: "现场人像图像数据,使用base64编码,", }, } databody := &model.IvsStandardByIdCardImageRequestBodyData{ ReqData: &listReqDataIvsStandardByIdCardImageRequestBodyData, } uuidMetaMeta:= "唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" metabody := &model.Meta{ Uuid: &uuidMetaMeta, } request.Body = &model.IvsStandardByIdCardImageRequestBody{ Data: databody, Meta: metabody, } response, err := client.DetectStandardByIdCardImage(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } 方式二:使用身份证姓名、身份证号码文本,人像图片进行校验 request := &model.DetectStandardByNameAndIdRequest{} var listReqDataIvsStandardByNameAndIdRequestBodyData = []model.StandardReqDataByNameAndId{ { VerificationName: "被验证人的姓名", VerificationId: "被验证人的身份证号码", FaceImage: "现场人像图像数据,使用base64编码", }, } databody := &model.IvsStandardByNameAndIdRequestBodyData{ ReqData: &listReqDataIvsStandardByNameAndIdRequestBodyData, } uuidMetaMeta:= "唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" metabody := &model.Meta{ Uuid: &uuidMetaMeta, } request.Body = &model.IvsStandardByNameAndIdRequestBody{ Data: databody, Meta: metabody, } response, err := client.DetectStandardByNameAndId(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } 方式三:使用现场拍摄的人像视频数据,实现活体人证核身 request := &model.DetectStandardByVideoAndIdCardImageRequest{} idcardImage2ReqData:= "身份证国徽面图像数据,使用base64编码" var listReqDataData = []model.ReqDataByVideoAndIdCardImage{ { IdcardImage1: "身份证人像面图像数据,使用base64编码", IdcardImage2: &idcardImage2ReqData, Video: "现场拍摄人像视频数据,使用base64编码", Actions: "动作代码顺序列表", }, } databody := &model.IvsStandardByVideoAndIdCardImageRequestBodyData{ ReqData: &listReqDataData, } uuidMeta:= "唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" metabody := &model.Meta{ Uuid: &uuidMeta, } request.Body = &model.IvsStandardByVideoAndIdCardImageRequestBody{ Data: databody, Meta: metabody, } response, err := client.DetectStandardByVideoAndIdCardImage(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } 人证核身证件版(二要素) 方式一:使用身份证图片进行校验 request := &model.DetectExtentionByIdCardImageRequest{} idcardImage2ReqDataExtentionReqDataByIdCardImage:= "身份证国徽面图像数据,使用base64编码" var listReqDataIvsExtentionByIdCardImageRequestBodyData = []model.ExtentionReqDataByIdCardImage{ { IdcardImage1: "身份证人像面图像数据,使用base64编码", IdcardImage2: &idcardImage2ReqDataExtentionReqDataByIdCardImage, }, } databody := &model.IvsExtentionByIdCardImageRequestBodyData{ ReqData: &listReqDataIvsExtentionByIdCardImageRequestBodyData, } uuidMetaMeta:= "唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" metabody := &model.Meta{ Uuid: &uuidMetaMeta, } request.Body = &model.IvsExtentionByIdCardImageRequestBody{ Data: databody, Meta: metabody, } response, err := client.DetectExtentionByIdCardImage(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } 方式二:使用身份证姓名、身份证号码文本进行校验 request := &model.DetectExtentionByNameAndIdRequest{} var listReqDataIvsExtentionByNameAndIdRequestBodyData = []model.ExtentionReqDataByNameAndId{ { VerificationName: "被验证人的姓名", VerificationId: "被验证人的身份证号码", }, } databody := &model.IvsExtentionByNameAndIdRequestBodyData{ ReqData: &listReqDataIvsExtentionByNameAndIdRequestBodyData, } uuidMetaMeta:= "唯一标识此次请求的ID,用户自定义,不超过64位。例如10eb0091-887f-4839-9929-cbc884f1e20e" metabody := &model.Meta{ Uuid: &uuidMetaMeta, } request.Body = &model.IvsExtentionByNameAndIdRequestBody{ Data: databody, Meta: metabody, } response, err := client.DetectExtentionByNameAndId(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) }
  • APIG.0307报错处理方法 如果调用API时返回错误信息与错误码:"error_msg":"The token must be updated.","error_code":"APIG.0307",是因为Token失效,需要进行更新。 您可以尝试以下方案进行解决。 Token有效期为24小时,请使用重新 获取Token 调用API。 检查接口URL中的终端节点是否填写正确。部署在不同区域间的服务,不可以跨区域调用。如果调用了不同区域的接口,导致判断为Token失效,显示APIG.0307错误码。 父主题: 错误码类
  • APIG.0301报错处理方法 如果在调用API时返回错误信息与错误码: "error_msg":"Incorrect IAM authentication information: decrypt token fail","error_code":"APIG.0301",是因为token解密失败。 解决方案: (1)请检查token是否过期。 (2)获取token的方法,请求体信息是否填写正确,token是否正确完整。 (3)获取token的环境与调用的环境是否一致是否跨区。 (4)检查账号权限,是否欠费,被冻结等。 "error_msg":"Incorrect IAM authentication information: verify aksk signature fail","error_code":"APIG.0301",是因为AK/SK认证失败。 解决方案: (1)请检查AK/SK是否正确,AK对应的SK错误,不匹配;AK/SK中多填了空格。 (2)AK/SK频繁出现鉴权出错,连续错误5次以上,被锁定5分钟(5分钟内,则一直认为其是异常的鉴权请求),5分钟后解锁重新认证。 (3)检查账号权限,是否欠费,被冻结等。 父主题: 错误码类
  • Token认证 需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 关于Token有效期的详细说明请参见获取IAM用户Token(使用密码)。 如果您的华为云账号已升级为华为账号,将不支持获取账号Token。建议为您自己创建一个IAM用户,获取IAM用户的Token。详细说明请参见账密报错。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 username为用户名,domainname为用户所属的账号名称,********为用户登录密码,project name为项目名称。username,domainname和project name的获取方法参见获取用户名、用户ID、项目名称、项目ID。 获取Token的终端节点和project name需与IVS服务终端节点保持一致。当访问华北-北京四的终端节点(即访问https://ivs.cn-north-4.myhuaweicloud.com时),获取Token请使用终端节点https://iam.cn-north-4.myhuaweicloud.com,project name为cn-north-4。 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json Request Body: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //替换为实际用户名 "password": "********", //替换为实际的用户密码 "domain": { "name": "domainname" //替换为实际账号名 } } } }, "scope": { "project": { "name": "project name" //替换为实际的project name,如cn-north-4 } } } } 如下图所示,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。获取Token之后,您就可以使用Token认证调用IVS服务API。
  • 步骤3:Token认证鉴权 Token是用户的访问令牌,承载了用户的身份、权限等信息,用户调用API接口时,需要使用Token进行鉴权。 在Postman左侧导航栏中单击“get-token”配置文件。 单击“Body”配置项。填写用户名、密码、账号名。 请登录“我的凭证”页面,复制IAM用户名、账号名至username、domainname参数处,并填写密码。 获取Token时,如果出现The userInfo is wrong、APIGW.0101、The username or password is wrong报错,请参见如何处理账密报错。 图5 Token认证鉴权 单击“Send”,发送请求,获取并复制Token。 获取返回结果“Headers”中的“X-Subject-Token”即为Token。 关于token有效期的详细说明请参见获取IAM用户Token(使用密码)。 图6 获取Token
  • 步骤4:调用服务 人脸识别API的请求Body参数中输入数据支持图片的Base64编码、图片文件和图片URL路径,本示例中使用图片文件。 在Postman左侧导航栏中单击“03 face-detect by file”配置文件。 登录我的凭证,获取“华北-北京四”区域的项目ID,替换配置文件URL中的{{project_id}}。 单击“Headers”配置项。将获取的Token复制到{{X-Subject-Token}}中。 图7 修改配置文件 单击“Body”配置项,上传需要进行人脸检测的图片。 图8 修改配置文件 单击“Send”,发送请求,获取调用结果。 { "faces": [ { "bounding_box": { "width": 174, "top_left_y": 37, "top_left_x": 22, "height": 174 }, "attributes": { "age": 35, "quality": { "total_score": 0.5869140625, "blur": 0.385498046875, "pose": 0.3349609375, "occlusion": 0.392333984375, "illumination": 0.3408203125 }, "expression": { "type": "happy", "probability": 0.74 } } } ] }
  • 查看流水账单 展示每一笔订单和每个计费周期维度构成的账单,根据此账单进行扣费和结算。 进入“费用账单”页面。 选择“流水账单”页签。 设置查询条件,查看流水账单数据。 单击“定制列”,可以定制需要查看的账单字段,字段的详细说明请参见账单字段说明。 包年/包月产品完成支付后,准实时呈现在流水账单页面。 按需产品根据使用量类型(如云主机按时长计费)的不同,分为按小时、按天、按月三种周期进行结算。由于系统处理需要一定的时间,系统通常会在使用后1个小时内对上一个结算周期的费用进行扣款。 按小时结算:华为云会每小时根据您的使用量计算费用,并到账户中进行扣费。例如,8:00~9:00期间产生的费用,通常会在10:00以前完成扣费。 按天结算:华为云会根据您的使用量计算费用,每日零点后对前一日使用量进行扣费。例如,2019-05-11 00:00:00至2019-05-11 23:59:59期间产生的费用,通常会在2019-05-12 01:00:00左右完成扣费。 按月结算:华为云会根据您的使用量计算费用,每月月初对前一月使用量进行扣费。例如,2019-04-01 00:00:00 至2019-04-30 23:59:59期间产生的费用,通常会在2019-05-01 01:00:00左右完成扣费。 按天进行结算的日峰值计费产品,一般会在16:00左右进行上一天费用的结算;按月进行结算的95计费、95增强计费、日峰值月平均产品,一般会在下个月的1号20:00左右进行上一个月费用的结算。
  • 查看账单详情 账单详情展示登录账户的账单详细信息。 进入“费用账单”页面。 选择“账单详情”页签。 设置统计维度和统计周期,查看账单的详细信息。 单击“定制列”,可以定制需要查看的账单字段,字段的详细说明请参见账单字段说明。 统计维度为“资源”时,如果资源存在父子资源,则子资源中会展示所属的父资源,根据父资源信息也可以查看到子资源。 单击应付金额右侧的,可以选择是否“隐藏0元消费”。 按需计费模式为简单 定价 (使用量*单价)时提供单价信息,其他的定价如:阶梯定价等不提供单价。 查看统计维度为“使用量类型”,统计周期为“明细”的账单时: 按需的使用量类型明细账单从2020/11/15 00:00:00开始,“优惠类型”字段按照实际享受的优惠类型进行赋值;2020/11/15 00:00:00以前的历史数据中不展示该字段取值,统一设置为“--”。 包年/包月的使用量类型明细账单中,“优惠类型”字段按照实际享受的优惠类型进行赋值,2020/11/15 00:00:00以前的历史数据也提供。
  • 查看汇总 汇总数据可以展示不同汇总维度下的应付金额、扣费明细等数据,每个产品只展示一条汇总数据。 当月最终汇总账单将在次月3日生成,在次月4日10点后可查看和导出,请您届时关注。 进入“费用账单”页面。 选择“汇总”页签。 设置查看月份和汇总维度,查看费用汇总数据。 可以根据月份查看费用汇总数据。单击“导出月账单”,可以导出汇总账单和对账单。 汇总账单:用户可以按月查看消费汇总数据。数据是按照产品类型、资源类型维度进行呈现,区分计费模式(按需、包年/包月)进行统计的汇总账单,包含消费、退款、调账的金额。 对账单:用户可以查看按月汇总的包年/包月、按需资源消费与退订的数据,按照订单和资源的维度进行呈现。 查看汇总图表和表格。 选择不同的维度,查看费用汇总数据。 按企业项目汇总时,如果您购买云服务资源时没有特别设置企业项目,将统一默认为:default。 按企业项目汇总时,如果您购买的云服务资源不支持设置企业项目,则统一呈现为:未归集。 单击产品类型的链接,可以查看对应产品的流水明细。 根据产品、计费模式、账单类型展示费用的汇总数据。 单击“展开消费走势”,可以查看近一年的消费走势图。 当前查询月份存在欠费时,单击“欠费”右上角的小问号可以查看欠费组成部分,欠费金额=未结清金额+未出账金额。应付金额=现金支付+信用额度支付+代金券抵扣+储值卡抵扣+欠费金额+现金券抵扣。 单击“定制列”,可以定制需要查看的账单字段,字段的详细说明请参见账单字段说明。
  • 操作步骤 进入 API Explorer 平台获取IAM用户Token接口。 选择Region,编辑获取用户Token接口的请求参数,进行具体的API调用。 Region 在Region下拉列表选取您需要访问的区域。 Params nocatalog为非必填,如果设置该参数,返回的响应体中将不显示catalog信息。任何非空字符串都将解释为true,并使该字段生效。 Body 通过切换输入方式可以选择表单填写或文本输入请求体。 表单填写:通过表单填写完成请求体,无需了解JSON语法,参考示例填写参数值。 文本输入:通过文本输入完成请求体,可以直接在编辑框内编写JSON格式的请求体。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "IAM用户所属账号名" }, "name": "IAM用户名", "password": "IAM用户的登录密码" } } }, "scope": { "domain": { "name": "IAM用户所属账号名" } } } } 参数说明请参见:请求参数。 如果是第三方系统用户,没有在本系统设置登录密码,可以通过系统登录页面的找回密码功能设置登录密码,并在password中输入新设置的密码。 单击调试,发送API请求。 在返回的响应体中查看获取的用户Token,用户调用IAM其他API接口时,可以使用该Token进行鉴权。 关于Token有效期的详细说明请参见获取IAM用户Token(使用密码)。 如果返回错误码,例如401,表示认证失败,请确认Request Body中请求参数填写正确后重新发送请求。
  • 步骤2:使用IAM账户获取Token 以获取华北-北京四(cn-north-4)区域的Token为例。 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Request Header: Content-Type: application/json Request Body: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //子账户名称 "password": "********", //子账户密码 "domain": { "name": "domainname" //主账户名称 } } } }, "scope": { "project": { "name": "project name" //区域名称,如cn-north-4 } } } }
  • 如何处理未经授权的情况 提交OBS的数据到人脸识别服务进行识别,返回未经授权:The OBS is unauthorized时,您可以通过如下步骤处理: 使用OBS中的数据时,需要授权人脸识别服务能读取OBS数据,检查是否已在人脸识别服务的管理控制台单击过“委托授权”: 如果已经授权,界面将显示为“已授权”。 如果没有授权,请单击界面左侧“委托授权”。 图1 服务授权 如果管理控制台已经授权过了,您再确认下,该OBS URL是否是自己账号下的OBS桶地址。 如果该OBS URL是您自己账号下的OBS桶地址,确认下该OBS桶是否在人脸识别服务支持的Region。 如果上述方法还不能解决该问题,请登录咨询页面填写您的相关信息,我们会在1个工作日内和您联系(工作时间周一至周五9:00-18:00)。您也可以拨打4000-955-988或950808按1转1进行快速解答。 父主题: 产品咨询类
  • 操作步骤 编辑获取用户Token接口的Request URL、Header、Body,进行具体的API调用。 Request URL 格式为:https://IAM地区与终端节点地址/API接口URI 访问网址:地区与终端节点,获取IAM区域与终端节点地址。 图1 IAM区域与终端节点 访问网址:获取用户Token,获取API接口的URI。 以cn-north-1为例,则Request URL为:https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 选择API接口获取方式,并将Request URL填写至postman中。 图2 Request URL示例 Request Header key:Content-Type,value:application/json;charset=utf8 图3 Headers参数示例 Request Body 修改Request Body样例中参数。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "账号名" }, "name": "IAM用户名", "password": "IAM用户密码" } } }, "scope": { "domain": { "name": "账号名" } } } } 登录获取Token的IAM用户,并获取账号名、IAM用户名,方法请参见:获取账号、IAM用户、项目名称和ID。 单击“Send”,发送API请求。 图4 发送API请求 在返回的响应头中查看获取的用户Token,用户调用IAM其他API接口时,可以使用该Token进行鉴权。 图5 获取Token 如果返回值为401,表示认证失败,请确认Request Body中请求参数填写正确后重新发送请求。 如果返回值为400,表示body体格式错误,请检查body体格式是否满足json语法。详细错误请参考获取token返回值。 如果您的调试结果异常,提示“Header Overflow”,可以参考故障处理解决Header溢出问题。
  • 获取Token报错 获取Token时,请依据报错信息,选择相应的解决方案。 账密报错The username or password is wrong 返回The userInfo is wrong 请正确填写username和domainname,一般情况下,username=domainname。如不确定,可登录“我的凭证”页面查看,如果使用IAM账号获取Token: username:IAM用户名(子账号名称) domainname:账号名 返回"error_code": "APIGW.0101" 请检查获取Token使用的url是否正确。以获取华北-北京四区域的token为例,采用post请求,url为: https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 返回“The account is locked”账号被锁 父主题: 错误码类
  • 调用API报错“The token must be updated”怎么办 以下两种情况可能会导致调用API时返回The token must be update: 您获取的Token已过期,关于Token有效期的详细说明请参见获取IAM用户Token(使用密码),当Token过期时会返回该提示信息。 您的账户出现欠费,充值后,未重新获取Token,这种情况下也会导致返回提示信息。 若出现该提示,您需要重新从IAM服务获取Token,具体请参见获取用户Token。 父主题: 错误码类
  • 为子用户分配权限,子用户自行开通FRS服务 使用主账号登录IAM服务控制台。 打开用户组列表,找到子用户所在的用户组,单击该用户组的“授权”操作。 勾选需要授予用户组的权限,单击“确定”,完成用户组授权。FRS全部系统权限请参见权限管理。 当现有策略不满足时,可使用FRS自定义策略。 子账户被赋予相应权限后,可使用子账户登录FRS控制台,开通所需的服务。 开通服务:主账号开通FRS的某个服务时,子账号未开通此服务,则子账号无法调用此服务,需子账号开通此服务后才可调用。 关闭服务:主账号关闭FRS的某个服务时,子账号未关闭此服务,则子账号依然可以调用此服务,并产生相应费用。如果需要暂停此服务,需要对应的子账号也关闭此服务。
  • FRS权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 FRS部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京四)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问FRS时,需要先切换至授权区域。 如表1所示,包括了FRS的所有系统角色。 表1 FRS系统策略 策略名称 描述 策略类型 依赖关系 FRS FullAccess 所有权限 系统策略 无 FRS ReadOnlyAccess 只读访问权限 系统策略 无 表2列出了FRS常用操作与系统策略的授权关系,您可以参照该表选择合适的系统策略。 表2 FRS操作与系统策略关系 Action Action说明 FRS FullAccess FRS ReadOnlyAccess frs:faceSearch:subscribe 订阅人脸搜索服务 √ × frs:faceSearch:unsubscribe 取消订阅人脸搜索服务 √ × frs:faceSearch:getSubscribeUserList 查询订阅人脸搜索的用户列表 √ √ frs:faceSearch:subscribeAllUsers 为所有子用户订阅人脸搜索服务 √ × frs:faceSearch:unsubscribeAllUsers 为所有子用户取消订阅人脸搜索服务 √ × frs:faceCompare:subscribe 订阅人脸比对服务 √ × frs:faceCompare:unsubscribe 取消订阅人脸比对服务 √ × frs:faceCompare:getSubscribeUserList 查询订阅人脸比对的用户列表 √ √ frs:faceCompare:subscribeAllUsers 为所有子用户订阅人脸比对服务 √ × frs:faceCompare:unsubscribeAllUsers 为所有子用户取消订阅人脸比对服务 √ × frs:faceDetect:subscribe 订阅人脸检测服务 √ × frs:faceDetect:unsubscribe 取消订阅人脸检测服务 √ × frs:faceDetect:getSubscribeUserList 查询订阅人脸检测的用户列表 √ √ frs:faceDetect:subscribeAllUsers 为所有子用户订阅人脸检测服务 √ × frs:faceDetect:unsubscribeAllUsers 为所有子用户取消订阅人脸检测服务 √ × frs:liveDetect:subscribe 订阅活体检测服务 √ × frs:liveDetect:unsubscribe 取消订阅活体检测服务 √ × frs:liveDetect:getSubscribeUserList 查询订阅活体检测的用户列表 √ √ frs:liveDetect:subscribeAllUsers 为所有子用户订阅活体检测服务 √ × frs:liveDetect:unsubscribeAllUsers 为所有子用户取消订阅活体检测服务 √ ×
  • 错误码 调用API出错后,将不会返回结果数据。调用方可根据每个API对应的错误码来定位错误原因。当调用出错时,HTTP请求返回一个4xx或5xx的HTTP状态码。返回的消息体中是具体的错误代码及错误信息。在调用方找不到错误原因时,可以联系客服,并提供错误码,以便我们尽快帮您解决问题。 异常响应样例 { "error_code": "FRS.0202", "error_msg": " The service has been freeze." } 参数说明 参数 是否必选 类型 说明 error_code 否 String 错误码。 error_msg 否 String 错误消息。 错误码说明 错误码类别 状态码 错误码 说明 处理措施 服务类公共错误 (错误码区间:1~99) 403 FRS.0002 鉴权token失败,用户token错误或者已过期。 请参考认证鉴权章节,重新获取您的token信息,并使用获取的token来调用人脸识别服务的接口。 400 FRS.0010 缺少请求头或者请求头为空。 请参考构造请求章节,检查公共消息头是否配置。 400 FRS.0011 缺少参数。 请检查请求参数必填参数是否遗漏。 400 FRS.0012 请求参数格式不正确。 请检查参数输入的格式是否合法。 检查必填参数是否填写完整。 检查输入数据规格是否符合约束限制。 400 FRS.0013 输入的人脸图片尺寸过大或过小。 请上传符合规范的人脸图片。 人脸图片分辨率需小于4096*4096,图片中人脸像素大于80*80,建议120*120以上。 400 FRS.0014 输入的不是json格式。 请检查body体的json格式是否合法。 400 FRS.0015 图片base64解析错误。 使用Base64图像数据时,注意编码格式要与API文档中的请求示例保持一致。图片转base64方法可参考如何获取图片的base64编码 使用本地图片文件时,请检查文件是否为图片,且图片类型满足约束。 使用图片URL地址时,请检查URL是否为OBS地址,且地址为图片文件的路径。 400 FRS.0016 上传的文件格式不支持。 请参考约束与限制章节,上传支持识别的文件格式。 400 FRS.0017 上传的body体超出允许的范围。 上传的body体超出允许的范围,请检查图片和分辨率的大小是否在允许的范围内。 请参考约束与限制章节,使用符合规定的图片。 500 FRS.0018 服务内部错误。 请联系客服提供支持。 400 FRS.0019 服务未开通。 请登录人脸识别管理控制台,根据业务需求,选择需要开通的服务。 400 FRS.0020 子服务未开通。 请登录人脸识别管理控制台,根据业务需求,选择需要开通的子服务。 如已开通服务,请检查开通服务的区域(或账号)与调用服务的区域(或账号)是否一致;若一致请检查API的URL是否拼写正确。 400 FRS.0021 无效OBS的url。 请参考请求样例,检查OBS的url是否正确。 400 FRS.0023 OBS上的文件大小超出范围。 请参考约束与限制章节,检查OBS中文件的大小是否符合接口要求 400 FRS.0024 OBS上的文件不存在。 请检查OBS上的文件是否存在。 400 FRS.0027 OBS未授权。 请登录人脸识别管理控制台,点击右上角“服务授权”,完成OBS授权。 403 FRS.0028 Project ID跟Token不匹配。 请检查获取Token的Project ID是否和请求url上的Project ID一致。 400 FRS.0032 排序字段以及类型不支持,只支持数字类型。 排序字段以及类型不支持,只支持数字类型。请参考sort语法章节查看示例。 400 FRS.0033 当前请求数太多,超过流控限制。 建议控制请求策略或者进行重试,建议扩容以增加QPS配额。 400 FRS.0035 下载地址不合法。 请参考请求样例,检查OBS的url是否正确。 400 FRS.0036 从url获取文件失败。 请使用OBS提供的url上传图片,并检查url是否正确。 服务管理错误 (错误码区间:201~300) 400 FRS.0201 此用户已经注册了。 此用户已经注册了。 400 FRS.0202 服务已经被冻结。 请联系客服提供支持。 400 FRS.0203 更新用户信息失败。 请检查输入的用户信息。 人脸库资源错误 (错误码区间:301~400) 400 FRS.0301 无法创建已经存在的人脸库。 请检查输入的人脸库名称,创建的人脸库已存在,请更换人脸库名称后重新创建。 400 FRS.0302 人脸库不存在。 请检查输入的人脸库是否存在。 400 FRS.0304 未检测到人脸,无法搜索。 请参考约束与限制章节,上传符合规范的人脸图片。 400 FRS.0305 超过最大的人脸库数量,无法创建新的人脸库。 请检查人脸库数量是否超出限制联系客服提供支持。 403 FRS.0306 超过人脸库容量限制,无法增加更多的人脸。 请新增人脸库,重新添加人脸到新的人脸库中。 人脸资源错误 (错误码区间:401~500) 400 FRS.0401 找不到对应类型的值,无法删除。 请参考人脸资源管理接口说明。 400 FRS.0402 输入的字段不存在。 请参考人脸资源管理接口说明。 400 FRS.0403 Face ID不存在。 请检查输入的Face ID是否存在。 400 FRS.0404 未检测到人脸,无法添加。 请参考约束与限制章节,上传符合规范的人脸图片。 400 FRS.0405 未定义的自定义字段,无法添加。 请检查添加的自定义字段是否存在,创建自定义字段后再进行添加。 400 FRS.0406 导入的数据类型与定义不匹配。 请检查导入的数据类型是否与定义的数据类型一致。 400 FRS.0407 批量删除未找到匹配数据。 请检查需要删除的数据信息是否存在。 人脸比对错误 (错误码区间:501~600) 400 FRS.0501 照片未检测到人脸。 请参考约束与限制章节,上传符合规范的人脸图片。 人脸搜索错误码 (错误码区间:29~31) 400 FRS.0029 过滤格式错误。 请参考人脸搜索请求参数章节,检查输入格式是否合法。 400 FRS.0030 返回字段未定义。 请参考人脸搜索请求参数章节,检查return_fields是否定义。 400 FRS.0031 排序字段不在返回字段中。 请参考人脸搜素请求参数章节,检查排序字段是否定义。 活体检测错误 (错误码区间:701~800) 400 FRS.0701 视频解析错误。 请检查视频是否有损坏。 400 FRS.0702 不支持的动作。 请参考动作活体检测的请求参数,检查输入的动作是否存在。 400 FRS.0703 Action time非法。 请检查输入是否合法。 400 FRS.0704 传入的action数量超过10个。 传入的action数量超过10个。 400 FRS.0705 匹配模式不支持。 请参考约束与限制章节,检查输入是否合法。 400 FRS.0706 视频时长不支持,限制[1-15]秒。 视频时长超过限制[1-15]秒,请使用符合时长要求的视频。 400 FRS.0707 照片未检测到人脸。 请参考约束与限制章节,检查照片中是否有人脸或者人脸是否满足约束限制。 400 FRS.0708 检查输入的人脸图片质量是否满足要求。 请参考约束与限制章节,检查输入的人脸图片质量是否满足要求。 400 FRS.0751 视频数据解析失败。 请参考约束与限制章节,检查输入的视频是否满足要求。 400 FRS.0709 检查输入的人脸图片包含多张人脸。 请检查输入的人脸图片是否包含多张人脸,静默活体检测仅支持单人脸照片。 网关错误码 错误码类别 状态码 错误码 说明 处理措施 网关类错误 (错误码区间:1~400) 404 APIG.0101 访问的API不存在或尚未在环境中发布。 请检查API的URL是否拼写正确,例如,URL中是否缺少project_id。 检查URI中的区域信息是否和调用服务配置的区域是否对应。 HTTP请求方法(POST,GET等)是否正确。 具体的URI信息请在各接口的API页面查看。 413/504 APIG.0201 请求体超过范围或者后端超时。 请检查请求的大小是否合法,请联系客服检查后端服务是否运行正常。 401 APIG.0301 IAM身份验证信息不正确: decrypt token fail:token解析失败。 token expires:token过期。 verify aksk signature fail:AK/SK认证失败。 token解析失败,请检查获取token的方法,请求体信息是否填写正确,token是否正确;检查获取token的环境与调用的环境是否一致。 token超时(token expires) ,请重新获取token,使用不过期的token。 请检查AK/SK是否正确(AK对应的SK错误,不匹配;AK/SK中多填了空格)。 AK/SK频繁出现鉴权出错,连续错误5次以上,被锁定5分钟(5分钟内,则一直认为其是异常的鉴权请求),5分钟后解锁重新认证。 检查账号权限,是否欠费,被冻结等。 401 APIG.0307 Token需要更新 Token有效期为24小时,请使用重新获取Token调用API。 检查接口URL中的终端节点是否填写正确。部署在不同区域间的服务,不可以跨区域调用。如果调用了不同区域的接口,导致判断为Token失效,显示APIG.0307错误码。 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 父主题: 附录
  • 基本概念 账号 用户注册华为云时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 华为云的区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 父主题: 使用前必读
  • 调用API获取项目ID 项目ID还可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。选中“Headers”配置项,添加“KEY”为“X-Auth-Token”,“VALUE”为获取的Token值,详细的接口认证鉴权请参见认证鉴权。 响应示例如下,例如人脸识别服务部署的区域为“cn-north-1”,响应消息体中查找“name”为“cn-north-1”,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "cn-north-1", "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" } }
  • 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不同,使用时请注意。 AK/SK获取方式请参考获取AK/SK。
共100000条