Flujos compartidos reutilizables

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
Más información

Puedes combinar políticas y recursos en un flujo compartido que puedes consumir desde varios proxies de API, y también desde otros flujos compartidos. Aunque es como un proxy, un flujo compartido no tiene extremo. Solo se puede usar desde un proxy de API o un flujo compartido que se encuentre en la misma organización que el flujo compartido en sí.

Al capturar funciones de un solo lugar que son útiles en varios lugares, el flujo compartido te ayuda a garantizar la coherencia, acortar el tiempo de desarrollo y administrar más fácilmente el código.

En el siguiente video, se muestra cómo crear y rastrear un flujo compartido en la IU de Edge.

En el siguiente video de 5 minutos, se muestra cómo crear y rastrear un flujo compartido en la IU clásica de Edge (solo Edge para la nube privada).

Puede llamar a un flujo compartido mediante la política Flow mejorado. Además, si adjuntas un flujo compartido a un hook de flujo, puedes hacer que el flujo compartido se ejecute antes de una solicitud de proxy o de destino, o luego de una respuesta de proxy o de destino.

Para obtener información de referencia sobre la política FlowCallout, consulta Política FlowCallout. Para obtener más información sobre los hooks de flujo, consulta Adjunta un flujo compartido con un hook de flujo.

Por ejemplo, imagina que tienes áreas de funcionalidad que se usan en varios lugares o que se deben estandarizar entre las API de tu organización. Puedes tener un flujo compartido para cada categoría, incluido lo siguiente:

  • seguridad, con código de autorización mediante verificación de clave de API y OAuth, además de código de protección contra amenazas.
  • registro para generar mensajes de error estándar.
  • mediación, para transformar entre formatos de mensajes XML y JSON.

En la siguiente ilustración, dos proxies de API salen (con una política de FlowCallout) en un flujo compartido para autenticar solicitudes de usuario entrantes. El AuthSharedFlow se implementó por separado en la organización antes que los proxies para que esté disponible y admita solicitudes de estos. Un equipo responsable de políticas generales de la empresa puede desarrollar y administrar un flujo compartido para, luego, consumirlo en los proxies de los equipos de línea de negocio que compilan apps más especializadas.

Desarrolla un flujo compartido

Cuando desarrollas un flujo compartido, siempre debes probarlo con llamadas enviadas a un proxy de API. En otras palabras, no puedes enviar solicitudes directamente a un flujo compartido como lo harías con un proxy de API. En su lugar, envías solicitudes a un proxy de API que, a su vez, llama al flujo compartido.

