Crea un APIMExtensionPolicy

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

En esta página, se describe cómo crear un APIMExtensionPolicy para crear la extensión de tráfico requerida en la puerta de enlace de Google Kubernetes Engine (GKE) que se ejecuta en tu clúster.

Antes de comenzar

Antes de comenzar con esta tarea, completa los siguientes pasos:

Roles requeridos

Si asignas los roles requeridos a tu cuenta de servicio como se describe en Instala el operador de Apigee para Kubernetes, no se requieren roles ni permisos de IAM adicionales para completar estas tareas.

Puedes optar por autorizar acciones en los recursos de tu clúster de Google Kubernetes Engine con el mecanismo de control de acceso basado en roles (RBAC) integrado en Kubernetes. Para obtener más información, consulta Autoriza acciones en clústeres con el control de acceso basado en roles.

Crea el APIMExtensionPolicy

En este paso, crearás el objeto APIMExtensionPolicy y lo aplicarás a la puerta de enlace de GKE que se ejecuta en tu clúster. Esta política rige todo el tráfico que pasa por la puerta de enlace y su HTTPRoutes asociado, y funciona de manera similar a un flowhook a nivel del entorno en Apigee hoy en día.

Crea la política de extensión de APIM:

  1. Crea un archivo nuevo llamado global-ext-lb1-apim-policy.yaml en el espacio de nombres apim.
  2. Copia el siguiente contenido en el archivo nuevo:
    # 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

    Aquí, ENV_NAME es el nombre del entorno de Apigee creado en el paso de instalación Crea un entorno de Apigee.

    Puedes ver todos los entornos disponibles en la página Apigee Environments de la consola de Google Cloud :

    Ir a Entornos

  3. Aplica la política:
    kubectl -n apim apply -f global-ext-lb1-apim-policy.yaml

    Una vez que se aplica la política, el operador de Apigee para Kubernetes crea recursos de redes en segundo plano.

  4. Verifica el estado de la política de extensión de APIM con el siguiente comando:
    kubectl -n apim get APIMExtensionPolicy

    El resultado debería ser similar al siguiente, con un State de RUNNING:

    NAME                         STATE      ERRORMESSAGE
    global-ext-lb1-apim-policy   RUNNING  
  5. Usa el siguiente comando para enviar una solicitud a la puerta de enlace:
    curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"

    Aquí:

    • GATEWAY_IP_ADDRESS es la dirección IP de la puerta de enlace. Puedes recuperar la dirección IP de la puerta de enlace con el siguiente comando, en el que GATEWAY_NAME es el nombre de la puerta de enlace:
      kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
    • HOST_NAME es el nombre de host definido en el HTTPRoute de la puerta de enlace.
  6. La solicitud debería fallar porque la seguridad predeterminada está habilitada estableciendo defaultSecurityEnabled: true en el recurso de política de extensión de la API. Deberías ver una respuesta similar a la siguiente:
    {"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}

    Esto indica que la política de extensión de Apigee está activa y que la aplicación de la clave de API y la verificación del token de acceso están activas.

¿Qué sigue?