云服务器内容精选

  • 生成签名 生成签名的方式和APP认证相同,用AK代替APP认证中的AppKey,SK替换APP认证中的AppSecret,即可完成签名和请求。您可使用Java、Go、Python、C#、JavaScript、PHP、C++、C、Android进行签名和访问。 客户端须注意本地时间与时钟服务器的同步,避免请求消息头X-Sdk-Date的值出现较大误差。 API网关(即API管理)除了校验时间格式外,还会校验该时间值与网关收到请求的时间差,如果时间差大于15分钟,API网关将拒绝请求。
  • 生成AK、SK 如果已生成过AK/SK,则可跳过此步骤,找到原来已下载的AK/SK文件,文件名一般为:credentials.csv。 如下图所示,文件包含了租户名(User Name),AK(Access Key Id),SK(Secret Access Key)。 图1 credential.csv文件内容 AK/SK生成步骤: 登录控制台。 将鼠标移至用户名,在下拉列表中单击“我的凭证”。 单击“访问密钥”。 单击“新增访问密钥”,进入“新增访问密钥”页面。 按照界面提示输入验证码或登录密码,单击“确定”,下载密钥,请妥善保管。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 permissions 是 Array of strings 白名单记录列表。每个白名单记录的格式为iam:domain::授权账号ID。 其中,授权账号ID是长度为32的字符串,只包含英文字母(a-f)或数字;也可为*,表示允许全部用户连接。 数组长度:1 - 50
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 x-request-id String 请求编号 表5 响应Body参数 参数 参数类型 描述 permissions Array of strings 白名单记录列表。每个白名单记录的格式为iam:domain::授权账号ID。 其中,授权账号ID是长度为32的字符串,只包含英文字母(a-f)或数字;也可为*,表示允许全部用户连接。 数组长度:1 - 50 状态码: 401 表6 响应Header参数 参数 参数类型 描述 x-request-id String 请求编号 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表8 响应Header参数 参数 参数类型 描述 x-request-id String 请求编号 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表10 响应Header参数 参数 参数类型 描述 x-request-id String 请求编号 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表12 响应Header参数 参数 参数类型 描述 x-request-id String 请求编号 表13 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 OK { "permissions" : [ "iam:domain::930ba6b0ea64457e8ed1861e596c7a9a" ] } 状态码: 401 Unauthorized { "error_code" : "APIC.7102", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIC.7106", "error_msg" : "No permissions to request for the method" } 状态码: 404 Resource Not Found { "error_code" : "APIC.7314", "error_msg" : "Endpoint service not found" } 状态码: 500 Internal Server Error { "error_code" : "APIC.9007", "error_msg" : "Failed to execute VCPEP request" }
  • URI POST /v2/{project_id}/apigw/instances/{instance_id}/vpc-endpoint/permissions/batch-add 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 strategy_id 是 String 流控策略编号 最小长度:1 最大长度:65 publish_ids 是 Array of strings API的发布记录编号
  • 响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 throttle_applys Array of ThrottleApiBinding objects API与流控策略的绑定关系列表 表5 ThrottleApiBinding 参数 参数类型 描述 publish_id String API的发布记录编号 scope Integer 策略作用域,取值如下: 1:整个API 2: 单个用户 3:单个APP 目前只支持1 strategy_id String 流控策略的ID apply_time String 绑定时间 id String 绑定关系的ID 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 功能介绍 将流控策略应用于API,则所有对该API的访问将会受到该流控策略的限制。 当一定时间内的访问次数超过流控策略设置的API最大访问次数限制后,后续的访问将会被拒绝,从而能够较好的保护后端API免受异常流量的冲击,保障服务的稳定运行。 为指定的API绑定流控策略,绑定时,需要指定在哪个环境上生效。同一个API发布到不同的环境可以绑定不同的流控策略;一个API在发布到特定环境后只能绑定一个默认的流控策略。
  • 响应示例 状态码: 201 Created { "throttle_applys" : [ { "publish_id" : "40e7162dc6b94bbbbb1a60d2a24b1b0c", "scope" : 1, "strategy_id" : "3437448ad06f4e0c91a224183116e965", "apply_time" : "2020-08-03T12:25:52.257613934Z", "id" : "3e06ac135e18477e918060d3c59d6f6a" } ] } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3005", "error_msg" : "Request throttling policy 3437448ad06f4e0c91a224183116e965 does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 201 表13 响应Body参数 参数 参数类型 描述 vpc_channel_id String vpc通道编号 api_group_id String api分组编号 apis Array of MicroserviceImportApiResp objects 导入的api列表 表14 MicroserviceImportApiResp 参数 参数类型 描述 name String API名称 req_uri String API请求路径 req_method String API请求方法 id String API编号 match_mode String API的匹配方式 SWA:前缀匹配 NORMAL:正常匹配(绝对匹配) 默认:SWA 状态码: 400 表15 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表16 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表17 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表18 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表19 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 201 success 示例 1 { "vpc_channel_id" : "9d075537ff314a5e8e5c98bf29549b89", "api_group_id" : "6329eaa17736412b988536179cd8d662", "apis" : [ { "id" : "72e667087fe140529f81995b213dadbe", "name" : "api1", "req_uri" : "/test", "req_method" : "ANY", "match_mode" : "SWA" } ] } 示例 2 { "vpc_channel_id" : "3f56e9d4a747486caa4cfb59a47b6854", "api_group_id" : "6329eaa17736412b988536179cd8d662", "apis" : [ { "id" : "3b52e2c05710470b88e283deb0a805e6", "name" : "dp_b09d", "req_uri" : "/test", "req_method" : "ANY", "match_mode" : "SWA" } ] } 状态码: 400 Bad Request { "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3030", "error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 请求示例 导入 CS E微服务 { "group_info" : { "group_id" : "6329eaa17736412b988536179cd8d662", "group_name" : "", "app_id" : "" }, "service_type" : "CSE", "protocol" : "HTTPS", "apis" : [ { "name" : "api1", "req_method" : "ANY", "req_uri" : "/test", "match_mode" : "SWA" } ], "backend_timeout" : 5000, "auth_type" : "NONE", "cors" : false, "cse_info" : { "engine_id" : "fde2c21c-5bd9-40f0-ad6a-81e4b6782805a", "service_id" : "92919f98fba80c2df13cc285c983946c90e635ff", "version" : "1.0.0" } } 导入CCE工作负载,负载类型为无状态负载Deployment { "group_info" : { "group_id" : "6329eaa17736412b988536179cd8d662", "group_name" : "", "app_id" : "" }, "service_type" : "CCE", "protocol" : "HTTPS", "apis" : [ { "name" : "dp", "req_method" : "ANY", "req_uri" : "/test", "match_mode" : "SWA" } ], "backend_timeout" : 5000, "auth_type" : "NONE", "cors" : false, "cce_info" : { "cluster_id" : "11069278-f9f8-11ec-b1b2-0255ac100b06", "namespace" : "test", "workload_type" : "deployment", "app_name" : "dp", "port" : 80, "labels" : [ { "label_name" : "cluster_id", "label_value" : "c429700c-5dc4-482a-9c0e-99f6c0635113" } ] } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 group_info 是 MicroserviceGroup object 导入微服务的API分组信息 service_type 是 String 微服务中心类型。 CSE:CSE微服务注册中心 CCE: CCE云容器引擎(工作负载) CCE_SERVICE: CCE云容器引擎(Service) NACOS: Nacos注册中心,nacos_info必填。 protocol 否 String API网关访问微服务的请求协议 HTTP HTTPS 缺省值:HTTPS apis 是 Array of MicroserviceApiCreate objects 导入的api列表 数组长度:1 - 50 backend_timeout 否 Integer APIG请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000,默认5000 单位:毫秒。 最小值:1 缺省值:5000 auth_type 否 String API的认证方式,默认无认证。 NONE:无认证 APP:APP认证 IAM:IAM认证 缺省值:NONE cors 否 Boolean 是否支持跨域,默认不支持 true:支持 false:不支持 缺省值:false cse_info 否 MicroServiceInfoCSECreate object CSE微服务详细信息,service_type为CSE时必填 cce_info 否 MicroServiceInfoCCECreate object CCE云容器引擎工作负载信息,service_type为CCE时必填 cce_service_info 否 MicroServiceInfoC CES erviceCreate object CCE云容器引擎Service信息,service_type为CCE_SERVICE时必填 nacos_info 否 MicroServiceInfoNacosBase object nacos基础信息。 表4 MicroserviceGroup 参数 是否必选 参数类型 描述 group_id 否 String 指定已有的分组,为空时创建新的分组 最小长度:0 最大长度:64 group_name 否 String API分组的名称,group_id为空时必填。 支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号,且只能以英文、汉字和数字开头,3-255个字符。 说明: 中文字符必须为UTF-8或者unicode编码。 最小长度:3 最大长度:255 app_id 否 String group_id为空时必填,指定新分组所属的集成应用 最小长度:0 最大长度:64 表5 MicroserviceApiCreate 参数 是否必选 参数类型 描述 name 否 String API名称。 支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号,且只能以英文、汉字和数字开头。 说明: 中文字符必须为UTF-8或者unicode编码。 最小长度:3 最大长度:255 req_method 否 String API的请求方式 缺省值:ANY req_uri 是 String 请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。 /apic/health_check为APIG预置的健康检查路径,当req_method=GET时不支持req_uri=/apic/health_check。 说明: 需要服从URI规范。 最小长度:1 最大长度:512 match_mode 否 String API的匹配方式 SWA:前缀匹配 NORMAL:正常匹配(绝对匹配) 默认:NORMAL 缺省值:SWA 表6 MicroServiceInfoCSECreate 参数 是否必选 参数类型 描述 engine_id 是 String 微服务引擎编号 最大长度:64 service_id 是 String 微服务编号 最大长度:64 version 是 String 微服务版本 最大长度:64 表7 MicroServiceInfoCCECreate 参数 是否必选 参数类型 描述 cluster_id 是 String 云容器引擎集群编号 最大长度:64 namespace 是 String 命名空间 最大长度:64 workload_type 是 String 工作负载类型 deployment:无状态负载 statefulset:有状态负载 daemonset:守护进程集 app_name 否 String APP名称。支持汉字,英文,数字,点,中划线,下划线,且只能以英文和汉字开头,1-64字符。 说明: 中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 label_key 否 String 服务标识名。支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号,且只能以英文、汉字和数字开头,1-64个字符。 说明: 中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 label_value 否 String 服务标识值。支持汉字,英文,数字,点,中划线,下划线,且只能以英文和汉字开头,1-64字符。 说明: 中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 version 否 String 工作负载的版本 最大长度:64 port 是 Integer 工作负载的监听端口号 最小值:1 最大值:65535 labels 否 Array of MicroserviceLabel objects 工作负载的标签列表。 表8 MicroserviceLabel 参数 是否必选 参数类型 描述 label_name 是 String 标签名称。 以字母或者数字开头和结尾,由字母、数字、连接符('-')、下划线('_')、点号('.')组成且63个字符之内。 最小长度:1 最大长度:63 label_value 是 String 标签值。 以字母或者数字开头和结尾,由字母、数字、连接符('-')、下划线('_')、点号('.')组成且63个字符之内。 最小长度:1 最大长度:63 表9 MicroServiceInfoCCEServiceCreate 参数 是否必选 参数类型 描述 cluster_id 是 String 云容器引擎集群编号 最大长度:64 namespace 是 String 命名空间。1-63字符。只能包含小写字母、数字,以及 '-',必须以字母开头,必须以字母数字结尾。 最小长度:1 最大长度:63 service_name 是 String Service名称。支持汉字,英文,数字,点,中划线,下划线,且只能以英文和汉字开头,1-64字符。 说明: 中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 port 否 Integer Service的监听端口号。如果是多端口Service,用户需填写一个端口。 最小值:1 最大值:65535 表10 MicroServiceInfoNacosBase 参数 是否必选 参数类型 描述 namespace 否 String 命名空间ID,当选择默认命名空间public时,此项为空。由字母、数字、连接符('-')、下划线('_')组成且64个字符之内。 最小长度:0 最大长度:64 cluster_name 否 String 集群名称,默认为DEFAULT。由字母、数字、连接符('-')、下划线('_')组成且64个字符之内。 最小长度:0 最大长度:64 group_name 否 String 分组名称,默认为DEFAULT_GROUP。由字母、数字、连接符('-')、下划线('_')、点号('.')、冒号(':')组成且128个字符之内。 最小长度:0 最大长度:128 service_name 是 String 微服务名称。不包含中文和@@,不得以@开头,512个字符以内。 最小长度:1 最大长度:512 server_config 是 Array of NacosServerConfig objects nacos服务端配置信息。 数组长度:1 - 9 user_info 是 NacosUserInfo object nacos用户信息。 表11 NacosServerConfig 参数 是否必选 参数类型 描述 ip_address 是 String nacos服务端IP地址。不包含中文字符。 最小长度:7 最大长度:128 port 是 Integer nacos服务端端口号。取值范围1 ~ 65535。 最小值:1 最大值:65535 grpc_port 否 Integer nacos服务端gRPC端口号,默认为port+1000。取值范围1 ~ 65535。 最小值:1 最大值:65535 表12 NacosUserInfo 参数 是否必选 参数类型 描述 user_name 是 String nacos用户名。 最小长度:1 最大长度:64 password 是 String nacos密码。 最小长度:1 最大长度:64
  • 响应示例 状态码: 200 OK { "total" : 1, "size" : 1, "apis" : [ { "api_id" : "8aa097b00e9843efabc9c593d11b769d", "api_name" : "测试API", "type" : 1, "req_protocol" : "HTTP", "req_method" : "GET", "req_uri" : "/test", "auth_type" : "IAM", "match_mode" : "NORMAL", "remark" : "API描述", "group_id" : "b9be707660c5406394f8973e087bae20", "group_name" : "DEFAULT", "roma_app_id" : "", "plugin_attach_id" : "8aa097b00e9843efacb9c593d11b769e", "publish_id" : "4739b3s5b729aa2237ef0d66dc635276", "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID", "env_name" : "RELEASE", "attached_time" : "2020-11-02T12:31:23.353Z" } ] } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:instance_id. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3068", "error_msg" : "Plugin b294018ee0554156a875b3513e02e5b9 does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }