创建 APIMExtensionPolicy

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

本页面介绍了如何创建 APIMExtensionPolicy,以便在集群中运行的 Google Kubernetes Engine (GKE) 网关上创建所需的流量扩展。

准备工作

在开始此任务之前,请完成以下步骤:

所需的角色

如果您已按照 安装 Apigee Operator for Kubernetes 中所述的方式向服务账号分配了所需的角色,则无需额外的 IAM 角色或权限即可完成这些任务。

您可以选择使用 Kubernetes 中内置的基于角色的访问控制 (RBAC) 机制来授权对 Google Kubernetes Engine 集群中的资源执行的操作。如需了解详情,请参阅使用基于角色的访问权限控制向集群中的操作授权

创建 APIMExtensionPolicy

在此步骤中,您将创建 APIMExtensionPolicy 并将其应用于集群中运行的 GKE 网关。此政策会管理通过网关及其关联的 HTTPRoutes 的所有流量,其运作方式与当前 Apigee 中环境级别的 flowhook 类似。

创建 APIM 扩展程序政策:

  1. apim 命名空间中创建一个名为 global-ext-lb1-apim-policy.yaml 的新文件。
  2. 将以下内容复制到新文件中:
    # global-ext-lb1-apim-policy.yaml
    apiVersion: apim.googleapis.com/v1
    kind: APIMExtensionPolicy
    metadata:
      name: global-ext-lb1-apim-policy
      namespace: apim
    spec:
      apigeeEnv: ENV_NAME # optional
      location: global
      failOpen: false
      timeout: 1000ms
      defaultSecurityEnabled: true
      targetRef: # identifies the Gateway where the extension should be applied
        name: global-ext-lb1
        kind: Gateway
        namespace: default

    其中,ENV_NAME 是在安装步骤创建 Apigee 环境中创建的 Apigee 环境的名称。

    您可以在 Google Cloud 控制台的 Apigee 环境页面中查看所有可用环境:

    前往环境

  3. 应用政策:
    kubectl -n apim apply -f global-ext-lb1-apim-policy.yaml

    应用政策后,Apigee Operator for Kubernetes 会在后台创建网络资源。

  4. 使用以下命令检查 APIM 扩展程序政策的状态:
    kubectl -n apim get APIMExtensionPolicy

    输出应类似如下所示,其中 StateRUNNING

    NAME                         STATE      ERRORMESSAGE
    global-ext-lb1-apim-policy   RUNNING  
  5. 使用以下命令向网关发送请求:
    curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"

    其中:

    • GATEWAY_IP_ADDRESS 是网关的 IP 地址。 您可以使用以下命令检索网关 IP 地址,其中 GATEWAY_NAME 是网关的名称:
      kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
    • HOST_NAME 是网关的 HTTPRoute 中定义的主机名。
  6. 该请求应会失败,因为通过在 API 扩展程序政策资源中设置 defaultSecurityEnabled: true 启用了默认安全性。您应该会看到如下所示的响应:
    {"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}

    这表示 Apigee 扩展程序政策处于有效状态,并且 API 密钥强制执行和访问令牌验证处于有效状态。

后续步骤