Estos son los pasos de alto nivel para desarrollar un flujo compartido:

  1. Descubre cuál debería ser el conjunto compartido de funciones.

    Por ejemplo, es posible que desees combinar funciones de administración del tráfico, como suprimir los aumentos de tráfico. De esa manera, puedes administrar su configuración fuera del flujo de trabajo de quienes implementan la lógica de línea de negocio.

  2. Desarrolla un flujo compartido mediante la implementación de políticas y recursos de asistencia, tal como lo harías al desarrollar un proxy de API.

    Un flujo compartido es una secuencia de pasos condicionales. Entonces, el desarrollo de uno es como desarrollar un proxy de API. Puedes incluir políticas y recursos que puedas incluir en un proxy.

    Por ejemplo, como parte de tu asistencia para la administración del tráfico, puedes implementar una política de protección contra aumentos de tráfico que permita solo 30 solicitudes por segundo, como en el siguiente ejemplo:

    <SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest">
        <DisplayName>Spike Arrest</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>
    

    Luego, en un flujo compartido para la administración del tráfico, puedes adjuntar la política de Spike Arrest como un paso. La política se ejecutará en cualquier proxy de API que llame al flujo compartido.

    <SharedFlow name="default">
        <Step>
            <Name>Spike-Arrest</Name>
        </Step>
    </SharedFlow>
    

    Si deseas obtener información para iniciar un flujo compartido en la consola de administración, consulta Crea un flujo compartido en la IU de Edge.

    Al igual que con los proxies de API, puedes importar un archivo ZIP que contenga tus artefactos de origen del flujo compartido (consulta Importa un proxy de API nuevo para obtener más información sobre la importación de proxies). A continuación, se muestra cómo importar un flujo compartido con la API de administración:

    curl -X POST -F "file=@/path/to/zip/file.zip" \ 'https://api.enterprise.apigee.com/v1/o/{org_name}/sharedflows?action=import&name=shared-flow-name' \
    -u email:password
    
  3. Implementa el flujo compartido en el entorno antes de implementar proxies o flujos compartidos que lo consumirán. Implementa un flujo compartido de la misma manera en que implementas un proxy de API. (Para obtener más información, consulta Descripción general de la implementación).

    Un flujo compartido debe estar en la misma organización y, luego, implementarse en el mismo entorno que los proxies de API y otros flujos compartidos que lo consumen. La implementación del flujo compartido antes de los proxies hace posible la resolución de la dependencia del proxy en el flujo compartido, en el momento de la implementación.

    Puedes implementar un flujo compartido con una llamada a la API de administración como la siguiente:

    curl -X POST --header "Content-Type: application/octet-stream" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments \
    -u email:password
    

    También puedes reemplazar un flujo compartido implementado actualmente sin tiempo de inactividad. (Esto es muy similar a los proxies de API. Consulta Implementa proxies de API con la API de administración para obtener más información. Este es el formulario de solicitud que se usa con la API de administración:

    curl -X POST --header "Content-Type:application/x-www-form-urlencoded" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments?"override=true" \
    -u email:password
    
  4. Desarrolla el proxy de API de consumo para que pueda llamar al flujo compartido como parte de su propio flujo.

    Desde un proxy de API, se llama a un flujo compartido con una política FlowTexto. También puedes adjuntar el flujo compartido al proxy mediante un hook de flujo, como se describe en Adjunta un flujo compartido mediante un hook de flujo. Para obtener un instructivo introductorio sobre cómo crear un proxy de API, consulta Compila tu primer proxy de API.

    Para consumir un flujo compartido, agrega una política Flow mejorado en el proxy o en el flujo compartido que lo consumirá. Al igual que una política de texto destacado del servicio, en la que llamas a otro servicio, una FlowCallout llama al flujo compartido. El proxy de API de consumo se debe implementar después del flujo compartido y en el mismo entorno que el flujo compartido. El flujo compartido deberá estar implementado cuando quieras probar una llamada mediante la política FlowCallout.

    En el siguiente código, una política de FlowCallout llama a un flujo compartido llamado traffic-management-shared.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Traffic-Management-Flow-Callout">
        <DisplayName>Traffic Management FlowCallout</DisplayName>
        <Properties/>
        <SharedFlowBundle>traffic-management-shared</SharedFlowBundle>
    </FlowCallout>
    

    Para obtener más información, consulta Llama a un flujo compartido desde un proxy de API o un flujo compartido

  5. Implementa el proxy de API de consumo para comenzar a usar el flujo compartido. (Para obtener más información sobre la implementación en general, consulta Información sobre la implementación).
  6. Realiza un desarrollo iterativo mediante el seguimiento, como lo harías con un proxy de API.

    Al igual que con un proxy de API, debes desarrollar un flujo compartido mediante la invocación iterativa y el seguimiento hasta que tengas la lógica como desees. En este caso, como el flujo compartido no se ejecuta por sí solo, invoca un extremo proxy y rastrea el proxy.

    A continuación, se indican los pasos que debes seguir:

    1. Asegúrate de que el flujo compartido y el proxy de API que lo llama con una política Flow conformidad estén en la misma organización y se implementen en el mismo entorno.
    2. En la pestaña Seguimiento del proxy de API, comience a realizar el seguimiento del proxy de API.
    3. Envía una solicitud a un extremo proxy en el proxy de API. El flujo desde el extremo debe incluir la política Flow mejorado que llama al flujo compartido.
    4. En la pestaña Seguimiento, examina el flujo del proxy de API al flujo compartido.

      Ten en cuenta que, en el seguimiento, el flujo compartido se representa como un conjunto de pasos o políticas en un cuadro gris. Íconos que representan políticas de FlowCallout antes de los flujos compartidos. (Para obtener más información sobre el seguimiento, consulta Cómo usar la herramienta de seguimiento).

Crea un flujo compartido en la IU de Edge

Cuando usas la IU de Apigee Edge para crear un flujo compartido, puedes crear uno desde cero o importar las fuentes de flujo existentes como un archivo ZIP de paquete de flujo.

  1. Accede a la página Flujos compartidos, como se describe a continuación. En la página Flujos compartidos, puedes ver una lista de flujos compartidos en la organización y editar o borrar flujos en la lista.

    Edge

    Para acceder a la página Flujos compartidos con la IU de Edge, haz lo siguiente:

    1. Accede a apigee.com/edge.
    2. Selecciona la organización que contiene tu flujo compartido. Consulta Cambia entre tus organizaciones.

      El flujo compartido estará disponible para cualquier proxy de API y flujos compartidos implementados en un entorno de esta organización. No estará disponible fuera de esta organización.

    3. Selecciona Desarrollar > Flujos compartidos en la barra de navegación izquierda.

    Edge clásico (nube privada)

    Para acceder a la página Flujos compartidos con la IU clásica de Edge, sigue estos pasos:

    1. Accede a http://ms-ip:9000, donde ms-ip es la dirección IP o el nombre de DNS del nodo del servidor de administración.
    2. Selecciona la organización que contiene tu flujo compartido. Consulta Cambia entre tus organizaciones.

      El flujo compartido estará disponible para cualquier proxy de API y flujos compartidos implementados en un entorno de esta organización. No estará disponible fuera de esta organización.

    3. Selecciona APIs > Flujos compartidos en la barra de navegación superior.
  2. Haz clic en el botón + Flujo compartido para comenzar a agregar un nuevo flujo compartido.
  3. En la página Crea un flujo compartido, elige cómo deseas crear el flujo nuevo:
    • Crea un flujo nuevo desde cero. Podrás configurar políticas y recursos como pasos en el flujo.
      1. Selecciona Empty Shared Flow.
      2. Ingresa un valor de nombre. Este será el nombre que los proxies de API y otros flujos compartidos usarán para hacer referencia a este flujo compartido. El nombre debe ser descriptivo para los desarrolladores que consumen el flujo.
      3. Ingresa una descripción para proporcionar más información sobre lo que hace el flujo.
      4. Haz clic en Siguiente (Next).
      5. De manera opcional, selecciona los entornos en los que deseas implementar el flujo nuevo.

        Por ejemplo, si probarás el flujo compartido desde proxies de API implementados en el entorno de pruebas, impleméntalo para probar.

      6. Haz clic en Build and Deploy para que se cree y se implemente el nuevo flujo compartido en los entornos que seleccionaste. Si no seleccionaste ningún entorno, se creará el flujo compartido, pero no se implementará.

    • Crea un paquete de flujo para crear un flujo compartido a partir de fuentes existentes.
      1. Selecciona Paquete de flujo compartido para especificar un archivo ZIP que contenga los artefactos que desees en el flujo nuevo.

        Un paquete de flujo compartido contiene los artefactos de origen de un flujo compartido. Por ejemplo, si descargaras un flujo compartido desde la IU de Edge, tendrías un archivo ZIP con el paquete de flujo.

      2. Haz clic en Siguiente.
      3. Haz clic en Elegir archivo para buscar el archivo ZIP que contiene las fuentes de flujo compartidas que deseas importar.
      4. En el cuadro Nombre de flujo compartido, ingresa un nombre para el flujo importado. Este será el nombre que los proxies de API y otros flujos compartidos usarán para hacer referencia a este flujo compartido. El nombre debe ser descriptivo para los desarrolladores que consumen el flujo.
      5. Haz clic en Siguiente (Next).
      6. Haz clic en Build para compilar el flujo nuevo a partir de las fuentes que importas.

Llama a un flujo compartido desde un proxy de API o un flujo compartido

Puedes llamar a un flujo compartido desde un proxy o desde otro flujo compartido mediante la política FlowCallout.

  1. En la IU de Edge, busca el proxy o el flujo compartido desde el que deseas llamar a otro flujo compartido.
  2. En el navegador, junto a Políticas, haz clic en el botón +.*
  3. En la lista de políticas, en Extensión, haga clic en FlowCallout.
  4. Ingresa el nombre visible y el nombre (identificador único) y, luego, selecciona el flujo compartido al que llamará esta política.
  5. Haz clic en Agregar.
  6. Agrega la nueva política Flow conformidad con el proxy en el que deseas que se realice la llamada.

Consulta también

Encadena proxies de API