View a markdown version of this page

Las etapas de la API REST de Amazon API Gateway como objetivos - Amazon Bedrock AgentCore

Las etapas de la API REST de Amazon API Gateway como objetivos

Un objetivo de API REST de API Gateway conecta tu puerta de enlace a una etapa de tu API REST. La puerta de enlace traduce las solicitudes MCP entrantes en solicitudes HTTP a tu API REST y gestiona el formato de las respuestas. Cuando agregas o actualizas un objetivo de API Gateway, AgentCore Gateway llama a la API de GetExportAPI Gateway en tu nombre.

Puedes especificar filtros y sustituciones de herramientas en tu configuración de destino. Los filtros de herramientas le permiten hacer que combinaciones específicas de rutas de recursos y métodos HTTP estén disponibles como herramientas en su puerta de enlace. Estos filtros crean una lista de permitidos que expone solo las operaciones que especifique como herramientas.

También puede configurar la etapa de API REST de API Gateway como destino de puerta de enlace desde la consola de API Gateway. Para obtener más información, consulte Añadir una etapa a una AgentCore puerta de enlace en la documentación de Amazon API Gateway.

Consideraciones y limitaciones clave

Cuando utilices una etapa de API REST de API Gateway como destino, ten en cuenta los siguientes requisitos y limitaciones:

  • Tu API debe estar en la misma cuenta que tu AgentCore Gateway.

  • Su API debe estar en la misma región que su AgentCore puerta de enlace.

  • Tu API debe ser una API REST de API Gateway. No admitimos las API ni WebSocket las API HTTP de API Gateway.

  • Su API debe estar configurada con un tipo de punto final público. No se admiten puntos de conexión privados. Para crear un Gateway Target que pueda acceder a los recursos de su VPC, debe usar un endpoint público y una integración privada de API Gateway.

  • Si tu API de REST tiene un método que utiliza la AWS_IAM autorización y requiere una clave de API, AgentCore Gateway no admitirá este método. Se excluirá del procesamiento.

  • Si tu API usa recursos de proxy, por ejemplo/pets/{proxy+}, AgentCore Gateway no admitirá este método.

  • Para configurar el objetivo de su API Gateway, AgentCore Gateway llama a la API de GetExportAPI Gateway en su nombre para obtener una exportación con formato OpenAPI 3.0 de su definición de API REST. Para obtener más información sobre esto y cómo podría afectar a la configuración de Target, consulte API Gateway Export.

Configuración de la herramienta API Gateway

Cuando agregas una API REST de API Gateway como destino de puerta de enlace, debes proporcionar una configuración de la herramienta API Gateway. La configuración de la herramienta API Gateway define qué operaciones de su API REST se exponen como herramientas. Requiere una lista de filtros de herramientas para seleccionar las operaciones que se van a exponer y, de forma opcional, acepta sustituciones de herramientas para personalizar los metadatos de las herramientas, como los nombres y las descripciones de las herramientas.

Filtros de herramientas

Los filtros de herramientas le permiten seleccionar las operaciones de la API REST mediante combinaciones de rutas y métodos. Cada filtro admite dos estrategias de coincidencia de rutas:

  • Rutas explícitas: coincide con una única ruta específica, como /pets/{petId}

  • Rutas comodín: coincide con todas las rutas que comiencen por el prefijo especificado, como /pets/ *

Cada filtro especifica una ruta y una lista de métodos HTTP. El filtro se resuelve en combinaciones coincidentes que existen en tu API. Se pueden superponer varios filtros y los duplicados se deduplican automáticamente.

Anulación de herramientas

De forma predeterminada, el nombre de la herramienta MCP se toma de la combinación operationId de ruta y método que coincida con los filtros. Si no hay ningún filtro que coincida, necesitará una herramienta de reemplazo correspondiente que proporcione un nombre. operationId Si faltan tanto el operationId nombre como el nombre de anulación, la creación y las actualizaciones del destino no se validarán. Para obtener más información sobre los nombres de las herramientas en AgentCore Gateway, consulte Cómo se nombran las herramientas de AgentCore Gateway.

Las anulaciones de herramientas son opcionales. Permiten personalizar el nombre o la descripción de la herramienta para operaciones específicas después del filtrado. Cada anulación debe especificar una ruta explícita y un único método HTTP. No se admite el uso de comodines. La anulación debe coincidir con una operación que exista en tu API y debe corresponder a una de las operaciones resueltas por tus filtros. No puedes anular las operaciones que no se seleccionaron. Si se producen errores al importar debido a operaciones sin una, operationId puede utilizar una herramienta de anulación en su lugar.

