Creación de un gateway de API

Descubra cómo crear un gateway de API con el servicio de gateway de API para procesar el tráfico de clientes de front-end y direccionarlo a servicios de backend.

Puede crear uno o varios gateways de API para procesar el tráfico de clientes de API y direccionarlo a servicios de backend. Después de crear un gateway, debe crear un despliegue.

Puede utilizar un único gateway de API como backend para varios servicios backend de las siguientes formas:

  • Cree un único despliegue de API en el gateway de API, con una especificación de despliegue de API que define varios servicios de backend.
  • Cree varias implementaciones de API en el mismo gateway de API, cada una con una especificación de despliegue de API que defina uno (o varios) servicios de backend.

Si tiene un único gateway de API como front-end, puede presentar una única API cohesiva para consumidores de API y clientes de API, incluso si la API realmente consta de microservicios más pequeños escritos por diferentes equipos de software mediante diferentes tecnologías o lenguajes de programación.

    1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Gestión de API, haga clic en Gateways.
    2. Seleccione el compartimento en el que desea crear el gateway de API.
    3. Haga clic en Crear gateway y, a continuación, especifique los siguientes valores para el gateway de API:

      • Nombre: nombre del gateway de API. Evite introducir información confidencial.
      • Tipo: tipo de gateway de API que se va a crear.
        • Seleccione Privado si solo desea que los recursos de la misma red privada (VCN) o los recursos de otras redes privadas o locales puedan acceder al gateway de API (y las API desplegadas en él) con intercambio de tráfico a esa red privada.
        • Seleccione Público si desea que el gateway de API (y las API desplegadas en él) sean de acceso público. Se puede acceder a gateways de API pública desde Internet, siempre que haya un gateway de Internet en la VCN del gateway de API.
      • compartimento: compartimento en el que se va a crear el gateway de API.
      • Red virtual en la nube en <compartment-name>: VCN en la que se va a crear el gateway de API. La VCN puede estar en el mismo compartimento que el gateway de API, pero no es obligatorio.
      • Red en <compartment-name>: subred regional pública o privada en la que se va a crear el gateway de API. Si desea crear un gateway de API pública, debe especificar una subred regional pública.

        Tenga en cuenta que el gateway de API se comunica en el puerto 443, que no está abierto por defecto. Para permitir el tráfico en el puerto 443, debe agregar una nueva regla de seguridad de entrada con estado a la subred regional (ya sea en una lista de seguridad o en un grupo de seguridad de red). Para conocer las propiedades de la regla de seguridad de entrada, consulte Creación de una VCN para utilizarla con gateway de API, si no existe ninguna.

      • Activar grupos de seguridad de red: seleccione esta opción para controlar el acceso al gateway de API y desde este mediante las reglas de seguridad definidas para uno o varios grupos de seguridad de red (NSG) que especifique (hasta un máximo de cinco grupos de seguridad de red). Puede utilizar reglas de seguridad definidas para NSG en lugar de las definidas para listas de seguridad o además de ellas. Los NSG pueden pertenecer al mismo compartimento que el nuevo gateway de API, pero no es obligatorio. Consulte Grupos de seguridad de red.
      • Certificado: certificado TLS que utiliza el gateway de API. El certificado TLS que seleccione determina el nombre de dominio del gateway de API.
        • Valor por defecto (*.oci.customer-oci.com) (si se muestra): seleccione esta opción si desea que el nombre de dominio se genere automáticamente y que el gateway de API utilice un certificado TLS por defecto obtenido por el servicio de gateway de API. El nombre de dominio por defecto generado contendrá una cadena aleatoria de caracteres seguida de .apigateway.<region-identifier>.oci.customer-oci.com. Por ejemplo, laksjd.apigateway.us-phoenix-1.oci.customer-oci.com. Esta opción no está disponible en algunas regiones.
        • Categoría de servicio de certificados (si se muestra): seleccione un recurso de certificado de servicio de certificados existente que contenga los detalles del certificado TLS personalizado que desea que utilice el gateway de API. El gateway de API utiliza un nombre de dominio personalizado asociado al certificado seleccionado. Esta categoría solo se muestra si los recursos de certificado de servicio Certificates están disponibles en el compartimento seleccionado.
        • Categoría Certificados de gateway de API (si se muestra): seleccione un recurso de certificado de gateway de API existente que contenga los detalles del certificado TLS personalizado que desea que utilice el gateway de API. El gateway de API utiliza un nombre de dominio personalizado asociado al certificado seleccionado. Esta categoría solo se muestra si los recursos de certificado de gateway de API están disponibles en el compartimento seleccionado.

        Consulte Configuración de dominios personalizados y certificados TLS.

        Nota

        Recomendamos utilizar un certificado TLS personalizado para sistemas públicos o de producción. Recomendamos utilizar un certificado TLS por defecto obtenido por el servicio de gateway de API solo para sistemas privados o no de producción (por ejemplo, para desarrollo y pruebas).

    4. También puede hacer clic en Mostrar opciones avanzadas y especificar los siguientes valores:
      • Almacenamiento en caché de respuesta: opciones para activar y configurar el almacenamiento en caché de respuesta para el gateway de API a fin de mejorar el rendimiento y reducir la carga en los servicios de backend. Consulte Almacenamiento en caché de respuestas para mejorar el rendimiento.
      • Autoridades de certificación: uno o más recursos de autoridad de certificación (CA) o recursos de grupo de autoridades de certificación para agregar al almacén de confianza del gateway de API como CA personalizadas y grupos de autoridades de certificación personalizadas (además del grupo de autoridades de certificación por defecto). Las CA personalizadas y los grupos de CA personalizados se utilizan para verificar los certificados TLS presentados por los clientes de API y los servicios de backend. Consulte Customizing Trust Stores for TLS Certificate Verification.
      • Etiquetas: si tiene permiso para crear un recurso, también tendrá permiso para aplicar etiquetas de formato libre a dicho recurso. Si desea aplicar una etiqueta definida, debe tener permisos para utilizar el espacio de nombres de etiqueta. Para obtener más información sobre el etiquetado, consulte Etiquetas de recursos. Si no está seguro de si desea aplicar etiquetas, omita esta opción o pregunte a un administrador. Puede aplicar las etiquetas más tarde.
        Nota

        Si aplica una etiqueta definida a un gateway de API (ya sea directamente o como valor por defecto de etiqueta para un compartimento) y, posteriormente, modifica la definición de etiqueta, el gateway de API puede introducir un estado de fallo. Aplique una etiqueta definida a un gateway de API solo si la etiqueta definida no va a cambiar. Si no está seguro de si una etiqueta definida cambiará, le recomendamos que no la aplique a un gateway de API.
    5. Haga clic en Crear gateway para crear el gateway de API inmediatamente.

      Tenga en cuenta que la creación del nuevo gateway de API puede tardar unos minutos. Mientras se crea, el gateway de API se muestra en estado Creando. Cuando se haya creado correctamente, el gateway de API se muestra en estado Activo.

      Tenga en cuenta también que, en lugar de crear el nuevo gateway de API inmediatamente, puede crearlo más tarde mediante Resource Manager y Terraform, haciendo clic en Guardar como pila para guardar la definición de recurso como una configuración de Terraform. Para obtener más información sobre cómo guardar pilas de definiciones de recursos, consulte Creación de una pila a partir de una página de creación de recursos.

    6. Si el gateway de API tarda unos minutos en mostrarse en estado Activo (o si la operación de creación de gateway de API falla), realice las siguientes acciones:

      1. Haga clic en el nombre del gateway de API y, a continuación, haga clic en Solicitudes de trabajo para ver una visión general de la operación de creación de gateway de API.
      2. Haga clic en Crear gateway para obtener más información sobre esta operación (incluidos los mensajes de error, los mensajes de log y el estado de los recursos asociados).
      3. Si la operación de creación de gateway de API ha fallado y no puede diagnosticar la causa del problema a partir de la información de la solicitud de trabajo, consulte Solución de problemas de gateway de API.

    Después de crear correctamente un gateway de API, puede desplegar una API en él. Consulte Despliegue de una API en un gateway de API a través de la creación de un despliegue de API.

  • Para crear un gateway de API mediante la CLI:

    1. Configure su entorno de cliente para usar la CLI ( Configuración del entorno de cliente para utilizar la CLI para el desarrollo de gateway de API).
    2. Abra un símbolo del sistema y ejecute oci api-gateway gateway create para crear el gateway de API:

      oci api-gateway gateway create --display-name "<gateway-name>" --compartment-id <compartment-ocid> --endpoint-type "<gateway-type>" --subnet-id <subnet-ocid> --certificate-id <certificate-ocid> --ca-bundles file:///<filename> --response-cache-details file:///<filename>

      donde:

      • <gateway-name> es el nombre del nuevo gateway de API. Evite introducir información confidencial.
      • <compartment-ocid> es el OCID del compartimento al que pertenecerá el nuevo gateway de API.
      • <gateway-type> es el tipo de gateway de API que se va a crear. Especifique PRIVATE si solo desea que los recursos de la misma red privada (VCN) puedan acceder al gateway de API (y las API desplegadas en él) o a los recursos de otras redes privadas o locales conectados a esa red privada. Especifique PUBLIC si desea que el gateway de API (y las API desplegadas en él) sean de acceso público. Se puede acceder a gateways de API pública desde Internet, siempre que haya un gateway de Internet en la VCN del gateway de API.
      • <subnet-ocid> es el OCID de una subred regional pública o privada en la que se creará el gateway de API. Si desea crear un gateway de API pública, debe especificar una subred regional pública.

        Tenga en cuenta que el gateway de API se comunica en el puerto 443, que no está abierto por defecto. Para permitir el tráfico en el puerto 443, debe agregar una nueva regla de seguridad de entrada con estado a la subred regional (ya sea en una lista de seguridad o en un grupo de seguridad de red). Para conocer las propiedades de la regla de seguridad de entrada, consulte Creación de una VCN para utilizarla con gateway de API, si no existe ninguna.

      • --network-security-group-ids <nsg-ocids> (opcional) es el OCID de uno o más grupos de seguridad de red. El valor de <nsg-ocids> debe tener un formato JSON válido (ya sea como cadena o transferido como archivo mediante la sintaxis file:///<filename>, incluida una ruta de acceso).
      • <certificate-ocid> (opcional) es el OCID del recurso de certificado creado para el certificado TLS personalizado del gateway de API (ya sea un recurso de certificado de gateway de API o un recurso de certificado de servicio de certificados). Consulte Configuración de dominios personalizados y certificados TLS.
      • --CA-bundles file:///<filename> (opcional) es un archivo que contiene detalles de uno o más recursos de autoridad de certificación (CA) o recursos de grupo de autoridades de certificación para agregar al almacén de confianza del gateway de API como CA personalizadas y grupos de autoridades de certificación personalizadas (además del grupo de autoridades de certificación por defecto). Las CA personalizadas y los grupos de CA personalizados se utilizan para verificar los certificados TLS presentados por los clientes de API y los servicios de backend. Consulte Customizing Trust Stores for TLS Certificate Verification.
      • --response-cache-details file:///<filename> (opcional) es el archivo de configuración de caché, incluida una ruta de acceso, para activar y configurar el almacenamiento en caché de respuesta. Consulte Almacenamiento en caché de respuestas para mejorar el rendimiento.

      Por ejemplo:

      oci api-gateway gateway create --display-name "Hello World Gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaa7______ysq --endpoint-type "PRIVATE" --subnet-id ocid1.subnet.oc1.iad.aaaaaaaaz______rca

      La respuesta al comando incluye:

      • El OCID del gateway de API.
      • El nombre de host como el nombre de dominio que se utilizará al llamar a una API desplegada en el gateway de API. Si no ha especificado un recurso de certificado al crear el gateway de API, se genera automáticamente un nombre de dominio con el formato <gateway-identifier>.apigateway.<region-identifier>.oci.customer-oci.com, donde:

        • <gateway-identifier> es una cadena de caracteres que identifica el gateway de API. Por ejemplo, lak...sjd (abreviado para lectura).
        • <region-identifier> es el identificador de la región en la que se ha creado el gateway de API. Consulte Disponibilidad por región.

        Por ejemplo, lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.com.

      • Estado del ciclo de vida (por ejemplo, ACTIVE, FAILED).
      • ID de la solicitud de trabajo para crear el gateway de API (los detalles de las solicitudes de trabajo están disponibles durante siete días tras la finalización, cancelación o fallo).

      Si desea que el comando espere para devolver el control hasta que el gateway de API esté activo (o la solicitud falle), incluya uno o los dos parámetros siguientes:

      • --wait-for-state ACTIVE
      • --wait-for-state FAILED

      Por ejemplo:

      oci api-gateway gateway create --display-name "Hello World Gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaa7______ysq --endpoint-type "PRIVATE" --subnet-id ocid1.subnet.oc1.iad.aaaaaaaaz______rca --wait-for-state ACTIVE

      Tenga en cuenta que no puede utilizar el gateway de API hasta que la solicitud de trabajo lo haya creado correctamente y esté activo.

    3. (Opcional) Para ver el estado del gateway de API, introduzca lo siguiente:

      oci api-gateway gateway get --gateway-id <gateway-ocid>
    4. (Opcional) Para ver el estado de la solicitud de trabajo que está creando el gateway de API, introduzca:

      oci api-gateway work-request get --work-request-id <work-request-ocid>
    5. (Opcional) Para ver los logs de la solicitud de trabajo que está creando el gateway de API, introduzca:

      oci api-gateway work-request-log list --work-request-id <work-request-ocid>
    6. (Opcional) Si falla la solicitud de trabajo que está creando el gateway de API y desea revisar los logs de errores, introduzca:

      oci api-gateway work-request-error --work-request-id <work-request-ocid>

    Para obtener más información sobre el uso de la CLI, consulte Interfaz de línea de comandos (CLI). Para obtener una lista completa de los indicadores y las opciones disponibles para los comandos de la CLI, consulte Ayuda de CLI.

  • Ejecute la operación CreateGateway para crear un gateway de API.