华为云用户手册

  • 方案架构 在已搭建的ECS上通过配置内网DNS,由内网DNS解析OBS域名,即可实现在ECS上经由内网访问OBS。访问过程示意图如图1所示。 图1 内网访问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属于同一个区域,例如都在华北-北京四。如果不属于同一个区域,将采用公网访问。
  • 配置ModelArts网络关联SFS Turbo ModelArts网络关联SFS Turbo后,可直接在ModelArts的Notebook开发及训练环境中挂载SFS Turbo共享文件系统,并访问其中的数据。 登录ModelArts管理控制台,创建网络并打通创建资源中创建的创建虚拟私有云和子网,详细步骤参见ModelArts网络。 单击1中创建生成的资源池“网络”所在行的“更多”,选择“关联sfsturbo”。 在“关联sfsturbo”弹窗中,选择创建资源中创建的SFS Turbo HPC型文件系统。 图2 关联SFS Turbo 选择完成后,单击“确定”创建关联。 使用过程中请不要解除关联,解除关联会导致ModelArts资源池无法访问SFS Turbo文件系统中的数据。 一个SFS Turbo文件系统最多可关联1个网络。
  • 方案架构 OBS提供通过计算MD5值的方式对上传下载的数据进行一致性校验。默认情况下,OBS不会进行一致性校验,您可以通过以下方式在上传下载时主动启用校验。 各种方式的一致性校验结果互通,即无论您使用以下何种方式在上传时通过了一致性校验,都可以使用其他方式在下载时校验一致性。 下载对象时,只有当待下载对象具有MD5值时,MD5校验才会生效。 启用MD5进行数据一致性校验会影响上传下载性能。 表1 校验数据一致性的方式 方式 说明 操作指导 obsutil 命令行工具,可以通过简单的一行命令实现上传下载,并且在命令中选择是否采用MD5校验。 使用obsutil校验上传对象的一致性 使用obsutil校验下载对象的一致性 OBS Browser+ 图形化界面工具,可以一键开启或关闭MD5校验,同时提供任务管理,方便查看校验状态。 使用OBS Browser+校验上传对象的一致性 使用OBS Browser+校验下载对象的一致性 OBS SDK 开发者可以通过OBS SDK进行二次开发,自行判断MD5校验结果,并根据实际业务进行结果处理。 使用OBS SDK校验上传对象的一致性 使用OBS SDK校验下载对象的一致性 上传对象时,OBS会先在客户端计算出对象的MD5值然后携带上传至OBS,OBS服务端再根据上传的对象内容计算出MD5值,最终与携带上传的MD5值进行对比,如果对比结果一致,对象上传成功,否则上传失败。使用MD5值对上传数据进行一致性校验的示意图如图1所示。 图1 校验上传对象的一致性 下载对象时,OBS会将对象已有的MD5值与根据下载的对象内容计算出来的MD5值进行对比,如果对比结果一致,对象下载成功,否则下载失败。使用MD5值对下载数据进行一致性校验的示意图如图2所示。 图2 校验下载对象的一致性
  • 背景介绍 现在越来越多的行业使用OBS存储图片、视频、软件包等静态资源文件,并将OBS作为网站、论坛、APP、游戏等业务的存储源。在需要获取这些静态资源时,用户通过URL直接从OBS请求数据,数据请求过程如图1所示。OBS能够很好的解决本地存储不够用的难题,但一般情况下文件只存储在一个区域,不同区域的用户访问OBS的响应速度存在差异。在需要频繁访问的场景下,直接访问OBS来获取相应文件,还会消耗大量的流量费用。 图1 从OBS获取数据过程
  • 方案说明 OBS提供低成本的存储,华为云CDN可以提供网站加速、文件下载加速和点播加速。将数据存放在OBS中然后通过配置CDN加速,这样构造的业务系统可以在降低成本的同时,提高终端用户使用感受。当终端用户发起访问请求时,会首先通过CDN查找对此域名响应速度最快的CDN节点,并查询此节点是否有缓存终端用户请求的内容。 在CDN节点没有缓存用户请求的数据或缓存到期的情况下,CDN加速访问OBS的示意图如图2所示。 图2 CDN加速访问OBS示意图(CDN无缓存) 当其他终端用户再次访问相同的数据时,CDN将直接返回缓存的数据给终端用户,而无需再向OBS发起访问请求。在CDN有缓存的情况下,CDN加速访问OBS的示意图如图3所示。 图3 CDN加速访问OBS示意图(CDN有缓存) 方案优势 低成本:OBS提供CDN回源流量包折扣方式,使CDN从OBS获取数据时流量费用更低。当数据缓存至CDN节点时,后续请求都将通过CDN回源流量计费,从而减少OBS费用。 高效率:华为云CDN具有加速资源丰富、节点分布广泛优势,保证将用户请求精准调度至更优的边缘节点,提供有效且稳定的加速效果。 适用场景 通过OBS提供文件下载业务的应用或服务。例如:通过http/https提供文件下载业务的网站、工具下载、游戏客户端、APP商店等。 通过OBS提供音视频点播业务的应用或服务。例如:在线教育类网站、在线视频分享网站、互联网电视点播平台、音乐视频点播APP等。
  • 上传静态网站文件 整理好待上传的静态网站文件,在OBS控制台重复执行以下步骤,直至所有的静态网站文件都上传至准备工作创建的桶中。 在支持批量上传的区域,OBS控制台每次最多支持100个文件同时上传,总大小不超过5GB,如果网站文件较多,建议使用OBS Browser+上传,具体操作步骤请参见使用OBS Browser+上传文件或文件夹。 单击待操作的桶名称,进入桶对象页面。 单击“上传对象”,系统将弹出如图1所示对话框。 图1 上传对象 添加待上传的文件。 不可加密上传静态网站文件。 存储类别建议选择“标准”。如果静态网站文件的存储类别为“归档存储”,则需要先恢复才能被访问,具体恢复步骤请参见恢复归档存储文件。 网站首页文件(index.html)和404错误页面(error.html),需要存放在桶的根目录下。 单击“上传”完成文件上传。 父主题: 实施步骤
  • 资源和成本规划 最佳实践中涉及的资源如下: 表1 资源说明 资源 资源说明 应用客户端(APP Client) 最终用户手机上的APP,负责向应用服务器发出申请临时安全凭证的请求,以及访问OBS完成数据上传或下载。 应用服务器(APP Server) 提供该Android/iOS应用的开发者开发的APP后台服务,用于用户管理和授权管理等。 对象存储服务(OBS) 华为云对象存储服务,负责处理移动应用的数据请求。 统一身份认证服务(IAM) 华为云统一身份认证服务,负责生成临时安全凭证。
  • 方案架构 使用的方式,可以将应用客户端的数据直传至OBS,或者将存储在OBS里的数据进行下载。具体流程如图1。 OBS支持使用临时安全凭证(临时AK/SK和securitytoken)进行授权访问,同时支持为临时安全凭证配置权限策略来指定使用该临时安全凭证时允许执行的操作。什么是临时安全凭证? 移动应用客户端可以使用指定了权限策略的临时安全凭证来访问OBS,实现数据直传,整个过程不会暴露用户的永久AK/SK,降低了账号泄露带来的安全风险。 图1 使用临时安全凭证直传OBS流程 角色分析如下: 应用客户端:即最终用户手机上的APP,负责向应用服务器发出申请临时安全凭证的请求,以及访问OBS完成数据上传或下载。 应用服务器:即提供该Android/iOS应用的开发者开发的APP后台服务,用于用户管理和授权管理等。 对象存储服务:即华为云对象存储服务,负责处理移动应用的数据请求。 统一身份认证服务:即华为云统一身份认证服务,负责生成临时安全凭证。 实现流程如下: 应用客户端向应用服务器申请一个临时操作凭证。 应用服务器向统一身份认证服务请求临时安全凭证。 统一身份认证服务向应用服务器返回临时安全凭证。 应用服务器将临时安全凭证发放给应用客户端。 应用客户端使用安全凭证完成OBS数据上传下载。
  • 方式一:使用obsutil校验上传对象的一致性 obsutil支持在上传对象时通过附加参数(vmd5)来校验数据的一致性。 以在Windows操作系统上传本地一个位于D盘的test.txt文件至mytestbucket桶为例,开启一致性校验的命令示例如下: obsutil cp D:\test.txt obs://mytestbucket/test.txt -vmd5 校验通过后,对象上传成功,系统显示Upload successfully的回显信息。
  • 方式二:使用OBS Browser+校验上传对象的一致性 OBS Browser+默认关闭MD5校验,在OBS Browser+上启用MD5校验一致性并上传对象的步骤如下: 登录OBS Browser+。 单击客户端右上方的,并选择“高级设置”。 勾选“MD5校验”,如图1所示。 图1 配置MD5校验 单击“确定”。 选择待上传文件的桶,上传文件。 如果MD5校验成功,则文件上传成功。 如果MD5校验失败,则文件上传失败,且在任务管理中提示失败原因:校验文件MD5失败。
  • 方式三:使用OBS SDK校验上传对象的一致性 OBS提供Java、Python等多种语言的SDK,各SDK通过在上传对象时设置对象的Content-MD5值以开启一致性校验。如何计算并设置对象MD5值请前往OBS SDK参见各自开发指南的setObjectMetadata接口。 此处以使用OBS Java SDK上传Windows本地D盘一个名为text.txt的文本文件至mytestbucket为例,上传过程使用MD5值校验数据一致性的示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 String endPoint = "https://your-endpoint"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); // 计算并设置MD5值 ObjectMetadata metadata = new ObjectMetadata(); File file = new File("D:\\text.txt"); FileInputStream fis = new FileInputStream(file); InputStream is = (InputStream)fis; String contentMd5 = obsClient.base64Md5(is); metadata.setContentMd5(contentMd5); // 带MD5值上传文件 obsClient.putObject("mytestbucket", "text.txt", file, metadata); 对象数据的MD5值必须经过Base64编码。 OBS服务端会将该MD5值与对象数据计算出的MD5值进行对比,如果不匹配则上传失败,返回HTTP 400错误。如果匹配,对象上传成功,返回HTTP 200状态码。
  • 在HDFS集群中增加配置项 在HDFS集群CONFIGS的ADVANCED配置项中增加Custom core-site.xml文件中的配置项,包括:fs.obs.access.key,fs.obs.secret.key,fs.obs.endpoint和fs.obs.impl。 fs.obs.access.key、fs.obs.secret.key、fs.obs.endpoint分别为用户的ak、sk和endpoint。访问密钥AK/SK和终端节点Endpoint请根据实际填写,AK/SK获取方式请参见访问密钥(AK/SK),Endpoint获取方式请参见终端节点(Endpoint)和访问域名。 fs.obs.impl配置为org.apache.hadoop.fs.obs.OBSFileSystem。 重启HDFS集群。
  • 更新OBSA-HDFS工具 下载与hadoop版本配套的OBSA-HDFS工具:下载地址。 下载OBSA-HDFS工具的jar包(如hadoop-huaweicloud-3.1.1-hw-53.8.jar)到/mnt/obsjar目录。 hadoop-huaweicloud-x.x.x-hw-y.jar包含义:前三位x.x.x为配套hadoop版本号;最后一位y为OBSA版本号,y值最大为最新版本。如:hadoop-huaweicloud-3.1.1-hw-53.8.jar,3.1.1是配套hadoop版本号,53.8是OBSA的版本号。 如hadoop版本为3.1.x,则选择hadoop-huaweicloud-3.1.1-hw-53.8.jar。 执行以下命令,将OBSA-HDFS工具jar包(如hadoop-huaweicloud-3.1.1-hw-53.8.jar)拷贝到如下目录中。 cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/share/hst/activity-explorer/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/hadoop-mapreduce/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/spark2/jars/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/tez/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /var/lib/ambari-server/resources/views/work/CAPACITY-SCHEDULER{1.0.0}/WEB-INF/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /var/lib/ambari-server/resources/views/work/FILES{1.0.0}/WEB-INF/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /var/lib/ambari-server/resources/views/work/WORKFLOW_MANAGER{1.0.0}/WEB-INF/lib/ ln -s /usr/hdp/3.0.1.0-187/hadoop-mapreduce/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/hadoop-mapreduce/hadoop-huaweicloud.jar
  • 增加Hive对接OBS的jar包 执行以下命令,在Hive Server节点创建auxlib文件夹。 mkdir /usr/hdp/3.0.1.0-187/hive/auxlib 执行以下命令,将OBSA-HDFS工具的jar包放到auxlib文件夹。 cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/hive/auxlib 重启Hive集群。
  • DES Teleport方式 Teleport是数据快递服务(Data Express Service,DES)专为30TB~500TB范围内数据搬迁至OBS而定制的存储设备,具有防尘防水、抗震抗压以及GPS锁定、传输加密等多重安全防护机制,配合离线传输的方式,能安全、高效的完成大规模数据搬迁。 图1 DES Teleport方式搬迁数据示意图 创建OBS桶 通过OBS控制台或OBS Browser+创建桶,用于存放原始数据。 创建DES Teleport服务单 DES提供Teleport和磁盘两种数据快递方式,在当前场景下选择Teleport方式。 接收并导入数据至Teleport 成功创建DES服务单后,用户将接收到由华为数据中心邮寄的Teleport设备。接着进行简单配置操作使Teleport与用户客户端连接起来,然后执行数据拷贝并将设备回寄给华为云数据中心。 启动数据传输 在华为云数据中心收到回寄的Teleport后,用户可以在DES控制台上输入访问密钥启动数据从Teleport到OBS指定桶的传输。数据传输完成后,用户可以通过DES控制台和OBS控制台两种途径查看传输结果。 具体操作步骤请参见Teleport方式详细指导。 父主题: 搬迁本地数据至OBS
  • 配置SFS Turbo和OBS联动 SFS Turbo HPC型文件系统支持无缝访问存储在对象存储OBS存储桶中的对象,您可以指定SFS Turbo内的文件目录与OBS对象存储桶进行关联。 登录SFS管理控制台,在左侧导航窗格中选择“SFS Turbo”。 在文件系统列表中,单击创建资源中创建的HPC型文件系统,进入文件系统详情页面。 进入页签“OBS绑定目标”,单击“绑定OBS”。 图1 绑定OBS桶 在右侧弹窗“绑定OBS目标”中,填写如下表所示参数。 表1 绑定OBS目标配置参数 参数 含义 限制 配置后可编辑 路径名称 SFS Turbo文件系统根目录下会以该名称创建一个子目录,该目录将绑定对应的OBS桶 子目录名称不能重复 子目录名称必须是文件系统根目录下不存在的目录名 子目录名称不能是“.”或“..” 不支持 桶名 OBS存储桶桶名 无法绑定不存在的存储桶 目前仅支持OBS存储桶,不支持并行文件系统 不支持 OBS Endpoint OBS区域域名 OBS存储桶必须和HPC型文件系统在同一个Region 不支持 勾选“将OBS桶读写权限授权给SFS Turbo服务进行OBS目标绑定”。 单击“确定”,完成绑定。 父主题: 基本配置
  • 配置参数说明 表1 配置参数说明 信息项 描述 密钥名称 自定义名称,用于识别不同的密钥。 类型 选择签名密钥的认证类型,可选择“HMAC”、“Basic Auth”、“AES”和“Public Key”。 在实例的配置参数中开启“public_key_enable”功能后,才支持选择“Public Key”类型。 签名算法 选择aes的签名算法,包含以下两种: aes-128-cfb aes-256-cfb Key 根据选择的密钥类型,填写不同的密钥信息。 HMAC:填写APP认证所使用密钥对的Key。 Basic Auth:填写basic认证所使用的用户名。 aes:填写aes认证所使用的密钥key。 Public Key:填写public_key认证所使用的公钥。 Secret 根据选择的密钥类型,填写不同的密钥信息。 HMAC:填写APP认证所使用密钥对的Secret。 Basic Auth:填写basic认证所使用的密码。 aes:填写aes认证所使用的向量。 Public Key:填写Public Key认证所使用的私钥。 确认Secret 填写与Secret一致的值。
  • 配置参数说明 表1 配置参数说明 信息项 描述 策略名称 API流控策略名称。 类型 分“基础流控”和“共享流控”两类。 基础流控针对单个API进行流量统计和控制; 共享流控针对绑定了该策略的所有API进行总流量统计和控制。 时长 流量限制的时长。 与“API流量限制”配合使用,表示单位时间内的单个API请求次数上限。 与“用户流量限制”配合使用,表示单位时间内的单个用户请求次数上限。 与“凭据流量限制”配合使用,表示单位时间内的单个凭据请求次数上限。 与“源IP流量限制”配合使用,表示单位时间内的单个IP地址请求次数上限。 API流量限制 单个API被调用次数上限。 与“时长”配合使用,表示单位时间内的单个API请求次数上限。 用户流量限制 单个用户调用API次数上限,仅在API的安全认证方式为APP认证或IAM认证时适用。 不超过“API流量限制”。 与“时长”配合使用,表示单位时间内的单个用户请求次数上限。 如果主账号下有多个子用户访问API,按主账号累计的调用次数进行限制。 凭据流量限制 单个凭据调用API次数上限,仅在API的安全认证方式为APP认证时适用。 不超过“用户流量限制”和“API流量限制”。 与“时长”配合使用,表示单位时间内的凭据请求次数上限。 源IP流量限制 单个IP地址调用API次数上限。 不超过“API流量限制”。 与“时长”配合使用,表示单位时间内的IP地址请求次数上限。 描述 关于控制策略的描述。
  • 为租户绑定流量控制策略 在流控策略详情页面,单击“特殊租户”,进入特殊租户页面。 单击“添加特殊租户”,弹出“添加特殊租户”对话框。 输入租户信息。 表2 特殊租户信息 信息项 描述 租户ID 获取的账号ID或项目ID,请参考表1中的“特殊租户”说明。 阈值 固定时间段内,此租户访问API的最大值。 不能超过API流量限制值。 单击“确定”,完成特殊租户的添加。 特殊租户流控值和用户流量限制值共同作用时,以特殊租户流控值为准。 例如:API流量限制值为10,用户流量限制值为3,时长为1分钟,特殊租户(租户ID为A)流控值为2,特殊租户(租户ID为B)流控值为4,租户A在1分钟内最多可以访问绑定了该流控策略的API 2次,租户B在1分钟内最多可以访问绑定了该流控策略的API 4次。
  • 为凭据绑定流量控制策略 已创建凭据,或已获取其他凭据ID。 在流控策略详情页面,单击“特殊凭据”页签,进入特殊凭据页面。 单击“添加特殊凭据”,弹出“添加特殊凭据”对话框。 通过以下两种方式,添加特殊凭据。 添加已有凭据:单击“已有凭据”,选择已有凭据,输入阈值。 添加其他凭据:单击“其他”,输入其他用户的凭据ID和阈值。 特殊凭据流控值和凭据流量限制值共同作用时,以特殊凭据流控值为准。 例如:API流量限制值为10,凭据流量限制值为3,时长为1分钟,特殊凭据(凭据A)流控值为2,特殊凭据(凭据B)流控值为4,凭据A在1分钟内最多可以访问绑定了该流控策略的API 2次,凭据B在1分钟内最多可以访问绑定了该流控策略的API 4次。
  • 脚本配置示例 { "response_headers": [ { "name": "test", "value": "test", "action": "append" }, { "name": "test1", "value": "test1", "action": "override" } ] }
  • 配置参数说明 表1 配置参数说明 信息项 描述 Name 响应头名称。每个策略中不能添加重复名称的响应头(不区分大小写),且最多添加10条响应头。 Value 响应头的值。当“Action”为“Delete”时响应头的值不生效,可为空。 Action 响应头操作,您可以覆盖、添加、删除、跳过或新增指定的响应头。 Override:覆盖 当API响应中存在指定的响应头时,使用当前响应头的值覆盖已有响应头的值。 当API响应中存在多个与指定响应头相同名称的响应头时,该操作只会按当前响应头的值返回一条响应头记录。 当API响应中不存在指定的响应头时,添加当前响应头。 Append:添加 当API响应中存在指定的响应头时,将当前响应头的值添加到已有响应头值之后,用逗号分隔。 当API响应中存在多个与指定响应头相同名称的响应头时,会将多个响应头的值用“,”拼接后,再添加当前响应头的值。 当API响应中不存在指定的响应头时,添加当前响应头。 Delete:删除 当API响应中存在指定的响应头时,删除当前响应头。 当API响应中存在多个与指定响应头相同名称的响应头时,删除所有相同名称的响应头。 Skip:跳过 当API响应中存在指定的响应头时,跳过当前响应头。 当API响应中存在多个与指定响应头相同名称的响应头时,均不作处理直接返回。 当API响应中不存在指定的响应头时,添加当前响应头。 Add:新增 无论API响应中是否存在指定的响应头,都添加当前响应头。
  • 导入到已有分组注意事项 将API定义导入到一个已有的分组,导入过程中不会删除分组中已有的API,只是将新增的API导入分组。 适用于将一个新的API或者一个修改后的API导入到已有的分组。 导入API前,请注意以下事项: API网关中API的配额满足需求。 导入的API定义与已有的API定义冲突时,您可以选择使用导入的API定义覆盖已有的API定义,或者保留已有的API定义,此时导入的API定义会显示导入失败。 如果选择扩展覆盖,当导入API的扩展定义项名称与已有策略(ACL,流量控制等)名称相同时,则会覆盖已有策略(ACL,流量控制等)。 导入的API不会自动发布到环境,导入时可以选择“立即发布”或者“稍后发布”,您可以自行选择策略。
  • 导入到新分组注意事项 将API定义导入到一个新的分组,导入过程中系统会自动创建一个新的API分组,并将导入的API归属到该分组。 适用于将一份全新且完整的API导入到API网关。 导入API前,请注意以下事项: API网关中API分组和API的配额满足需求。 使用Swagger info或OpenAPI info的title作为API分组名称,新创建的API分组名称不能与已有的API分组名称重名。 导入的API定义中,如果存在冲突,那么根据系统导入的先后顺序,先导入的API会显示导入成功,后导入的API会显示导入失败。例如导入的API定义中存在2个名称相同或请求路径相同的API,那么先导入的API会显示导入成功,后导入的会显示导入失败。 如果选择扩展覆盖,当导入API的扩展定义项名称与已有策略(ACL,流量控制等)名称相同时,则会覆盖已有策略(ACL,流量控制等)。 导入的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请求,示例如下: 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提供者获取请求参数中要携带的第三方认证信息。
  • 脚本配置示例 { "auth_request": { "method": "GET", "protocol": "HTTPS", "url_domain": "192.168.10.10", "timeout": 5000, "path": "/", "vpc_channel_enabled": false, "vpc_channel_info": null }, "custom_forbid_limit": 100, "carry_body": { "enabled": true, "max_body_size": 1000 }, "auth_downgrade_enabled": true, "carry_path_enabled": true, "return_resp_body_enabled": false, "carry_resp_headers": [], "simple_auth_mode_enabled": true, "match_auth": null, "rule_enabled": false, "rule_type": "allow" }
  • 配置参数说明 表1 配置参数说明 信息项 描述 负载通道 是否使用负载通道作为第三方接口的鉴权服务。 选择“使用”时,配置鉴权服务的负载通道。 选择“不使用”时,配置鉴权服务的访问地址。 后端URL 请求方法 支持GET、POST、PUT、HEAD请求方法。 请求协议 HTTP或HTTPS,传输重要或敏感数据时推荐使用HTTPS。 负载通道(可选) 仅在“使用”负载通道时,需要设置。选择已创建的负载通道名称,如果没有可选的负载通道,您也可以单击“新建负载通道”创建。 后端服务地址(可选) 仅在不使用负载通道时,需要设置。 填写鉴权服务的访问地址,格式:“主机:端口”。主机为鉴权服务的访问IP地址/域名,未指定端口时,HTTP协议默认使用80端口,HTTPS协议默认使用443端口。 说明: 目前仅支持IPv4地址。 路径 鉴权服务的路径,即服务的url。 后端超时(ms) 鉴权服务请求的超时时间。超时时间不超过后端响应超时时间上限,超时时间上限可在API网关控制台的“配置参数”中查看。 自定义host头域 仅在使用负载通道时配置。 在请求被发送到负载通道中的云服务器前,允许您自定义请求的host头域,默认将使用请求中原始的host头域。 防暴力拦截阈值 当源IP访问在5分钟内进行第三方认证失败的次数达到此处配置的阈值时,将触发源IP请求拦截,在这5分钟后解除请求拦截。 例如,5分钟内,源IP访问在第三分钟进行第三方认证失败的次数达到此处配置的阈值,触发源IP请求拦截,再过2分钟解除请求拦截。 身份来源 将从API原始请求中获取此处配置的参数进行第三方鉴权接口鉴权(最大支持10个header参数和10个query参数)。身份来源信息为空时,携带API原始请求的请求参数(header参数和query参数)调用第三方鉴权接口进行鉴权。 宽松模式 开关开启后,当鉴权服务不可用(与鉴权服务建立连接失败或者鉴权服务返回5xx)时,API网关仍然接受客户端请求。 允许携带原始请求体 开关开启后,将携带API原始请求体调用鉴权接口鉴权。 请求体大小(字节) 仅在开启“允许携带原始请求体”时配置。 请求体大小不能超过实例允许的最大请求体大小。实例的最大请求体大小可在API网关控制台“配置参数”中查看。 允许携带原始请求路径 开关开启后,将API原始请求路径拼接到鉴权接口路径之后调用鉴权接口鉴权。 直接返回鉴权响应 开关开启后,鉴权失败时,将直接返回鉴权服务的响应。 允许携带的响应头部 鉴权成功时,原始请求将从鉴权服务返回的响应头中获取此处配置的头部,传到业务后端。 最大支持配置10个头部。 简易鉴权模式 开关开启后,鉴权服务返回状态码“2xx”时,表示认证通过。 鉴权结果匹配 仅在“简易鉴权模式”关闭后可配置。 根据鉴权服务返回的响应头中的参数名和参数值进行校验,响应头中存在此处配置的参数名,并且参数值相等则认证通过。 黑白名单配置 开关开启后,原始API请求匹配黑/白名单规则将进行/不进行第三方认证鉴权。 规则类型 白名单规则 如果原始API请求匹配白名单规则,将不进行第三方认证鉴权。 黑名单规则 如果原始API请求匹配黑名单规则,将进行第三方认证鉴权。 定义参数 定义用于规则的参数。 参数位置:用于规则匹配的参数位置。 path:API请求的URI,系统默认配置。 method:API请求方法,系统默认配置。 header:请求头的key值。 query:QueryString的key值。 system:系统参数。 参数:用于判断与规则中的参数值是否匹配。 定义规则 定义用于规则的判断条件。 单击“添加规则”,编辑规则名称和规则条件。在“条件表达式”弹窗中,选择“定义参数”中的参数名和判断条件,以及输入参数值。 =为等于 !=为不等于 pattern为正则表达式 enum为枚举值,多个参数值之间用英文逗号分隔
  • 使用限制 单账号跟踪的事件可以通过云审计控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的CTS/system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到对象存储服务(OBS),才可在OBS桶里面查看历史文件。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
共100000条