Ejemplos de configuraciones de la herramienta API Gateway

En el siguiente ejemplo de configuraciones de la herramienta API Gateway, se muestra cómo usar filtros y anulaciones. Todos los ejemplos utilizan una API con las siguientes rutas y métodos:

/pets/{petId} - GET /pets/{petId} - POST /pets/{petId} - OPTIONS /pets - GET /pets - OPTIONS / - GET

Ruta comodín y lista de métodos

Configuración de la herramienta:

{ "filterPath": "/pets/*", "methods": ["GET", "POST"] }

Resultado

  • GET /pets/{petId}

  • POST /pets/{petId}

Ruta explícita y lista de métodos

Configuración de la herramienta:

{ "filterPath": "/pets/{petId}", "methods": ["GET", "POST"] }

Resultado

  • GET /pets/{petId}

  • POST /pets/{petId}

Ruta explícita y lista de métodos explícitos (los más específicos)

Configuración de la herramienta:

{ [ { "filterPath": "/pets/{petId}", "methods": ["POST"] }, { "filterPath": "/pets/{petId}", "methods": ["GET"] } ] }

Resultado

  • GET /pets/{petId}

  • POST /pets/{petId}

Mezcle y combine una ruta explícita y una ruta comodín:

Configuración de la herramienta:

{ [ { "filterPath": "/pets/{petId}", "methods": ["GET"] }, { "filterPath": "/*", "methods": ["GET"] } ] }

Resultado

  • GET /pets/{petId}

  • GET /pets/

Filtro de herramientas y anulación de herramientas

Puede proporcionar un filtro de herramientas y añadir una modificación. La anulación especifica una ruta de recursos en la API REST, como /pets, y un método HTTP que se debe exponer para la ruta especificada. La anulación debe coincidir de forma explícita con una ruta existente en la API REST.

Configuración de la herramienta

{ "toolFilters": [ { "filterPath": "/pets/*", "methods": ["GET", "POST"] }, { "filterPath": "/", "methods": ["GET"] } ], "toolOverrides": [ { "path": "/pets/{petId}", "method": "GET", "name": "GetPetById", "description": "Retrieve a specific pet by its ID" } ] }

Resultado

  • GET /pets/{petId}— coincide con la primeratoolFilter, pero el nombre y la descripción se anularán en función de la entrada en toolOverrides

  • POST /pets/{petId}— coincide con la primeratoolFilter, pero utilizará la especificación OpenAPI exportada operationId y la description especificación de OpenAPI para el nombre y la descripción de la herramienta

  • GET /— coincide con el segundo filtro de herramienta explícito que nombra una ruta y un único método

Exportación de API Gateway

Para configurar su objetivo de API Gateway, AgentCore Gateway llama a la GetExportoperación API Gateway en su nombre para obtener una exportación con formato OpenAPI 3.0 de su definición de API. Esto ayuda a la puerta de enlace a convertir correctamente las solicitudes MCP entrantes en solicitudes HTTP y a gestionar la respuesta. Las siguientes son consideraciones para cuando AgentCore Gateway llama a la GetExport operación:

  • La GetExport solicitud se realiza mediante una sesión de acceso directo y utiliza las credenciales de la persona que llama.

    • La persona que llama y crea el destino debe tener permisos para llamar GetExporta la API en API Gateway.

    • Se iniciará sesión en CloudTrail la GetExport solicitud.

  • La API exportada está sujeta a las mismas consideraciones y limitaciones que el tipo de destino de OpenAPI.

  • El tamaño máximo de una especificación de OpenAPI exportada desde API Gateway es de 50 MB.

Actualización de OperationID en tu API REST

importante

La especificación de OpenAPI exportada debe incluir operationId campos para todas las operaciones que desee exponer como herramientas. operationIdSe utiliza como nombre de la herramienta en la interfaz MCP.

Puedes actualizar tu API REST para asegurarte de que se GetExporthaya operationId establecido la definición de OpenAPI devuelta por. Esta es una alternativa a proporcionar una herramienta de anulación. A continuación se explican dos formas de configurar eloperationId.

Configura el OperationID actualizando tu definición de OpenAPI

