检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
到您的API所在分组。请检查API所在的分组域名,例如您有多个API分组,每个分组有自己的独立域名,API调用时,使用了其他分组的独立域名。 检查API是否使用OPTIONS跨域请求,如果使用OPTIONS跨域请求,请在API中开启CORS,并创建OPTIONS方式的API。具体操作请参考开启跨域共享。
AK/SK签名认证算法详解 AK/SK签名认证流程 构造规范请求 创建待签字符串 计算签名 添加签名信息到请求头
"The API does not exist or has not been published in the environment."如何解决?
请求消息头参数是否可以不参与签名 如果您按照AK/SK签名认证算法详解自行完成API请求签名,请注意X-Sdk-Date必须参与签名,其他请求消息头参数可选。 如果您使用华为云提供的SDK进行签名,则不需要考虑哪些请求消息头参数参与签名,SDK的签名方法自行决定哪些参数参与签名,
X-Security-Token:{securityToken} 然后使用临时AK/SK对请求进行签名,签名SDK与AK/SK的签名SDK一致。 创建一个API,安全认证选择“华为IAM认证”,并发布。 获取当前账号的临时AK/SK与{securityToken},请参考IAM接口文档。 例如获得响应参数为:
Token认证方式下获取Token。 AK/SK认证方式下,全局服务的接口调用,需在请求消息头中配置X-Domain-Id。(全局服务:服务部署时不区分物理区域。如IAM、OBS、CDN等。) 获取方式请参考获取账号名和账号ID。 x-stage API接口的环境,请参考各云服务的接口API的环境信息。 Host
err:ak not exist", "error_code": "APIGW.0301", "request_id": "******" } 可能原因 用户的API所属IAM认证,使用AK/SK签名方式访问,但是AK不存在。 解决方法 检查AK填写是否正确。 父主题: 常见问题
中每个部分必须为URI编码。如果URI路径不以“/”结尾,则在尾部添加“/”。 举例: URI具体见云服务的API参考手册,每个API章节都提供对应的资源路径。如虚拟私有云服务的查询VPC列表:/v1/{project_id}/vpcs,此时规范的URI编码为: GET /v1/
错误码说明 当您使用各云服务的API时,如果遇到“APIGW”开头的错误码,请参考如下语义与解决方案进行处理。 表1 错误码 错误码 错误信息 HTTP状态码 语义 解决方案 APIGW.0101 The API does not exist or has not been published
进行签名,执行此函数会将生成的签名头加入request变量中。 1 signer.createSignature(request); 使用curl库访问API,查看访问结果。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
签名SDK与demo Java Go Python C# JavaScript PHP C++ C Android 父主题: AK/SK签名认证操作指导
IDEA工具为例,介绍如何在Js环境中集成API请求签名的SDK。您可以直接导入示例工程体验,然后参考调用说明部分将签名SDK集成到您的应用中。 以搭建Node.js开发环境为例介绍JavaScript的SDK集成。 签名SDK只包含签名功能,不包含云服务的SDK功能,云服务SDK请参见SDK。 准备环境
AK/SK签名认证操作指导 AK/SK签名认证操作流程 获取EndPoint 获取AK/SK 获取项目ID 获取账号名和账号ID 签名SDK与demo
0d6870f4f6ebe 得到签名消息头后,将其增加到原始HTTP请求内容中,请求将被发送给云服务API网关,由API网关完成身份认证。身份认证通过后,该请求才会发送给具体的云服务进行业务处理。 包含签名信息的完整请求如下: GET /v1/77b6a44cba5143ab91d13ab9a8ff44fd/vpcs
AK/SK签名认证流程 客户端涉及的AK/SK签名以及请求发送的流程概述如下: 构造规范请求。 将待发送的请求内容按照与API网关后台约定的规则组装,确保客户端签名、API网关后台认证时使用的请求内容一致。 使用规范请求和其他信息创建待签字符串。 使用AK/SK和待签字符串计算签名。
创建待签字符串 对HTTP请求进行规范并取得请求的哈希值后,将其与签名算法、签名时间一起组成待签名字符串。 StringToSign = Algorithm + \n + RequestDateTime + \n + HashedCanonicalRequest
"request_id": "a5322eb89048eb41d705491a76a05aca" } 可能原因 appkey配置错误。 解决方法 在API网关控制台页面的左侧导航栏中选择“API管理 > 凭据管理”。 单击对应的凭据名称,进入凭据详情。 查看“Key”值,并重新配置appkey。