华为云用户手册

  • 实施步骤 安装Extundelete。 登录弹性云服务器。 依次执行以下命令,安装 Extundelete 所需依赖及库。 yum install libcom_err e2fsprogs-devel yum install gcc gcc-c++ 在出现如下提示时,输入“y”。 Installed size: 25 MIs this OK [y/d/N]: y 执行以下命令,下载 Extundelete 源码。 wget https://github.com/curu/extundelete/archive/refs/tags/v1.0.tar.gz 执行以下命令,解压 v1.0.tar.gz 文件。 tar xf v1.0.tar.gz 依次执行以下命令,进行编译安装。 cd extundelete-1.0 ./configure make 执行以下命令,进入 src 目录,可查看已编译好的 Extundelete 文件。 cd ./src 执行以下命令,尝试恢复数据。 ./extundelete --restore-all /dev/对应盘 恢复后的文件位于同级目录的“RECOVERED_FILES”文件夹下。
  • 方案 在已搭建的E CS 上通过配置内网DNS,由内网DNS解析OBS域名,即可实现在ECS上经由内网访问OBS。访问过程示意图如图1所示。 图1 内网访问OBS示意图 示意图中各服务说明如表1所示。 表1 服务说明 服务 说明 虚拟私有云(VPC) VPC主要负责为ECS构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云中资源的安全性,简化用户的网络部署。 子网是VPC中用来为ECS提供IP地址管理、DNS服务的一个网络,子网内ECS的IP地址都属于该子网。 云解析服务(DNS) DNS提供内网DNS,专门用于处理华为云内网域名以及OBS域名的解析请求,简化域名解析流程,减少因访问公网产生的流量费用。 对于Windows ECS,推荐使用OBS Browser+工具,实现内网访问OBS的目的,详细操作请参见: 在Windows ECS上使用OBS Browser+通过内网访问OBS 对于Linux ECS,推荐使用obsutil工具,实现内网访问OBS的目的,详细操作请参见: 在Linux ECS上使用obsutil通过内网访问OBS 当在ECS上通过内网访问OBS时,即可在内网进行数据读取、备份归档等业务,而不影响外网带宽。
  • 场景介绍 某企业基于弹性云服务器(Elastic Cloud Server,ECS)构建好基础的业务后,随着数据增长,硬盘已无法满足大量的图片、视频等数据存取需求。了解到华为云提供有海量、弹性的 云存储 服务OBS后,决定将OBS作为数据存储资源池,以减轻服务器负担。 在ECS上可以通过公网和华为云内网两种网络访问OBS。当有存取对象数据的需求时,公网方式响应速度会因为网络质量而受到影响,读取数据还将收取一定的流量费用。为最大化的优化性能、节省开支,企业管理者希望通过内网的方式访问OBS。 当通过内网访问OBS时,需要确保待访问的OBS资源与ECS属于同一个区域,如果不属于同一个区域,将采用公网访问。
  • 验证Sharepoint 2016 通过配置的Sharepoint管理中心的URL,打开SharePoint的管理中心。 图1 SharePoint管理中心 选择Sharepoint Farm的配置方法,本操作采用自主配置,单击“Cancel”。 若想要通过向导配置Sharepoint Farm,可以单击"Start the Wizard"。 图2 SharePoint Farm配置 在Sharepoint管理中心,单击“Create site collections”创建一个Sharepoint站点。 图3 创建Sharepoint站点 根据界面提示内容,设置Sharepoint站点参数。 图4 设置Sharepoint站点参数 创建Sharepoint Top-level站点成功,单击链接打开对应页面。 图5 创建SharePointTop-level站点成功 在打开的Sharepoint站点,您可以根据界面提示设计您的网页。 图6 Sharepoint验证 父主题: 搭建Microsoft SharePoint Server 2016
  • 导入到新分组 将API定义导入到一个新的分组,导入过程中系统会自动创建一个新的API分组,并将导入的API归属到该分组。 适用于将一份全新且完整的API导入到API网关。 导入API前,请注意以下事项: API网关中API分组和API的配额满足需求。 使用Swagger info的title作为API分组名称,新创建的API分组名称不能与已有的API分组名称重名。 导入的API定义中,如果存在冲突,那么根据系统导入的先后顺序,先导入的API会显示导入成功,后导入的API会显示导入失败。例如导入的API定义中存在2个名称相同或请求路径相同的API,那么先导入的API会显示导入成功,后导入的会显示导入失败。 如果选择扩展覆盖,当导入API的扩展定义项名称与已有策略(ACL,流量控制等)名称相同时,则会覆盖已有策略(ACL,流量控制等)。 导入的API不会自动发布到环境,导入时可以选择“立即发布”或者“稍后发布”,您可以自行选择策略。
  • 导入到已有分组 将API定义导入到一个已有的分组,导入过程中不会删除分组中已有的API,只是将新增的API导入分组。 适用于将一个新的API或者一个修改后的API导入到已有的分组。 导入API前,请注意以下事项: API网关中API的配额满足需求。 导入的API定义与已有的API定义冲突时,您可以选择使用导入的API定义覆盖已有的API定义,或者保留已有的API定义,此时导入的API定义会显示导入失败。 如果选择扩展覆盖,当导入API的扩展定义项名称与已有策略(ACL,流量控制等)名称相同时,则会覆盖已有策略(ACL,流量控制等)。 导入的API不会自动发布到环境,导入时可以选择“立即发布”或者“稍后发布”,您可以自行选择策略。
  • 接口调用示例 本小节介绍使用API的基本流程。 获取相关信息。 已获取 IAM 的Endpoint,具体请参见地区和终端节点。 在管理控制台,将鼠标移至用户名,在下拉列表中单击“我的凭证”,查看“项目ID”。 获取用户Token,并设置成环境变量,Token用于后续调用其他接口鉴权。 执行以下命令,获取用户Token。 curl -X POST https://{iam_endpoint}/v3/auth/tokens -H 'content-type: application/json' -d '{"auth": {"identity": {"methods": ["password"],"password": {"user": {"name": "{user_name}","domain": {"name": "{user_name}"},"password": "{password}"}}},"scope": {"project": {"id": "{project_id}"}}}}' -vk 上述命令中,部分参数请参见以下说明进行修改(具体请参考《 统一身份认证 服务API参考》): {iam_endpoint}替换为前提条件中获取的IAM的Endpoint。 {project_id}替换为前提条件中获取的项目ID。 {user_name}和{password}分别替换为连接IAM服务器的用户名和密码。 响应Header中“X-Subject-Token”的值即为Token: X-Subject-Token:MIIDkgYJKoZIhvcNAQcCoIIDgzCCAxxxxxx38CAQExDTALBglghkgBZQMEAgEwg 使用如下命令将token设置为环境变量,方便后续事项。 export Token={X-Subject-Token} X-Subject-Token即为3.a获取到的token,命令示例如下。 export Token=MIIDkgYJKoZIhvcNAQcCoIIDgzCCAxxxxxx38CAQExDTALBglghkgBZQMEAgEwg 调用API,请参考认证前准备获取域名、请求方法和URL。参数请根据实际情况填写。 curl -X 请求方法 域名+URL -H "x-auth-token: $Token" -vk
  • 兼容性说明 只支持Swagger 2.0规范。 API网关导入或导出的Swagger对象,与API网关对象定义的映射关系。 请求参数类型与API网关参数类型差异。 API请求路径模板语法差异。 导入API时支持的API网关扩展字段。 表1 Swagger对象与API网关对象定义的映射关系 Swagger对象 API网关对象 导入时行为 导出时行为 info.title API分组名称 导入到新的分组:新的分组名称 导入到已有分组:未使用 支持汉字、英文、数字、下划线,且只能以英文或汉字开头,3 ~ 64字符 填充为分组名称 info.description API分组描述 导入到新的分组:新的分组描述 导入到已有分组:未使用 填充为分组描述信息 info.version 版本 未使用 用户指定 未指定则使用当前时间 host API分组域名 未使用 优先使用API分组的第一个自定义域名 如果分组未绑定自定义域名则使用分组的独立域名 basePath - 将与每条API的请求路径拼接起来使用 未填充 paths.path API请求路径 与basePath拼接起来作为API请求路径 填充为API请求路径 operation.operationId API名称 作为API名称 填充为API名称 operation.description API描述 作为API描述 填充为API描述 operation.parameters API前端请求参数 作为API请求参数 填充为API请求参数 operation.schemes API前端请求协议 作为API请求协议 填充为API请求协议 operation.responses - 未使用 固定填充default响应定义 operation.security API认证方式 API认证方式 结合x-apigateway-auth-type 填充为API认证方式 结合x-apigateway-auth-type 表2 请求参数类型和API网关参数类型差异 Swagger类型 API网关类型 支持的参数属性字段 integer long float double number maximum minimum default enum required description string string maxLength minLength default enum required description 其它类型 不支持 不支持 表3 API请求路径模板语法差异 语法 Swagger类型 API网关 /users/{userName} 支持 支持 /users/prefix-{userName} /users/{userName}-suffix /users/prefix-{userName} -suffix 支持 前端请求定义不支持 后端请求定义支持 /users/{proxy+} 不支持 前端请求定义支持 后端请求定义不支持
  • 限制说明 API网关参数限制,如下所示。 API网关暂不支持formData和body位置的请求参数定义。 API网关暂不支持consumes和produces定义。 API网关中,header位置的参数名称,不区分大小写。 后端策略限制,如下所示。 默认后端类型为HTTP,策略后端支持HTTP、HTTP-VPC 默认后端类型为HTTP-VPC,策略后端支持HTTP、HTTP-VPC 默认后端类型为function,策略后端支持function 默认后端类型为mock,策略后端支持mock
  • 如果您是API提供者 调用接口有如下认证方式,您可以选择其中一种进行认证鉴权。 APP认证(推荐) 通过API网关提供的AppKey和AppSecret进行签名认证。 支持发布到云商店。 使用对象为API网关服务租户。 IAM认证 支持Token认证和AK/SK认证两种。 Token认证:通过Token认证调用请求。Token认证无需使用SDK签名,优先使用Token认证。 AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)签名调用请求。其签名方式和APP认证相似。 IAM认证不支持发布到云商店。使用对象为API网关服务租户。 自定义认证 如果您希望使用自己的认证方式,可以在函数服务中编写一个函数,将其作为您的认证服务。有关API调用的认证帮助,请参考创建用于前端自定义认证的函数。 无认证 API网关对请求不进行认证。 不支持发布到云商店。 使用对象为任何公网用户。
  • 导入FUNCTION类型后端服务API 包含IAM认证和请求参数编排的GET方法API定义,后端服务类型为FunctionGraph。 Swagger示例: swagger: "2.0"info: title: "importFunctionEndpoint" description: "import apis" version: "1.0"host: "api.account.com"paths: '/function/{name}': get: operationId: "invokeFunction" description: "invoke function by name" security: - apig-auth-iam: [] schemes: - https parameters: - name: "test" description: "authorization token" type: "string" in: "header" required: true - name: "name" description: "function name" type: "string" in: "path" required: true responses: "200": description: "function result" x-apigateway-request-type: "public" x-apigateway-cors: true x-apigateway-match-mode: "NORMAL" x-apigateway-backend: type: "FUNCTION" parameters: - name: "functionName" value: "name" in: "query" origin: "REQUEST" description: "funtion name" - name: "X-Invoke-User" value: "apigateway" in: "header" origin: "CONSTANT" description: "invoke user" functionEndpoints: function-urn: "your function urn address" version: "your function version" invocation-type: "async" timeout: 30000securityDefinitions: apig-auth-app: in: header name: Authorization type: apiKey x-apigateway-auth-type: AppSigv1 apig-auth-iam: in: header name: unused type: apiKey x-apigateway-auth-type: IAM 父主题: 导入API示例
  • x-apigateway-access-controls.policy 含义:访问控制策略定义。 作用域:x-apigateway-access-controls 示例: x-apigateway-access-controls: customAccessControlName: acl-type: "DENY" entity-type: "IP" value: 127.0.0.1,192.168.0.1/16 表1 参数说明 参数 是否必选 类型 说明 acl-type 是 String 访问控制行为,支持PERMIT、DENY entity-type 是 String 访问控制对象,仅支持IP value 是 String 访问控制策略值,多个值以“,”间隔 父主题: x-apigateway-access-controls
  • x-apigateway-ratelimits.policy 含义:流控策略定义。 作用域:x-apigateway-ratelimits 示例: x-apigateway-ratelimits: customRatelimitName: api-limit: 200 app-limit: 200 user-limit: 200 ip-limit: 200 interval: 1 unit: MINUTE shared: false special: - type: USER limit: 100 instance: xxxxxxx 表1 参数说明 参数 是否必选 类型 说明 api-limit 是 Number API访问次数限制 user-limit 否 Number 用户访问次数限制 app-limit 否 Number 应用访问次数限制 ip-limit 否 Number 源IP访问次数限制 interval 是 Number 流控策略时间周期 unit 是 String 流控策略时间周期单位,支持SECOND、MINUTE、HOUR、DAY shared 否 Boolean 是否共享流控策略 special 否 x-apigateway-ratelimits.policy.special 对象数组 特殊流控策略 父主题: x-apigateway-ratelimits
  • x-apigateway-ratelimits.policy.special 含义:特殊流控策略定义。 作用域:x-apigateway-ratelimits.policy 示例: x-apigateway-ratelimits: customRatelimitName: api-limit: 200 app-limit: 200 user-limit: 200 ip-limit: 200 interval: 1 unit: MINUTE shared: false special: - type: USER limit: 100 instance: xxxxxxxx 表1 参数说明 参数 是否必选 类型 说明 type 是 String 特殊流控策略类型,支持APP、USER limit 是 Number 访问次数 instance 是 String 特殊APP或USER的对象标识 父主题: x-apigateway-ratelimits
  • 步骤1:构造规范请求 使用APP方式进行签名与认证,首先需要规范请求内容,然后再进行签名。客户端与API网关使用相同的请求规范,可以确保同一个HTTP请求的前后端得到相同的签名结果,从而完成身份校验。 HTTP请求规范伪代码如下: CanonicalRequest = HTTPRequestMethod + '\n' + CanonicalURI + '\n' + CanonicalQueryString + '\n' + CanonicalHeaders + '\n' + SignedHeaders + '\n' + HexEncode(Hash(RequestPayload)) 通过以下示例来说明规范请求的构造步骤。 假设原始请求如下: GET https://c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.com/app1?b=2&a=1 HTTP/1.1Host: c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.comX-Sdk-Date: 20191111T093443Z 构造HTTP请求方法(HTTPRequestMethod),以换行符结束。 HTTP请求方法,如GET、PUT、POST等。请求方法示例: GET 添加规范URI参数(CanonicalURI),以换行符结束。 释义: 规范URI,即请求资源路径,是URI的绝对路径部分的URI编码。 格式: 根据RFC 3986标准化URI路径,移除冗余和相对路径部分,路径中每个部分必须为URI编码。如果URI路径不以“/”结尾,则在尾部添加“/”。 举例: 示例中的URI:/app1,此时规范的URI编码为: GET/app1/ 计算签名时,URI必须以“/”结尾。发送请求时,可以不以“/”结尾。 添加规范查询字符串(CanonicalQueryString),以换行符结束。 释义: 查询字符串,即查询参数。如果没有查询参数,则为空字符串,即规范后的请求为空行。 格式: 规范查询字符串需要满足以下要求: 根据以下规则对每个参数名和值进行URI编码: 请勿对RFC 3986定义的任何非预留字符进行URI编码,这些字符包括:A-Z、a-z、0-9、-、_、.和~。 使用%XY对所有非预留字符进行百分比编码,其中X和Y为十六进制字符(0-9和A-F)。例如,空格字符必须编码为%20,扩展UTF-8字符必须采用“%XY%ZA%BC”格式。 对于每个参数,追加“URI编码的参数名称=URI编码的参数值”。如果没有参数值,则以空字符串代替,但不能省略“=”。 例如以下含有两个参数,其中第二个参数parm2的值为空。 parm1=value1&parm2= 按照字符代码以升序顺序对参数名进行排序。例如,以大写字母F开头的参数名排在以小写字母b开头的参数名之前。 以排序后的第一个参数名开始,构造规范查询字符串。 举例: 示例中包含两个可选参数:a、b GET/app1/a=1&b=2 添加规范消息头(CanonicalHeaders),以换行符结束。 释义: 规范消息头,即请求消息头列表。包括签名请求中的所有HTTP消息头列表。消息头必须包含X-Sdk-Date,用于校验签名时间,格式为ISO8601标准的UTC时间格式:YYYYMMDDTHHMMSSZ。如果API发布到非RELEASE环境时,需要增加自定义的环境名称。 客户端须注意本地时间与时钟服务器的同步,避免请求消息头X-Sdk-Date的值出现较大误差。 API网关除了校验时间格式外,还会校验该时间值与网关收到请求的时间差,如果时间差大于15分钟,API网关将拒绝请求。 格式: CanonicalHeaders由多个请求消息头共同组成,CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ...,其中每个请求消息头(CanonicalHeadersEntry)的格式为Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\n' Lowercase表示将所有字符转换为小写字母的函数。 Trimall表示删除值前后的多余空格的函数。 最后一个请求消息头也会携带一个换行符。叠加规范中CanonicalHeaders自身携带的换行符,因此会出现一个空行。 消息头名称要保持唯一性,出现多个相同消息头名称时,无法完成认证。 举例: GET/app1/a=1&b=2host:c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.comx-sdk-date:20191111T093443Z 规范消息头需要满足以下要求: 将消息头名称转换为小写形式,并删除前导空格和尾随空格。 按照字符代码对消息头名称进行升序排序。 例如原始消息头为: Host: c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.com\nContent-Type: application/json;charset=utf8\nMy-header1: a b c \nX-Sdk-Date:20191111T093443Z\nMy-Header2: "a b c" \n 规范消息头为: content-type:application/json;charset=utf8\nhost:c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.com\nmy-header1:a b c\nmy-header2:"a b c"\nx-sdk-date:20191111T093443Z\n 添加用于签名的消息头声明(SignedHeaders),以换行符结束。 释义: 用于签名的请求消息头列表。通过添加此消息头,向API网关告知请求中哪些消息头是签名过程的一部分,以及在验证请求时API网关可以忽略哪些消息头。X-Sdk-date必须作为已签名的消息头。 格式: SignedHeaders = Lowercase(HeaderName0) + ';' + Lowercase(HeaderName1) + ";" + ... 已签名的消息头需要满足以下要求:将已签名的消息头名称转换为小写形式,按照字符代码对消息头进行排序,并使用“;”来分隔多个消息头。 Lowercase表示将所有字符转换为小写字母。 举例: 以下表示有两个消息头参与签名:host、x-sdk-date GET/app1/a=1&b=2host:c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.comx-sdk-date:20191111T093443Zhost;x-sdk-date 基于HTTP或HTTPS请求正文中的body体(RequestPayload),使用SHA-256哈希函数创建哈希值。 释义: 请求消息体。消息体需要做两层转换:HexEncode(Hash(RequestPayload)),其中Hash表示生成消息摘要的函数,当前支持SHA-256算法。HexEncode表示以小写字母形式返回摘要的Base-16编码的函数。例如,HexEncode("m") 返回值为“6d”而不是“6D”。输入的每一个字节都表示为两个十六进制字符。 计算RequestPayload的哈希值时,对于“RequestPayload==null”的场景,直接使用空字符串""来计算。 举例: 本示例为GET方法,body体为空。经过哈希处理的body(空字符串)如下: GET/app1/a=1&b=2host:c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.comx-sdk-date:20191111T093443Zhost;x-sdk-datee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 对构造好的规范请求进行哈希处理,算法与对RequestPayload哈希处理的算法相同。经过哈希处理的规范请求必须以小写十六进制字符串形式表示。 算法伪代码:Lowercase(HexEncode(Hash.SHA256(CanonicalRequest))) 经过哈希处理的规范请求示例: af71c5a7ef45310b8dc05ab15f7da50189ffa81a95cc284379ebaa5eb61155c0
  • 步骤2:创建待签字符串 对HTTP请求进行规范并取得请求的哈希值后,将其与签名算法、签名时间一起组成待签名字符串。 StringToSign = Algorithm + \n + RequestDateTime + \n + HashedCanonicalRequest 伪代码中参数说明如下。 Algorithm 签名算法。对于SHA 256,算法为SDK-HMAC-SHA256。 RequestDateTime 请求时间戳。与请求消息头X-Sdk-Date的值相同,格式为YYYYMMDDTHHMMSSZ。 HashedCanonicalRequest 经过哈希处理的规范请求。 上述例子得到的待签字符串为: SDK-HMAC-SHA25620191111T093443Zaf71c5a7ef45310b8dc05ab15f7da50189ffa81a95cc284379ebaa5eb61155c0
  • 步骤3:计算签名 将APP secret和创建的待签字符串作为加密哈希函数的输入,计算签名,将二进制值转换为十六进制表示形式。 伪代码如下: signature = HexEncode(HMAC(APP secret, string to sign)) 其中HMAC指密钥相关的哈希运算,HexEncode指转十六进制。伪代码中参数说明如表1所示。 表1 参数说明 参数名称 参数解释 APP secret 签名密钥 string to sign 创建的待签字符串 假设APP secret为FWTh5tqu2Pb9ZGt8NI09XYZti2V1LTa8useKXMD8,则计算得到的signature为: 01cc37e53d821da93bb7239c5b6e1640b184a748f8c20e61987b491e00b15822
  • 步骤4:添加签名信息到请求头 在计算签名后,将它添加到Authorization的HTTP消息头。Authorization消息头未包含在已签名消息头中,主要用于身份验证。 伪代码如下: Authorization header创建伪码:Authorization: algorithm Access=APP key, SignedHeaders=SignedHeaders, Signature=signature 需要注意的是算法与Access之前没有逗号,但是SignedHeaders与Signature之前需要使用逗号隔开。 得到的签名消息头为: Authorization: SDK-HMAC-SHA256 Access=FM9RLCN************NAXISK, SignedHeaders=host;x-sdk-date, Signature=01cc37e53d821da93bb7239c5b6e1640b184a748f8c20e61987b491e00b15822 得到签名消息头后,将其增加到原始HTTP请求内容中,请求将被发送给API网关,由API网关完成身份认证。身份认证通过后,该请求才会发送给后端服务进行业务处理。
  • x-apigateway-cors 含义:API网关定义的API请求是否支持跨域,boolean类型。 作用域:Operation Object(2.0) 示例: paths: '/path': get: x-apigateway-cors: true 表1 参数说明 参数 是否必选 类型 说明 x-apigateway-cors 是 boolean 是否支持开启跨域请求的标识。 true:支持 false:不支持 开启跨域访问的API请求,响应会增加如下头域: 头域名称 头域值 描述 Access-Control-Max-Age 172800 预检响应最大缓存时间 单位:s Access-Control-Allow-Origin * 允许任何域。 Access-Control-Allow-Headers X-Sdk-Date,X-Sdk-Nonce,X-Proxy-Signed-Headers,X-Sdk-Content-Sha256,X-Forwarded-For,Authorization,Content-Type,Accept,Accept-Ranges,Cache-Control,Range 正式请求允许的头域 Access-Control-Allow-Methods GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH 正式请求允许的方法 父主题: 扩展定义
  • x-apigateway-backend 含义:API网关定义的API后端服务定义。 作用域:Operation Object(2.0) 示例: paths: '/users/{userId}': get: produces: - "application/json" responses: default: description: "default response" x-apigateway-request-type: "public" x-apigateway-backend: type: "backend endpoint type" 表1 参数说明 参数 是否必选 类型 说明 x-apigateway-backend 是 String API后端服务定义 type 是 String 后端服务类型,支持HTTP、HTTP-VPC、FUNCTION、MOCK parameters 否 x-apigateway-backend.parameters 后端参数定义 httpEndpoints 否 x-apigateway-backend.httpEndpoints HTTP类型后端服务定义 httpVpcEndpoints 否 x-apigateway-backend.httpVpcEndpoints HTTP-VPC类型后端服务定义 functionEndpoints 否 x-apigateway-backend.functionEndpoints FUNCTION类型后端服务定义 mockEndpoints 否 x-apigateway-backend.mockEndpoints MOCK类型后端服务定义 父主题: x-apigateway-backend
  • x-apigateway-backend.parameters 含义:API网关定义的API后端参数定义。 作用域:x-apigateway-backend 示例: paths: '/users/{userId}': get: produces: - "application/json" parameters: - name: "X-Auth-Token" description: "认证token" type: "string" in: "header" required: true - name: "userId" description: "用户名" type: "string" in: "path" required: true responses: default: description: "default response" x-apigateway-request-type: "public" x-apigateway-backend: type: "HTTP" parameters: - name: "userId" value: "userId" in: "query" origin: "REQUEST" description: "用户名" - name: "X-Invoke-User" value: "apigateway" in: "header" origin: "CONSTANT" description: "调用者" 表1 参数说明 参数 是否必选 类型 说明 name 是 String 参数名称,由字母、数字、下划线、连线、点组成,以字母开头,最长32字节 header位置的参数名称不区分大小写 value 是 String 参数值,当参数来源为REQUEST时,值为请求参数名称 in 是 String 参数位置,支持header、query、path origin 是 String 参数映射来源,支持REQUEST、CONSTANT description 否 String 参数含义描述 父主题: x-apigateway-backend
  • x-apigateway-backend.functionEndpoints 含义:API网关定义的FUNCTION类型API后端服务定义。 作用域:x-apigateway-backend 示例: paths: '/users/{userId}': get: produces: - "application/json" parameters: - name: "X-Auth-Token" description: "认证token" type: "string" in: "header" required: true responses: default: description: "default response" x-apigateway-request-type: "public" x-apigateway-backend: type: "FUNCTION" functionEndpoints: version: "v1" function-urn: "" invocation-type: "synchronous" timeout: 30000 表1 参数说明 参数 是否必选 类型 说明 function-urn 是 String 函数URN地址 version 是 String 函数版本 invocation-type 是 String 函数调用类型,支持async、sync timeout 否 Number 函数超时时间,单位毫秒,缺省值为5000,取值范围为1 ~ 60000 父主题: x-apigateway-backend
  • x-apigateway-any-method 含义:API网关定义的API请求方法,用以匹配未指定定义的HTTP方法。 作用域:Path Item Object(2.0) 示例: paths: '/path': get: produces: - application/json responses: "200": description: "get response" x-apigateway-any-method: produces: - application/json responses: "200": description: "any response" 表1 参数说明 参数 是否必选 类型 说明 x-apigateway-any-method 否 String API请求方法 父主题: 扩展定义
  • x-apigateway-backend.httpVpcEndpoints 含义:API网关定义的HTTP VPC类型API后端服务定义。 作用域:x-apigateway-backend 示例: paths: '/users/{userId}': get: produces: - "application/json" parameters: - name: "X-Auth-Token" description: "认证token" type: "string" in: "header" required: true responses: default: description: "default response" x-apigateway-request-type: "public" x-apigateway-backend: type: "HTTP-VPC" httpVpcEndpoints: name: "vpc-test-1" scheme: "http" method: "GET" path: "/users" timeout: 30000 表1 参数说明 参数 是否必选 类型 说明 name 是 Array VPC通道名称 scheme 是 String 后端请求协议定义,支持http、https method 是 String 后端请求方法,支持GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH、ANY path 是 String 后端请求路径,支持路径变量 timeout 否 Number 后端请求超时时间,单位毫秒,缺省值为5000,取值范围为1 ~ 60000 父主题: x-apigateway-backend
  • x-apigateway-backend.mockEndpoints 含义:API网关定义的MOCK类型API后端服务定义。 作用域:x-apigateway-backend 示例: paths: '/users/{userId}': get: produces: - "application/json" parameters: - name: "X-Auth-Token" description: "认证token" type: "string" in: "header" required: true responses: default: description: "default response" x-apigateway-request-type: "public" x-apigateway-backend: type: "MOCK" mockEndpoints: result-content: "mocked" 表1 参数说明 参数 是否必选 类型 说明 result-content 是 String MOCK返回结果 父主题: x-apigateway-backend
  • x-apigateway-ratelimit 含义:引用流控策略。 作用域:Operation Object(2.0) 示例: paths: '/path': get: x-apigateway-ratelimit: 'customRatelimitName' 表1 参数说明 参数 是否必选 类型 说明 x-apigateway-ratelimit 否 String 流控策略 父主题: 扩展定义
  • x-apigateway-backend-policies 含义:API网关定义的API后端策略。 作用域:Operation Object(2.0) 示例: paths: '/users/{userId}': get: produces: - "application/json" responses: default: description: "default response" x-apigateway-request-type: "public" x-apigateway-backend: type: "backend endpoint type" x-apigateway-backend-policies: - type: "backend endpoint type" name: "backend policy name" conditions: - type: "equal/enum/pattern", value: "string", origin: "source/request_parameter", parameter_name: "string" 表1 参数说明 参数 是否必选 类型 说明 x-apigateway-backend-policies 否 x-apigateway-backend-policies 策略后端 type 是 String 后端服务类型,支持HTTP、HTTP-VPC、FUNCTION、MOCK name 是 String 后端策略名称 parameters 否 x-apigateway-backend.parameters 后端参数定义 httpEndpoints 否 x-apigateway-backend.httpEndpoints HTTP类型服务定义 httpVpcEndpoints 否 x-apigateway-backend.httpVpcEndpoints HTTP-VPC类型服务定义 functionEndpoints 否 x-apigateway-backend.functionEndpoints FUNCTION类型服务定义 mockEndpoints 否 x-apigateway-backend.mockEndpoints MOCK类型服务定义 conditions 是 x-apigateway-backend-policies.conditions 策略条件数组 父主题: x-apigateway-backend-policies
  • 导入MOCK类型后端服务API 包含无认证的GET方法API定义,后端服务类型为MOCK。 Swagger示例: swagger: "2.0"info: title: "importMockEndpoint" description: "import apis" version: "1.0"host: "api.account.com"paths: '/mock': get: operationId: "mock" description: "mock test" schemes: - http responses: "200": description: "mock result" x-apigateway-request-type: "private" x-apigateway-cors: true x-apigateway-match-mode: "NORMAL" x-apigateway-backend: type: "MOCK" mockEndpoints: result-content: "{\"message\": \"mocked\"}"securityDefinitions: apig-auth-app: in: header name: Authorization type: apiKey x-apigateway-auth-type: AppSigv1 apig-auth-iam: in: header name: unused type: apiKey x-apigateway-auth-type: IAM 父主题: 导入API示例
  • x-apigateway-access-control 含义:引用访问控制策略。 作用域:Operation Object(2.0) 示例: paths: '/path': get: x-apigateway-access-control: 'customAccessControlName' 表1 参数说明 参数 是否必选 类型 说明 x-apigateway-access-control 否 String 访问控制策略 父主题: 扩展定义
  • 导入HTTP类型后端服务API 包含IAM认证和请求参数编排的GET方法API定义,后端服务类型为HTTP。 Swagger示例: swagger: "2.0"info: title: "importHttpEndpoint10" description: "import apis" version: "1.0"host: "api.account.com"paths: '/http/{userId}': get: operationId: "getUser3" description: "get user by userId" security: - apig-auth-iam: [] schemes: - https parameters: - name: "test" description: "authorization token" type: "string" in: "header" required: true - name: "userId" description: "user id" type: "string" in: "path" required: true responses: "200": description: "user information" x-apigateway-request-type: "public" x-apigateway-cors: true x-apigateway-match-mode: "NORMAL" x-apigateway-backend: type: "HTTP" parameters: - name: "userId" value: "userId" in: "query" origin: "REQUEST" description: "user id" - name: "X-Invoke-User" value: "apigateway" in: "header" origin: "CONSTANT" description: "invoke user" httpEndpoints: address: "example.com" scheme: "http" method: "GET" path: "/users" timeout: 30000securityDefinitions: apig-auth-app: in: header name: Authorization type: apiKey x-apigateway-auth-type: AppSigv1 apig-auth-iam: in: header name: unused type: apiKey x-apigateway-auth-type: IAM 父主题: 导入API示例
共100000条