上云无忧 > 文档中心 > 百度智能云弹性伸缩API接口使用规范
弹性伸缩
百度智能云弹性伸缩API接口使用规范

文档简介:
百度智能云弹性伸缩(Auto Scaling)是自动化扩缩容用户云资源的管理服务,当您业务所需的云资源用量经常性变化时,弹性伸缩会是您使用云资源的理想方式。 接口使用规范 规范化字符串 通常一个字符串中可以包含任何Unicode字符。在编程中这种灵活性会带来不少困扰。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概述

百度智能云弹性伸缩(Auto Scaling)是自动化扩缩容用户云资源的管理服务,当您业务所需的云资源用量经常性变化时,弹性伸缩会是您使用云资源的理想方式。

接口使用规范

规范化字符串

通常一个字符串中可以包含任何Unicode字符。在编程中这种灵活性会带来不少困扰。因此引入“规范字符串”的概念。一个规范字符串只包含百分号编码字符以及URI(Uniform Resource Identifier)非保留字符(Unreserved Characters)。 RFC 3986规定URI非保留字符包括以下字符:字母(A-Z,a-z)、数字(0-9)、连字号(-)、点号(.)、下划线(_)、波浪线(~)。 将任意一个字符串转换为规范字符串的方式是:

  • 将字符串转换成UTF-8编码的字节流。
  • 保留所有URI非保留字符原样不变。
  • 对其余字节做一次RFC 3986中规定的百分号编码(Percent-Encoding),即一个%后面跟着两个表示该字节值的十六进制字母。字母一律采用大写形式。示例: 原字符串:this is an example for 测试, 对应的规范字符串:this%20is%20an%20example%20for%20%E6%B5%8B%E8%AF%95。

编码规范

  • 可解析内容,所有request/response body内容目前均使用UTF-8编码,后续会支持更多encoding类型。
  • 在请求时,需要对以下做UrlEncode:

    • Objectname,其中,Resource做UrlEncode的时候需要忽略“/”。
    • Querystring的Value。
    • x-bce-copy-source(忽略“/”)。
    • 自定义Meta:Meta Value只支持可见的ASCII字符,如果需要其它的字符,推荐使用UrlEncode处理。

密码加密传输规范

所有涉及密码的接口参数都需要加密,禁止明文传输。密码一律采用AES 128位加密算法进行加密,用SK的前16位作为密钥,加密后生成的二进制字节流需要转成十六进制,并以字符串的形式传到服务端。具体步骤如下:

  • byte[] bCiphertext= AES(明文,SK)
  • String strHex = HexStr(bCiphertext)

日期与时间

日期与时间的表示有多种方式。为统一起见,除非是约定俗成或者有相应规范的,凡是HTTP标准中规定的表示日期和时间字段用GMT,其他日期时间表示的地方一律采用UTC时间,遵循ISO 8601,并做以下约束:

  • 表示日期一律采用YYYY-MM-DD方式,例如2014-06-01表示2014年6月1日。
  • 表示时间一律采用hh:mm:ss方式,并在最后加一个大写字母Z表示UTC时间。例如23:00:10Z表示UTC时间23点0分10秒。
  • 凡涉及日期和时间合并表示时,在两者中间加大写字母T,例如2014-06-01T23:00:10Z表示UTC时间2014年6月1日23点0分10秒。

请求响应格式标准

  • HTTP请求,Querystring中参数的Key,为首字母小写的驼峰方式。如 upLoadId,partNumber等。
  • 所有用户自定义Meta,以x-bce-meta-*的形式放Header中,自定义Meta总大小不得超过2K。x-bce-meta-*的Key会被Server端统一按照小写进行处理。

例如:用户使用PutObject接口上传了x-bce-meta-DeMo:value,Server端会统一按照小写x-bce-meta-demo:value进行处理,用户在使用GetObject接口时,Sever端的返回值为x-bce-meta-demo:value。

  • 除RFC2616规定的标准Header外,其他Header以x-bce-*的形式定义。
  • 所有JSON中,Key均为首字母小写的驼峰方式。
  • 每个请求响应中均带有x-bce-request-id和x-bce-debug-id这两个Header。
  • Header中Date、Content-MD5、Content-Type、Content-Length等相关字段遵守RFC 2616约束。
  • 依据HTTP协议的规定,Content-MD5既要做MD5也要进行Base64编码,其计算方法如下:

    Content-MD5 = "Content-MD5" ":" md5-digest md5-digest = <base64 of 128 bit MD5 digest as per RFC 1864>

服务域名

AS API的服务域名为:

区域 服务端点Endpoint 协议
北京 as.bj.baidubce.com HTTP and HTTPS
广州 as.gz.baidubce.com HTTP and HTTPS
苏州 as.su.baidubce.com HTTP and HTTPS

公共请求头

头域 说明 是否必须
Authorization 包含Access Key与请求签名。 必须
x-bce-date 该请求创建的时间,表示日期一律采用YYYY-MM-DD方式,例如2014-06-01表示2014年6月1日。如果用户使用了标准的Date域,该头域可以不填。当两者同时存在时,以x-bce-date为准。 可选
x-bce-content-sha256 表示内容部分的SHA256签名的十六进制字符串,其中内容指HTTP Request Payload Body,即Content部分在被HTTP encode之前的原始数据。 可选

公共响应头

头域 说明
Content-Length RFC2616中定义的HTTP请求内容的类型。
x-bce-request-id 对应请求的requestId。

错误码

错误信息除了HTTP状态码以外,应同时在HTTP body中包含下表的参数,内容如下:

参数名 类型 说明
requestId String 导致该错误的requestId。
code String 表示具体错误类型。
message String 有关该错误的详细说明。

例如:

{ 
    "code":"IllegalRequestUrl", 
    "message":"The requested url belongs to domain which is not under acceleration",
    "requestId":" 81d0b05f-5ad4-1f22-8068-d5c9de60a1d7" 
}

公共错误码

错误码 消息 HTTP状态码 语义
AccessDenied Access denied. 403 Forbidden 无权限访问对应的资源
InappropriateJSON The JSON you provided was well-formed and valid, but not appropriate for this operation. 400 Bad Request 请求中的JSON格式正确,但语义上不符合要求。如缺少某个必需项,或者值类型不匹配等。出于兼容性考虑,对于所有无法识别的项应直接忽略,不应该返回这个错误。
InternalError We encountered an internal error. Please try again. 500Internal Server Error 所有未定义的其他错误。在有明确对应的其他类型的错误时(包括通用的和服务自定义的)不应该使用。
InvalidAccessKeyId The Access Key ID you provided does not exist in our records. 403 Forbidden Access Key ID不存在
InvalidHTTPAuthHeader The HTTP authorization header is invalid. Consult the service documentation for details. 400 Bad Request Authorization头域格式错误
InvalidHTTPRequest There was an error in the body of your HTTP request. 400 Bad Request HTTP body格式错误。例如不符合指定的Encoding等
InvalidURI Could not parse the specified URI. 400 Bad Request URI形式不正确。例如一些服务定义的关键词不匹配等。对于ID不匹配等问题,应定义更加具体的错误码,例如NoSuchKey。
MalformedJSON The JSON you provided was not well-formed. 400 Bad Request JSON格式不合法
InvalidVersion The API version specified was invalid. 404 Not Found URI的版本号不合法
OptInRequired A subscription for the service is required. 403 Forbidden 没有开通对应的服务
PreconditionFailed The specified If-Match header doesn't match the ETag header. 412 Precondition Failed 详见ETag
RequestExpired Request has expired. Timestamp date is XXX. 400 Bad Request 请求超时。XXX要改成x-bce-date的值。如果请求中只有Date,则需要将Date转换为datetime。
IdempotentParameterMismatch The request uses the same client token as a previous, but non-identical request. 403 Forbidden clientToken对应的API参数不一样。
SignatureDoesNotMatch The request signature we calculated does not match the signature you provided. Check your Secret Access Key and signing method. Consult the service documentation for details. 400 Bad Request Authorization头域中附带的签名和服务端验证不一致
相似文档
  • 查询伸缩组列表 查询所有伸缩组的详细信息。 请求结构 GET /v{version}/asGroup?marker={marker}&maxKeys={maxKeys}&groupName={groupName} HTTP/1.1 Host: as.bj.baidubce.com Authorization: authorization string 请求头域 除公共头域外,无其它特殊头域。
  • Model对象定义 AsGroup 参数名称 类型 描述 groupId String 伸缩组ID,符合BCE规范,是一个定长字符串,且只允许包含大小写字母、数字、连字号(-)和下划线(_)。 groupName String 伸缩组名称,支持大小写字母、数字、中文以及-_ /.特殊字符,必须以字母开头,长度1-65。
  • 运行环境 Java SDK工具包可在jdk1.7、jdk1.8环境下运行。 方式一:使用Maven安装 在Maven的pom.xml文件中添加bce-java-sdk的依赖: com.baidubce bce-java-sdk {version} 其中,{version}为版本号,可以在SDK下载页面找到。
  • AsGroupClient是Auto Scaling Group服务的客户端,为开发者与AsGroup服务进行交互提供了一系列的方法。 新建AsGroupClient 通过AK/SK方式访问AsGroup 用户可以参考如下代码新建一个AsGroupClient:
  • 查询伸缩组列表 查询所有伸缩组的详细信息 public static void listAsGroup(AsGroupClient asGroupClient, String groupName, String marker, int maxKeys) { ListAsGroupRequest listAsGroupRequest = new ListAsGroupRequest(); // 可选,伸缩组名称 listAsGroupRequest.setGroupName(groupName);
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部