更新时间:2025-10-16 GMT+08:00
分享

常见问题

API注册

  • 是否支持多后端节点?

    通过VPC通道(负载通道)支持多后端节点。一个VPC通道中可以添加多个云服务器。

  • 部署在华为云上的服务如何开放?
    • 如果部署在华为云上的服务绑定了公网IP地址,在API网关中创建API时,使用“公网IP地址:端口号”作为后端服务地址。如果此服务已绑定域名,则优先使用域名作为后端服务地址。
    • 如果部署在华为云上的服务无公网IP地址,则将此服务的访问方式设置为VPC内网访问,在API网关中创建API时,通过VPC通道(负载通道)访问部署在VPC内的此服务。
  • 不使用VPC通道(负载通道)时,后端服务地址可以是什么?

    可以是公网域名或者公网IP(支持云服务器的弹性IP地址)。

API认证鉴权

  • 是否支持HTTPS的双向认证?

    不支持,API网关仅做HTTPS的单向认证。

  • “无认证”方式的API该怎么鉴权与调用?

    “无认证”即API网关对收到的调用请求不做身份认证,您只需要按照API开放方提供的接口说明,封装规范的HTTP请求,发送给API网关即可。

    无认证方式下,API网关把请求内容透传给后端服务。因此,如果您希望在API后端服务进行鉴权,可以使用“无认证”方式,API调用方传递鉴权所需字段给后端服务,由后端服务进行鉴权。

API访问控制

  • 怎样给指定的用户开放API?
    可以采用以下两种方式:
    • 注册API时可选取APP认证方式。APP key和APP Secret分享给指定的用户。
    • 使用访问控制策略,按照IP地址或者账号名,只允许符合允许策略的用户调用API。
  • 配置了身份认证的API,如何在特殊场景下(如指定IP地址)允许不校验身份?
    认证方式不能基于某个特殊场景进行选择性认证。
    • 方案1:创建API时选择无认证方式,然后利用“访问控制策略”功能进行IP白名单过滤,使得所有调用都不需要校验身份。
    • 方案2:考虑拆分成2个API,其中一个使用身份认证(IAM认证或APP认证),另一个使用“无认证”但为其设访问控制策略,以确保安全。

API安全

  • 怎样保护API?
    • 使用身份认证

      创建API时,为API调用增加身份认证,如使用IAM认证或API网关提供的APP认证,防止API被恶意调用。

    • 设置访问控制策略

      从IP地址(或地址区间)以及账号等不同维度,设置白名单/黑名单。

    • 将API绑定流控策略,通过流控策略保护API。

      API网关默认API流量控制为每秒200次,如果您的后端服务不能支撑单个API 200次/秒的调用请求,可设置流量控制策略,将限额调低。

  • 怎样保证API网关调用后端服务器的安全?

    通过以下方法确保API网关调用后端服务器的安全:

    • 为API绑定签名密钥。

      在绑定签名密钥后,API网关到后端服务的请求增加签名信息,后端服务收到请求后计算签名信息,验证计算后的签名信息与API网关的签名信息是否一致。

    • 使用HTTPS对请求进行加密。

      需要确保已有相应的SSL证书。

    • 使用后端认证。

      您可以对后端服务开启安全认证,只受理携带正确授权信息的API请求。在创建API的定义后端服务阶段,可以开启后端认证。

  • 能否针对VPC通道(负载通道)内的ECS私有IP进行访问控制?

    不支持。

API调用

  • API调用失败的可能原因有哪些?

    如果API调用出错,请仔细检查API的配置:

    • 网络问题

      调用API失败的场景分为三种:同一VPC内调用失败、不同VPC之间调用失败、公网调用失败。

      • VPC内调用API失败时,请检查域名是否和API自动分配的域名一致,如果域名错误,会导致调用API失败。
      • 不同VPC之间调用API失败时,请检查两个VPC的网络是否互通。如果不通,可以通过创建VPC对等连接,将两个VPC的网络打通,实现跨VPC访问实例。

        关于创建和使用VPC对等连接,请参考VPC对等连接说明API网关跨VPC开放后端服务

      • 公网调用API失败时,可能的原因如下:
        • API没有绑定弹性公网IP(EIP),导致API缺少公网访问的有效地址,公网调用API失败。

          绑定EIP后重新调用即可,详细步骤请参考网络环境准备

        • 入方向规则配置有误,导致公网调用API失败。

          配置入方向规则的详细步骤请参考网络环境准备

        • 调用时未添加请求消息头“host:分组域名”,导致公网调用API失败。添加消息头后,重新调用即可。
    • 域名问题
      • 域名是否备案成功,且能正常解析。
      • 域名是否绑定到正确的API分组。
      • 子域名访问超过默认次数。API分组创建后,系统为分组自动分配一个内部测试用的子域名,此子域名唯一且不可更改,每天最多可以访问1000次。您可以通过添加独立域名来访问您开放的API。
    • 发布问题

      API是否已发布。如果修改过API,则需要重新发布;如果发布到非RELEASE环境,请求X-Stage头的值需要填写发布的环境名称。

  • "The API does not exist or has not been published in the environment."如何解决?

    调用API网关中开放的API报错,请按以下顺序排查可能原因:

    1. 调用API所使用的域名、请求方法、路径不正确。
      • 比如注册的API为POST方法,您使用了GET方法调用。
      • 比如访问的URL比API详情中的URL少一个“/”也会导致无法匹配上此API,例如http://7383ea59c0cd49a2b61d0fd1d351a619.apigw.region.cloud.com/test/和http://7383ea59c0cd49a2b61d0fd1d351a619.apigw.region.cloud.com/test会匹配上不同的API。
    2. API没有发布。API创建后,需要发布到具体的环境后才能使用。如果发布到非生产环境,检查请求“X-Stage”头是否为发布的环境名。
    3. 域名解析不正确。如果API的域名、请求方法、路径正确,且已发布到环境,有可能是没有准确解析到您的API所在分组。请检查API所在的分组域名,例如您有多个API分组,每个分组有自己的独立域名,API调用时,使用了其他分组的独立域名。
    4. 检查API是否使用OPTIONS跨域请求,如果使用OPTIONS跨域请求,请在API中开启CORS,并创建OPTIONS方式的API。
  • No backend available,怎么解决?
    • 检查后端服务是否可以访问,如果不能访问,请修改后端服务。
    • 检查后端服务对应的ECS安全组配置,查看是否已开放您需要的端口。
    • 检查VPC网络中的ACL配置,查看是否有相关ACL策略限制了API网关实例与后端服务所在子网的通信。
    • 若使用VPC通道,检查VPC通道业务端口、健康检查端口、后端服务器添加是否均正常。
  • 配置入参时为什么无法配置HEADER位置的x-auth-token?

    x-auth-token在API网关内部已经被定义了,如果您再次创建此参数名,容易导致冲突。API网关console中已经限定您无法创建HEADER位置的x-auth-token,您只需在调用此API时,直接在header中增加x-auth-token和其值即可。

相关文档