Crear 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 necesaria en la pasarela de Google Kubernetes Engine (GKE) que se ejecuta en tu clúster.

Antes de empezar

Antes de empezar esta tarea, sigue estos pasos:

Roles obligatorios

Si asignas los roles necesarios a tu cuenta de servicio tal como se describe en Instalar el operador de Apigee para Kubernetes, no se necesitan roles ni permisos de gestión de identidades y accesos adicionales para completar estas tareas.

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

Crea el APIMExtensionPolicy

En este paso, crea el APIMExtensionPolicy y aplícalo a la GKE Gateway que se ejecuta en tu clúster. Esta política rige todo el tráfico que pasa por la pasarela y su HTTPRoutes asociada, y funciona de forma similar a un flowhook a nivel de entorno en Apigee.

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

  1. Crea un archivo 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

    Donde ENV_NAME es el nombre del entorno de Apigee creado en el paso de instalación Crear un entorno de Apigee.

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

    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 red en segundo plano.

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

    La salida debería ser similar a la 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 pasarela:
    curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"

    Donde:

    • GATEWAY_IP_ADDRESS es la dirección IP de la pasarela. Puedes obtener la dirección IP de la pasarela con el siguiente comando, donde GATEWAY_NAME es el nombre de la pasarela:
      kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
    • HOST_NAME es el nombre de host definido en HTTPRoute de la pasarela.
  6. La solicitud debería fallar porque la seguridad predeterminada está habilitada al definir 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 claves de API y la verificación de tokens de acceso también lo están.

Siguientes pasos