Exporte la definición de OpenAPI desde la fase de API implementada llamando GetExport, actualizando las operaciones que faltan operationId y volviendo a importar su API.

  1. Exporte la definición de OpenAPI desde la etapa de API implementada mediante una llamada. GetExport Puede hacerlo con la CLI:

    aws apigateway get-export \ --rest-api-id rest-api-id \ --stage-name api-stage \ --export-type oas30 \ --parameters 'extensions=apigateway' \ '/path/to/api_oas30_template.json'
  2. Edite la definición de OpenAPI manualmente para añadir las operaciones operationId a las que les falta la propiedad.

  3. Importe su definición de OpenAPI actualizada con. PutRestApi Puede hacerlo con la AWS CLI:

    aws apigateway put-rest-api \ --rest-api-id rest-api-id \ --mode merge \ --body 'fileb:///path/to/api_oas30_template.json'
  4. Vuelva a implementar su API en su escenario con la CLI AWS :

    aws apigateway create-deployment \ --rest-api-id rest-api-id \ --stage-name api-stage \ --description 'deployment-description'

Configura el OperationID actualizando el método de tu API REST

Puede configurar su método API Gateway para añadir un operationName mediante el UpdateMethodcomando. Cuando se exporta tu API, se operationName convierte enoperationId.

  1. Llame UpdateMethodcon la AWS CLI:

    aws apigateway update-method \ --rest-api-id rest-api-id \ --resource-id resource-id \ --http-method http-method \ --patch-operations '[ { "op": "replace", "path": "/operationName", "value": operation-id } ]'
  2. Vuelva a implementar su API en su escenario con la CLI AWS :

    aws apigateway create-deployment \ --rest-api-id rest-api-id \ --stage-name api-stage \ --description 'deployment-description'

Métodos de autorización de salida compatibles para una API API Gateway

Puedes configurar tu destino de AgentCore Gateway para realizar llamadas a tu API con autenticación saliente.

AgentCore Gateway admite los siguientes tipos de autorización de salida para los destinos de API Gateway:

  • IAM-based autorización de salida: utilice la función de servicio de puerta de enlace para autenticar el acceso al destino de la puerta de enlace con la versión 4 de Signature (SiGv4 o SiGV4a). Requiere que la API de API Gateway tenga habilitada la autorización de IAM.

  • Clave de API: llame a su API con una clave de API gestionada por AgentCore Gateway. No es lo mismo que las claves de API de API Gateway.

  • Sin autorización (no se recomienda): algunos tipos de objetivos ofrecen la opción de omitir la autorización saliente.

Para obtener más información, consulta Configurar la autorización de salida para tu puerta de enlace.

Autorización saliente de IAM

API Gateway le permite proteger su API REST con IAM. Cuando la autorización de IAM está habilitada, los clientes deben usar la versión 4 de Signature (SigV4 o SigV4a) para firmar sus solicitudes con credenciales. AWS

Para configurar la autorización saliente de IAM

  1. Cree una función de IAM con los permisos de confianza correctos de acuerdo con los permisos de la función de servicio de AgentCore Gateway.

  2. Añada una política a su función para permitir la acción execute-api:Invoke junto con un recurso que se corresponda con el identificador de la API de REST y la fase que utilizó para configurar su objetivo, como la siguiente política:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "execute-api:Invoke" ], "Resource": "arn:aws:execute-api:aws-region:account-id:rest-api-id/api-stage/*/*", "Effect": "Allow" } ] }

Políticas de recursos de API Gateway

Las políticas de recursos de API Gateway son documentos de política de JSON que se adjuntan a una API REST de API Gateway para controlar si un principal específico puede invocar la API. Para que AgentCore Gateway llame a tu API REST con una política de recursos, debes hacer lo siguiente:

  • Establezca el tipo de autorización del método en cualquier método de la API REST que ponga a disposición como herramienta. AWS_IAM

  • Configure su política de recursos para permitir que el bedrock-agentcore.amazonaws.com director llame a su servicio. Puede añadir directores adicionales a la política.

El siguiente es un ejemplo de una política de recursos de API que otorga a AgentCore Gateway acceso a su API REST.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-west-2:111122223333:abcd123/*/*/*", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/my-gateway-d4jrgkaske" } } } ] }

Autorización de salida por clave de API

Para configurar la autorización de salida con una clave de API, utilice el servicio de AgentCore identidad para crear un proveedor de credenciales y con una clave de API que haya configurado a través de API Gateway.

Para configurar la autorización de salida mediante clave de API

  1. Cree una clave de API en API Gateway de acuerdo con Configurar claves de API para las API de REST en API Gateway.

  2. Sigue los pasos para configurar la autorización de salida con una clave de API, proporcionando la clave de API que creaste a través de API Gateway.