云服务器内容精选

  • 调用API 本章节仅提供请求地址和认证参数的配置指导,客户端的其他参数配置需要用户自行调整,如超时配置、SSL配置等。如果客户端参数配置错误会导致业务受损,建议参考业界标准进行配置。 构造API请求,示例如下: POST https://{Address}/{Path}?{Query} {Header} { {Body} } POST:请求方法,需替换为获取API的调用信息中获取的请求方法。 {Address}:请求地址,需替换为获取API的调用信息中获取的域名地址。 API调用场景 API请求参数配置 使用域名调用API 使用服务分配的调试域名或服务绑定的域名调用API,无需另外配置。 使用IP调用DEFAULT分组的API API允许使用IP地址调用DEFAULT分组下的API,无需另外配置。 使用IP调用非DEFAULT分组的API 使用IP地址直接调用非DEFAULT分组下的APP认证的API: 将实例的配置参数“app_route”和“app_secret”设置为“on”。开启“app_route”之后,同一凭据不能授权给相同请求路径和方法的API。 在请求消息中添加Header参数“X-HW-ID”和“X-HW-APPKEY”,参数值为API所授权凭据的Key和Secret。 须知: 使用简易认证(APP认证)调用API时,仅需在请求消息中添加Header参数“X-Apig-AppCode”和“host”即可。 使用IP地址直接调用非DEFAULT分组下的非APP认证的API,需要在请求消息中添加Header参数“host”。 {Path}:请求路径,需替换为获取API的调用信息中获取的请求路径。 {Query}:查询参数,可选,格式为“参数名=参数取值”,例如limit=10,多个查询参数之间使用“&”隔开。需根据获取API的调用信息中获取的请求参数进行设置。 {Header}:请求头参数,格式为“参数名: 参数取值”,例如Content-Type: application/json。需根据获取API的调用信息中获取的请求参数进行设置。 {Body}:请求消息体,JSON格式。需根据获取API的调用信息中获取的请求体内容描述进行设置。 为API请求添加认证信息。 API认证方式 API请求参数配置 APP认证(签名认证) 使用获取的SDK对API请求进行签名,具体请参考使用APP认证调用API APP认证(简易认证) 在API请求中添加Header参数“X-Apig-AppCode”,参数值为获取API的调用信息中获取到的AppCode。具体请参考快速入门。 APP认证(app_api_key认证) 实例的配置参数“app_api_key”已设置为“on”,开启app_api_key认证。 在API请求中添加Header或Query参数“apikey”,参数值为获取API的调用信息中获取到的Key。 APP认证(app_secret认证) 实例的配置参数“app_secret”已设置为“on”,开启app_secret认证,且“app_api_key”已设置为“off”,关闭app_api_key认证。 在API请求中添加Header参数“X-HW-ID”,参数值为获取API的调用信息中获取到的Key。 在API请求中添加Header参数“X-HW-AppKey”,参数值为获取API的调用信息中获取到的Secret。 APP认证(app_basic认证) 实例的配置参数“app_basic”已设置为“on”,开启app_basic认证。 在API请求中添加Header参数“Authorization”,参数值为"Basic"+base64(appkey+":"+appsecret),其中appkey和appsecret分别为获取API的调用信息中获取到的Key和Secret。 APP认证(app_jwt认证) 实例的配置参数“app_jwt”已设置为“on”,开启app_jwt认证。 在API请求中添加Header参数“Timestamp”,参数值为当前时间的Unix时间戳,单位为毫秒。 在API请求中添加Header参数“Authorization”,参数值为sha256(appkey+appsecret+timestamp),且sha256加密后的字符串需为小写字母。其中appkey和appsecret分别为获取API的调用信息中获取到的Key和Secret,timestamp为当前时间的Unix时间戳,单位为毫秒。 在API请求中添加Header参数“X-HW-ID”,参数值为获取API的调用信息中获取到的Key。 APP认证(双重认证) 在API请求中同时携带APP认证和自定义认证的认证信息。 IAM认证(Token认证) 先获取云服务平台的认证Token,然后在API请求中添加Header参数“X-Auth-Token”,参数值为认证Token,具体请参考Token认证。 IAM认证(AK/SK认证) 使用获取的SDK对API请求进行签名,具体请参考AK/SK认证。 IAM认证(双重认证) 在API请求中同时携带IAM认证和自定义认证的认证信息。 自定义认证 根据自定义认证的定义,在API请求参数中携带相关认证信息进行认证。 无认证 无需认证,可直接调用API。 第三方认证(API策略) 向API提供者获取请求参数中要携带的第三方认证信息。
  • 前提条件 在调用API前,确保您的业务系统所在网络与API的访问域名或地址互通。 如果业务系统与API网关在相同VPC内时,可直接访问API。 如果业务系统与API网关在同一区域的不同VPC内时,可通过创建VPC对等连接,将两个VPC的网络打通,实现同一区域跨VPC访问API。具体步骤请参考VPC对等连接说明。 如果业务系统与API网关在不同区域的不同VPC内时,可通过创建云连接实例并加载需要互通的VPC,将两个VPC的网络打通,实现跨区域跨VPC访问API。具体步骤请参考跨区域VPC互通。 如果业务系统与API网关通过公网互通,请确保API网关已绑定弹性IP。
  • 调用API 本章节仅提供请求地址和认证参数的配置指导,客户端的其他参数配置需要用户自行调整,如超时配置、SSL配置等。如果客户端参数配置错误会导致业务受损,建议参考业界标准进行配置。 配置请求地址相关参数。 API调用场景 API请求参数配置 使用域名调用API 使用服务分配的子域名或服务绑定的域名调用API,无需另外配置。 使用IP调用非DEFAULT分组的API 使用IP地址直接调用非DEFAULT分组下的非APP认证的API,需要在请求消息中添加Header参数“host”。 配置认证参数。 API认证方式 API请求参数配置 APP认证(签名认证) 使用获取的SDK对API请求进行签名,具体请参考使用APP认证调用API。 APP认证(简易认证) 在API请求中添加Header参数“X-Apig-AppCode”,参数值为获取API及文档中获取到的AppCode。具体请参考快速入门。 华为IAM认证(Token认证) 先获取云服务平台的认证Token,然后在API请求中携带Token进行认证,具体请参考Token认证。 华为IAM认证(AK/SK认证) 调用API时,使用获取的SDK对API请求进行签名,具体请参考AK/SK认证。 自定义认证 在API请求参数中携带认证信息进行认证。 无认证 无需认证,可直接调用API。
  • 错误码 当调用API时,可能遇到下表中的错误码。如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 通过APIG接口管理API,发生错误时,产生的错误码请参考错误码。 使用APIG错误码时,请以错误码(如APIG.0101)为准,错误信息并非固定不变,有时会对错误信息进行优化修改。 表1 错误码 错误码 错误信息 HTTP状态码 语义 解决方案 APIG.0101 The API does not exist or has not been published in the environment. 404 API不存在或未发布到环境 检查调用API所使用的域名、请求方法、路径和创建的API是否一致;检查API是否发布,如果发布到非生产环境,检查请求X-Stage头是否为发布的环境名;检查调用API使用的域名是否已经绑定到API所在的分组 APIG.0101 The API does not exist. 404 API请求方法不存在 检查API请求方法是否与API定义的方法相同 APIG.0103 The backend does not exist. 500 无法找到后端 联系技术支持 APIG.0104 The plug-ins do not exist. 500 无法找到插件配置 联系技术支持 APIG.0105 The backend configurations do not exist. 500 无法找到后端配置 联系技术支持 APIG.0106 Orchestration error. 400 编排错误 检查API配置的前后端参数是否合理 APIG.0107 The custom lua script encountered an unexpected error 500 Lua脚本发生未知错误 联系技术支持 APIG.0201 API request error. 400 请求格式不合法 使用合法的请求 APIG.0201 Request entity too large. 413 请求body过大(大于12M) 减小请求body大小 APIG.0201 Request URI too large. 414 请求URI过大(大于32K) 减小请求URI大小 APIG.0201 Request headers too large. 494 请求头过大(单个请求头大于32K或所有请求头总长度大于128K) 减小请求头大小 APIG.0201 Backend unavailable. 502 后端不可用 检查API配置的后端地址是否可用 APIG.0201 Backend timeout. 504 后端超时 增大超时时间或缩小后端的处理时间 APIG.0201 An unexpected error occurred 500 内部错误 联系技术支持 APIG.0202 Backend unavailable 502 后端不可用 检查API配置的后端请求协议是否与后端服务请求协议一致 APIG.0203 Backend timeout 504 后端超时 增大超时时间或缩小后端的处理时间 APIG.0204 SSL protocol is not supported: TLSv1.1 400 SSL协议版本不支持 使用支持的SSL协议版本 APIG.0205 Verify client certificate failed 400 客户端证书校验失败 检查客户端证书是否正确 APIG.0301 Incorrect IAM authentication information. 401 IAM认证信息错误 检查token是否正确 APIG.0302 The IAM user is not authorized to access the API. 403 IAM用户不允许访问API 检查用户是否被黑白名单限制 APIG.0303 Incorrect app authentication information. 401 APP认证信息错误 检查请求的方法、路径、查询参数、请求体和签名使用的方法、路径、查询参数、请求体是否一致;检查客户端机器时间是否正确。请参考使用APP认证调用API检查签名代码的问题 APIG.0304 The app is not authorized to access the API. 403 APP不允许访问API 检查APP是否授权访问API APIG.0305 Incorrect authentication information. 401 认证信息错误 检查认证信息是否正确 APIG.0306 API access denied. 403 不允许访问API 检查是否授权访问API APIG.0307 The token must be updated. 401 token需要更新 重新从IAM获取token APIG.0308 The throttling threshold has been reached. 429 超出流控值限制 等待流控刷新后访问。如果触发调试域名的单日请求数上限,请绑定独立域名 APIG.0310 The project is unavailable. 403 project不可使用 使用其他project访问 APIG.0311 Incorrect debugging authentication information. 401 调试认证信息错误 联系技术支持 APIG.0312 Incorrect third-party authentication information,auth fail 401 第三方认证信息错误,认证失败 检查身份信息是否正确 APIG.0313 Incorrect third-party authentication information,identities error 401 第三方认证信息错误,身份错误 检查请求中身份信息与第三方认证插件中身份来源设置是否一致 APIG.0314 Incorrect third-party authentication information,access deny 403 第三方认证信息错误,访问拒绝 联系技术支持确认请求来源是否为业务请求,如果是,则提高第三方认证插件的防爆力拦截阈值以解决 APIG.0401 Unknown client IP address. 403 无法识别客户端IP地址 联系技术支持 APIG.0402 The IP address is not authorized to access the API. 403 IP地址不允许访问 检查IP地址是否被黑白名单限制 APIG.0404 Access to the backend IP address has been denied. 403 后端IP不允许访问 后端IP地址或后端域名对应的IP地址不允许访问 APIG.0405 The app is not accessed from a trusted IP address. 403 未从受信任的IP地址访问应用程序 检查源IP是否在访问控制策略中配置了允许或者拒绝 APIG.0501 The app quota has been used up. 405 APP已经超出配额 或云市场调用次数用完 购买APP配额 或重新购买云市场调用次数 APIG.0502 The app has been frozen. 405 APP被冻结 余额不足 APIG.0601 Internal server error. 500 内部错误 联系技术支持 APIG.0602 Bad request. 400 非法请求 检查请求是否合法 APIG.0605 Domain name resolution failed. 500 域名解析失败 检查域名拼写,以及域名是否绑定了正确的后端地址 APIG.0606 Failed to load the API configurations. 500 未加载API配置 联系技术支持 APIG.0607 The following protocol is supported: {xxx} 400 协议不被允许,允许的协议是xxx。 注意:xxx以实际响应中的内容为准。 改用支持的协议(HTTP/HTTPS)访问 APIG.0608 Failed to obtain the admin token. 500 无法获取管理账户 联系技术支持 APIG.0609 The VPC backend does not exist. 500 找不到负载后端 联系技术支持 APIG.0610 No backend available. 502 没有可连接的后端 检查所有后端是否可用,如调用信息与实际配置是否一致 APIG.0611 The backend port does not exist. 500 后端端口未找到 联系技术支持 APIG.0612 An API cannot call itself. 500 API调用自身 修改API后端配置,递归调用层数不能超过10层 APIG.0613 The IAM service is currently unavailable. 503 IAM服务暂时不可用 联系技术支持 APIG.0615 Incorrect third-party authentication VPC information 500 获取第三方鉴权负载通道节点失败 检查第三方认证的负载通道配置是否正确 APIG.0616 Incorrect third-party authentication request information 500 连接第三方鉴权服务失败 检查第三方认证服务是否正常 APIG.0617 Incorrect third-party authentication response information 500 获取第三方鉴权服务响应失败 检查第三方认证服务是否正常 APIG.0705 Backend signature calculation failed. 500 计算后端签名失败 联系技术支持 APIG.0802 The IAM user is forbidden in the currently selected region 403 该IAM用户在当前region中被禁用 联系技术支持 APIG.2102 PublicKey is null 400 签名密钥未找到 联系技术支持 APIG.2201 Appkey or SecretKey is invalid 400 Appkey或SecretKey不合法 检查请求的Appkey或SecretKey是否正确 APIG.2202 Refresh token is invalid 400 Refresh token不合法 检查Refresh token是否正确 APIG.2203 Access token is invalid 400 Access token不合法 检查Access token是否正确 APIG.2204 ContentType invalid 400 ContentType不合法 检查ContentType是否正确 APIG.2205 Auth parameter invalid 400 认证参数不合法 检查认证参数是否正确 APIG.2206 Auth method invalid 400 认证方法不合法 检查认证方法是否正确 APIG.2208 The length of through_data is out of range 400 through_data超长 through_data长度上限为300,根据实际情况调整through_data内容 APIG.2209 The value of grant_type is not in enum List 400 grant_type的值不合法 grant_type只支持client_credentials、refresh_token,根据实际情况修改 APIG.2210 Lack of grant_type 400 缺少授权类型 添加grant_type APIG.2211 Lack of client_id 400 缺少客户端ID 添加客户端ID APIG.2212 Lack of client_secret 400 缺少客户端密钥 添加客户端密钥 APIG.2213 Lack of refresh_token 400 缺少refresh token 联系技术支持 APIG.1001 Refresh token is expired 401 Refresh token过期 重新获取refresh token APIG.1002 Access token is expired 401 Access token过期 重新获取access token APIG.1003 App not match refresh token 401 App与refresh token不匹配 检查client_id是否正确 APIG.1004 App not exist 401 App不存在 检查access token是否正确 APIG.1009 AppKey or AppSecret is invalid 400 AppKey或AppSecret不合法 检查请求的AppKey或AppSecret是否正确 父主题: 调用已发布的API
  • 调用API 构造API请求,示例如下: POST https://{Address}/{Path}?{Query} {Header} { {Body} } POST:请求方法,需替换为获取API的请求信息中获取的请求方法。 {Address}:请求地址,需替换为获取API的请求信息中获取的域名地址。 API网关代理使用分组分配的子域名或分组绑定的域名调用API,无需另外配置。 {Path}:请求路径,需替换为获取API的请求信息中获取的URL。 {Query}:查询参数,可选,格式为“参数名=参数取值”,例如limit=10,多个查询参数之间使用“&”隔开。需根据获取API的请求信息中获取的请求参数进行设置。 {Header}:请求头参数,格式为“参数名: 参数取值”,例如Content-Type: application/json。需根据获取API的请求信息中获取的Headers进行设置。 {Body}:请求消息体,JSON格式。需根据获取API的请求信息中获取的请求参数进行设置。 为API请求添加认证信息。 API认证方式 API请求参数配置 APP认证(签名认证) 使用获取的SDK对API请求进行签名。 APP认证(简易认证) 在API请求中添加Header参数“X-Apig-AppCode”,参数值为获取API的认证信息中获取到的AppCode。 APP认证(app_secret认证) 在API请求中添加Header参数“X-HW-ID”,参数值为获取API的认证信息中获取到的Key。 在API请求中添加Header参数“X-HW-AppKey”,参数值为获取API的认证信息中获取到的Secret。 APP认证(app_basic认证) 在API请求中添加Header参数“Authorization”,参数值为"Basic "+base64(appkey+":"+appsecret),其中appkey和appsecret分别为获取API的认证信息中获取到的Key和Secret。 IAM认证(AK/SK认证) 使用获取的SDK对API请求进行签名。 无认证 无需认证,可直接调用API。
  • 获取API的调用信息 在调用API前,您需要向API提供方获取API的调用信息。 获取API的请求信息 向API提供方获取API的“域名”、“请求方法”、“API URL”、“请求参数”和“Headers”。 获取API的调用凭据 根据API使用的安全认证方式不同,还要获取相关的请求认证信息,具体参考表1。 表1 认证信息 认证方式 认证信息 APP认证(签名认证) 向API提供方获取该API所授权凭据的Key和Secret,以及认证签名所使用的SDK。 APP认证(简易认证) 向API提供方获取该API所授权凭据的AppCode。 APP认证(app_secret认证) 向API提供方获取该API所授权凭据的Key和Secret。 APP认证(app_basic认证) 向API提供方获取该API所授权凭据的Key和Secret。 IAM认证(AK/SK认证) 获取云服务平台的用户账号的AK/SK,以及认证签名所使用的SDK。 无认证 无需认证信息。