云服务器内容精选
-
公告说明 自2024年9月起,当用户使用以下API的自定义策略授权时,用户需创建或更新自定义策略才可访问。 权限描述 对应的API 新增授权项 依赖授权项 IAM 项目(Project) 企业项目(Enterprise Project) 获取SSL证书列表 GET /v2/{project_id}/apigw/certificates apig:certificate:list - √ √ 创建SSL证书 POST /v2/{project_id}/apigw/certificates apig:certificate:create apig:instances:get √ 请求参数中携带instance_id时支持,否则不支持 删除SSL证书 DELETE /v2/{project_id}/apigw/certificates/{certificate_id} apig:certificate:delete - √ × 查看证书详情 GET /v2/{project_id}/apigw/certificates/{certificate_id} apig:certificate:get - √ × 修改SSL证书 PUT /v2/{project_id}/apigw/certificates/{certificate_id} apig:certificate:update apig:instances:get √ 请求参数中携带instance_id时支持,否则不支持 获取SSL证书已绑定 域名 列表 GET /v2/{project_id}/apigw/certificates/{certificate_id}/attached-domains apig:certificate:listBoundDomain - √ × SSL证书绑定域名 POST /v2/{project_id}/apigw/certificates/{certificate_id}/domains/attach apig:certificate:batchBindDomain apig:certificate:get apig:groups:get √ × SSL证书解绑域名 POST /v2/{project_id}/apigw/certificates/{certificate_id}/domains/detach apig:certificate:batchUnbindDomain apig:certificate:get apig:groups:get √ × 查询实例终端节点连接列表 GET /v2/{project_id}/apigw/instances/{instance_id}/vpc-endpoint/connections apig:instance:listVpcEndpoint apig:instances:get √ √ 接受或拒绝终端节点连接 POST /v2/{project_id}/apigw/instances/{instance_id}/vpc-endpoint/connections/action apig:instance:acceptOrRejectVpcEndpointConnection apig:instances:get √ √ 查询实例的终端节点服务的白名单列表 GET /v2/{project_id}/apigw/instances/{instance_id}/vpc-endpoint/permissions apig:instance:listVpcEndpointPermission apig:instances:get √ √ 批量添加实例终端节点连接白名单 POST/v2/{project_id}/apigw/instances/{instance_id}/vpc-endpoint/permissions/batch-add apig:instance:batchAddVpcEndpointPermission apig:instances:get √ √ 批量删除实例终端节点连接白名单 POST/v2/{project_id}/apigw/instances/{instance_id}/vpc-endpoint/permissions/batch-delete apig:instance:batchDeleteVpcEndpointPermission apig:instances:get √ √ 创建参数编排规则 POST /v2/{project_id}/apigw/instances/{instance_id}/orchestration apig:orchestration:create apig:instances:get √ √ 查看编排规则列表 GET /v2/{project_id}/apigw/instances/{instance_id}/orchestration apig:orchestration:list apig:instances:get √ √ 查询编排规则详情 GET /v2/{project_id}/apigw/instances/{instance_id}/orchestrations/{orchestration_id} apig:orchestration:get apig:instances:get √ √ 更新编排规则 PUT /v2/{project_id}/apigw/instances/{instance_id}/orchestrations/{orchestration_id} apig:orchestration:update apig:instances:get √ √ 删除编排规则 DELETE /v2/{project_id}/apigw/instances/{instance_id}/orchestrations/{orchestration_id} apig:orchestration:delete apig:instances:get √ √ 查询编排规则绑定的API GET /v2/{project_id}/apigw/instances/{instance_id}/orchestrations/{orchestration_id}/attached-apis apig:orchestration:listBoundApis apig:instances:get √ √
-
支持的授权项 细粒度策略支持的操作与API相对应,授权项列表说明如下: 权限:自定义策略中授权项定义的内容即为权限。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 对应API接口:自定义策略实际调用的API接口。 授权范围:自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM项目和企业项目的区别。 API网关服务管理控制操作相关的授权项,明细如下表所示。用户调用如下API时,需要获取对应的权限。权限获取请参考 统一身份认证 服务(IAM)的帮助指导。 表1 API网关权限明细 权限描述 授权项 对应的API IAM项目(Project) 企业项目(Enterprise Project) 创建API网关专享版实例 apig:instances:create POST /v2/{project_id}/apigw/instances √ √ 删除API网关专享版实例 apig:instances:delete DELETE /v2/{project_id}/apigw/instances/{instance_id} √ √ 更新API网关专享版实例 apig:instances:update PUT /v2/{project_id}/apigw/instances/{instance_id} √ √ 查看API网关专享版实例 apig:instances:get GET /v2/{project_id}/apigw/instances/{instance_id} √ √ 查看API网关专享版实例列表 apig:instances:list GET /v2/{project_id}/apigw/instances √ √ 创建API分组 apig:groups:create POST /v2/{project_id}/apigw/instances/{instance_id}/api-groups √ √ 删除API分组 apig:groups:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id} √ √ 查看API分组 apig:groups:get GET /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id} √ √ 查看API分组列表 apig:groups:list GET /v2/{project_id}/apigw/instances/{instance_id}/api-groups √ √ 创建分组域名 apig:domains:create POST /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/domains √ √ 删除分组域名 apig:domains:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/domains/{domain_id} √ √ 分组域名绑定证书 apig:domains:bindCertificate POST /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/domains/{domain_id}/certificate √ √ 分组域名解绑证书 apig:domains:unbindCertificate DELETE /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/domains/{domain_id}/certificate/{certificate_id} √ √ 查看分组域名绑定的证书 apig:domains:getCertificate GET /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/domains/{domain_id}/certificate/{certificate_id} √ √ 创建环境变量 apig:variables:create POST /v2/{project_id}/apigw/instances/{instance_id}/env-variables √ √ 删除环境变量 apig:variables:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/env-variables/{env_variable_id} √ √ 查看环境变量 apig:variables:get GET /v2/{project_id}/apigw/instances/{instance_id}/env-variables/{env_variable_id} √ √ 查看环境变量列表 apig:variables:list GET /v2/{project_id}/apigw/instances/{instance_id}/env-variables √ √ 创建API apig:apis:create POST /v2/{project_id}/apigw/instances/{instance_id}/apis √ √ 删除API apig:apis:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/apis/{api_id} √ √ 发布API apig:apis:publish POST /v2/{project_id}/apigw/instances/{instance_id}/apis/action √ √ 下线API apig:apis:offline POST /v2/{project_id}/apigw/instances/{instance_id}/apis/action √ √ 调试API apig:apis:debug POST /v2/{project_id}/apigw/instances/{instance_id}/apis/debug/{api_id} √ √ 导入API apig:apis:import POST /v2/{project_id}/apigw/instances/{instance_id}/openapi/import √ √ 导出API apig:apis:export POST /v2/{project_id}/apigw/instances/{instance_id}/openapi/export √ √ 授权API apig:apis:grantAppAccess POST /v2/{project_id}/apigw/instances/{instance_id}/app-auths √ √ 解授权API apig:apis:relieveAppAccess DELETE /v2/{project_id}/apigw/instances/{instance_id}/app-auths/{app_auth_id} √ √ API绑定签名 apig:apis:bindSigns POST /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings √ √ API解绑签名 apig:apis:unbindSigns DELETE /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings/{sign_bindings_id} √ √ API绑定访问控制 apig:apis:bindAcls POST /v2/{project_id}/apigw/instances/{instance_id}/acl-bindings √ √ API解绑访问控制 apig:apis:unbindAcls DELETE /v2/{project_id}/apigw/instances/{instance_id}/acl-bindings/{acl_bindings_id} √ √ API绑定流控 apig:apis:bindThrottles POST /v2/{project_id}/apigw/instances/{instance_id}/throttle-bindings √ √ API解绑流控 apig:apis:unbindThrottles DELETE /v2/{project_id}/apigw/instances/{instance_id}/throttle-bindings/{throttle_binding_id} √ √ 查看API apig:apis:get GET /v2/{project_id}/apigw/instances/{instance_id}/apis/{api_id} √ √ 查看API列表 apig:apis:list GET /v2/{project_id}/apigw/instances/{instance_id}/apis √ √ 查看API绑定的APP列表 apig:apis:listBindedApps GET /v2/{project_id}/apigw/instances/{instance_id}/app-auths/binded-apps √ √ 查看API绑定的签名列表 apig:apis:listBindedSigns GET /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings/binded-signs √ √ 查看API绑定的访问控制列表 apig:apis:listBindedAcls GET /v2/{project_id}/apigw/instances/{instance_id}/acl-bindings/binded-acls √ √ 查看API绑定的流控列表 apig:apis:listBindedTrottles GET /v2/{project_id}/apigw/instances/{instance_id}/throttle-bindings/binded-throttles √ √ 创建环境 apig:envs:create POST /v2/{project_id}/apigw/instances/{instance_id}/envs √ √ 删除环境 apig:envs:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/envs/{env_id} √ √ 查看环境列表 apig:envs:list GET /v2/{project_id}/apigw/instances/{instance_id}/envs √ √ 创建应用 apig:apps:create POST /v2/{project_id}/apigw/instances/{instance_id}/apps √ √ 删除应用 apig:apps:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/apps/{app_id} √ √ 查看应用 apig:apps:get GET /v2/{project_id}/apigw/instances/{instance_id}/apps/{app_id} √ √ 查看应用列表 apig:apps:list GET /v2/{project_id}/apigw/instances/{instance_id}/apps √ √ 查看应用绑定的API列表 apig:apps:listBindedApis GET /v2/{project_id}/apigw/instances/{instance_id}/app-auths/binded-apis √ √ 查看应用未绑定的API列表 apig:apps:listUnbindedApis GET /v2/{project_id}/apigw/instances/{instance_id}/app-auths/unbinded-apis √ √ 创建签名 apig:signs:create POST /v2/{project_id}/apigw/instances/{instance_id}/signs √ √ 删除签名 apig:signs:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/signs/{sign_id} √ √ 查看签名列表 apig:signs:list GET /v2/{project_id}/apigw/instances/{instance_id}/signs √ √ 查看签名绑定的API列表 apig:signs:listBindedApis GET /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings/binded-apis √ √ 查看签名未绑定的API列表 apig:signs:listUnbindedApis GET /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings/unbinded-apis √ √ 创建访问控制 apig:acls:create POST /v2/{project_id}/apigw/instances/{instance_id}/acls √ √ 删除访问控制 apig:acls:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/acls/{acl_id} √ √ 查看访问控制 apig:acls:get GET /v2/{project_id}/apigw/instances/{instance_id}/acls/{acl_id} √ √ 查看访问控制列表 apig:acls:list GET /v2/{project_id}/apigw/instances/{instance_id}/acls √ √ 查看访问控制绑定的api列表 apig:acls:listBindedApis GET /v2/{project_id}/apigw/instances/{instance_id}/acl-bindings/binded-apis √ √ 查看访问控制未绑定的api列表 apig:acls:listUnbindedApis GET /v2/{project_id}/apigw/instances/{instance_id}/acl-bindings/unbinded-apis √ √ 创建流量控制 apig:throttles:create POST /v2/{project_id}/apigw/instances/{instance_id}/throttles √ √ 删除流量控制 apig:throttles:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/throttles/{throttle_id} √ √ 查看流量控制 apig:throttles:get GET /v2/{project_id}/apigw/instances/{instance_id}/throttles/{throttle_id} √ √ 查看流量控制列表 apig:throttles:list GET /v2/{project_id}/apigw/instances/{instance_id}/throttles √ √ 查看流量控制绑定的API列表 apig:throttles:listBindedApis GET /v2/{project_id}/apigw/instances/{instance_id}/throttle-bindings/binded-apis √ √ 查看流量控制未绑定的API列表 apig:throttles:listUnbindedApis GET /v2/{project_id}/apigw/instances/{instance_id}/throttle-bindings/unbinded-apis √ √ 创建特殊流量控制 apig:specialThrottles:create POST /v2/{project_id}/apigw/instances/{instance_id}/throttles/{throttle_id}/throttle-specials √ √ 删除特殊流量控制 apig:specialThrottles:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/throttles/{throttle_id}/throttle-specials/{strategy_id} √ √ 查看特殊流量控制列表 apig:specialThrottles:get GET /v2/{project_id}/apigw/instances/{instance_id}/throttles/{throttle_id}/throttle-specials √ √ 创建负载通道 apig:vpcChannels:create POST /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels √ √ 删除负载通道 apig:vpcChannels:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels/{vpc_channel_id} √ √ 更新负载通道 apig:vpcChannels:update PUT /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels/{vpc_channel_id} √ √ 创建后端实例 apig:vpcChannels:addInstance POST /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels/{vpc_channel_id}/members √ √ 删除后端实例 apig:vpcChannels:deleteInstance DELETE /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels/{vpc_channel_id}/members/{member_id} √ √ 查看负载通道 apig:vpcs:get GET /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels/{vpc_channel_id} √ √ 查看负载通道列表 apig:vpcs:list GET /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels √ √ 创建自定义认证 apig:authorizers:create POST /v2/{project_id}/apigw/instances/{instance_id}/authorizers √ √ 删除自定义认证 apig:authorizers:delete DELETE /v2/{project_id}/apigw/instances/{instance_id}/authorizers/{authorizer_id} √ √ 查看自定义认证 apig:authorizers:get GET /v2/{project_id}/apigw/instances/{instance_id}/authorizers/{authorizer_id} √ √ 查看自定义认证列表 apig:authorizers:list GET /v2/{project_id}/apigw/instances/{instance_id}/authorizers √ √ 查看标签列表 apig:tags:list GET /v2/{project_id}/apigw/instances/{instance_id}/tags √ √ 查看实例特性列表 apig:features:list GET /v2/{project_id}/apigw/instances/{instance_id}/features √ √ 创建实例特性 apig:features:create POST /v2/{project_id}/apigw/instances/{instance_id}/features √ √
-
获取域名 云服务平台内业务系统访问API的场景,需获取内网域名作为独立域名。 申请内网域名,具体请参考创建内网域名。 配置域名到“服务集成APIC 连接地址”的A类型记录集配置,具体请参考增加A类型记录集。 如果API分组中的API支持HTTPS请求协议,则需要为独立域名添加SSL证书。您需要提前获取SSL证书的内容和密钥,并创建SSL证书。 云服务平台外业务系统访问API的场景,需获取公网域名作为独立域名。 申请公网域名,具体可通过 域名注册服务 申请。 备案公网域名,您可以通过备案中心完成域名备案。备案时长需几个工作日,建议您提前进行备案。 配置域名到API分组子域名的CNAME类型记录集配置,具体请参考增加CNAME类型记录集。 如果API分组中的API支持HTTPS请求协议,则需要为独立域名添加SSL证书。您需要提前获取SSL证书的内容和密钥,并创建SSL证书。
-
约束与限制 独立域名绑定端口时,同一域名不支持绑定相同端口。 同一域名不同端口,无论哪个端口绑定/修改/解绑SSL证书、开启/关闭客户端认证,所有端口都会同步生效。 如果您通过负载通道访问后端服务,那么独立域名绑定的端口需与负载通道中后端服务器的访问端口保持一致。 独立域名绑定端口后,如果您通过IP地址访问API,那么需要在请求消息中添加Header参数“host”,host值必须带有对应的访问协议的端口(默认的80/443端口,host值可以不带)。
-
步骤二:创建实例 进入购买实例页面。 根据下表配置实例信息。 表2 配置实例信息 参数 配置说明 计费模式 实例的收费方式,此处选择“按需计费”。 区域 选择实例所属区域,请根据实际需要选择。此处选择“华东-上海一”。 可用区 选择实例的可用区,此处选择“可用区1,可用区2,可用区3”。 实例名称 填写实例的名称,此处填写“apig-test”。 实例规格 选择实例的规格,此处选择“基础版”。 可维护时间窗 指定可对实例进行维护的时间段,此处默认。 企业项目 选择实例所属的企业项目,此处选择“default”。 网络 选择已准备的VPC和子网。 公网入口 允许外部服务通过弹性IP地址,调用实例创建的API。此处开启公网入口。 安全组 选择已准备的安全组。 单击“立即购买”。 确认实例信息无误后,勾选服务协议,单击“去支付”,完成实例创建。
-
步骤一:准备工作 注册华为云并实名认证。 如果您已有一个华为账号,请跳过此步骤。如果您还没有华为账户,请参考 注册华为账号 并开通华为云和实名认证介绍,完成华为云的注册和实名认证。 在创建APIG实例前,确保账户有足够金额。 如果您需要为账户充值,请参考账户充值。 在创建APIG实例前,确保账户已拥有APIG实例的操作权限。 如果您使用系统角色相关权限,需要同时拥有“APIG Administrator”和“VPC Administrator”权限才能创建实例。 如果您使用系统策略,则拥有“APIG FullAccess”即可。 如果您需要对云上的资源进行精细管理,请使用IAM服务创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限。具体操作请参考创建用户并授权使用APIG。 在创建APIG实例前,确保已存在可用的VPC和子网。 APIG实例可以使用当前账号下已创建的VPC和子网,也可以使用新创建的VPC和子网,请根据实际需要进行配置。 创建VPC和子网的操作指导,请参考创建虚拟私有云和子网。请注意:创建的VPC与APIG实例必须在相同的区域。 在创建APIG实例前,确保已存在可用的安全组。 APIG实例可以使用当前账号下已创建的安全组,也可以使用新创建的安全组,请根据实际需要进行配置。创建安全组的操作步骤,请参考创建安全组。 请添加表1所示安全组规则,其他规则请根据实际需要添加。 表1 安全组规则 方向 协议 端口 源地址 说明 入方向 TCP 80/443 0.0.0.0/0 使用内网时可通过同一个VPC访问APIG实例。 安全组创建后,系统默认添加入方向“允许安全组内的弹性云服务器彼此通信”规则和出方向“放通全部流量”规则。此时使用内网通过同一个VPC访问APIG实例,无需添加表1的规则。 除墨西哥城一、北京一区域外,在其他区域创建实例后默认开启ELB负载。开启ELB负载的实例的安全组不生效,如需禁用部分IP请使用访问控制策略 开启ELB负载:ELB作为网关入口的负载均衡器,入口支持跨VPC访问。但在开启公网入口时,弹性IP地址由网关随机分配,不支持选择已有弹性IP地址。
-
入门实践 您可以根据自身的业务需求使用APIG提供的一系列常用实践。 表1 常用最佳实践 实践 描述 使用函数服务开发自定义认证 在API的安全认证方面,API网关提供IAM认证、APP认证等方式,帮助用户快速开放API,同时API网关也支持用户使用自己的认证方式(以下简称自定义认证),以便更好地兼容已有业务能力。 API网关支持的自定义认证需要借助 函数工作流 服务实现,用户在函数工作流中创建自定义认证函数,API网关调用该函数,实现自定义认证。 API网关流量控制2.0策略 当在公网中调用APIG上公开的业务API时,如果不限制API调用的次数,随着用户的不断增加,会引起后端性能的下降,甚至会因为恶意用户发送的大量请求导致网站或程序崩溃。APIG提供了传统策略——流量控制,从API、用户、凭据、源IP等多个维度进行流控。 然而,随着用户多样性以及需求多样性的增加,传统流控策略无法满足更加精细的流量控制场景。比如针对某一请求参数的流控或者某一租户的流控,APIG在传统流量控制策略的基础上提供了插件策略——流量控制2.0,通过制定更加精细的方案来进行流控。
-
调用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。
-
注意事项 仅支持华为云 CCE Turbo 集群、VPC网络模型的CCE集群。 您需要确保当前实例与CCE集群所属同一个VPC中,或通过其他方式保证两者网络可达,否则导入后调用API会出现失败场景。 选择VPC网络模型的CCE集群时,您需要在实例详情界面的路由配置中添加CCE集群的容器网段,否则导入后调用API会出现失败场景。 导入后会生成相应的API以及微服务类型的负载通道,负载通道会监测工作负载下所有实例的地址变化,并更新到负载通道中。
-
调用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。
-
后端服务调用报错域名无法解析“Backend domain name resolution failed” APIG实例所在的VPC完成了内网域名解析,后端服务调用仍报“域名无法解析”错误。 可能原因 APIG实例所在的VPC与用户后端服务所在的VPC存在网络隔离,内网域名解析仅在用户后端服务所在的VPC下能够解析。 解决方法 方法一:在创建API时,使用公网域名配置“后端服务地址”。 方法二:在创建API时,不使用VPC通道(负载通道),使用用户后端服务IP配置“后端服务地址”,添加常量参数,在HEADER中添加Host:域名字段。 方法三:在创建API时,使用VPC通道(负载通道)。 创建VPC通道(负载通道)。 添加用户后端服务地址。 创建API时,使用VPC通道(负载通道),配置自定义头域。 父主题: API调用
-
请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 URI-scheme:表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint:指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从终端节点中获取。例如APIG服务在“华北-北京四”区域的Endpoint为“apig.cn-north-4.myhuaweicloud.com”。 resource-path:资源路径,也即API访问路径。从具体API的URI模块获取,例如“创建API分组(专享版API)”API的resource-path为“/v2/{project_id}/apigw/instances/{instance_id}/api-groups”,project_id为项目ID,instance_id为实例ID(在APIG控制台的“实例信息”中查看)。。 query-string:查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要在“华北-北京四”区域创建API分组,URI-scheme为“https”,Endpoint为“apig.cn-north-4.myhuaweicloud.com”,resource-path为“/v2/{project_id}/apigw/instances/{instance_id}/api-groups”,将URI中的参数拼接起来即可。 https://apig.cn-north-4.myhuaweicloud.com/v2/{project_id}/apigw/instances/{instance_id}/api-groups 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,同一个服务的Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
-
请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在创建API分组的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://apig.cn-north-1.myhuaweicloud.com/v2/{project_id}/apigw/instances/{instance_id}/api-groups
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格