View a markdown version of this page

Étapes de l'API REST Amazon API Gateway en tant que cibles - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Étapes de l'API REST Amazon API Gateway en tant que cibles

Une cible d'API REST API Gateway connecte votre passerelle à une étape de votre API REST. La passerelle traduit les requêtes MCP entrantes en requêtes HTTP destinées à votre API REST et gère le formatage des réponses. Lorsque vous ajoutez ou mettez à jour une cible API Gateway, AgentCore Gateway appelle l'API d'GetExportAPI Gateway en votre nom.

Vous pouvez spécifier des filtres d'outils et des remplacements d'outils dans votre configuration cible. Les filtres d'outils vous permettent de mettre à disposition des combinaisons de chemins de ressources et de méthodes HTTP spécifiques sous forme d'outils sur votre passerelle. Ces filtres créent une liste d'autorisation qui expose uniquement les opérations que vous spécifiez en tant qu'outils.

Vous pouvez également configurer votre stage d'API REST API Gateway en tant que cible de passerelle à partir de la console API Gateway. Pour en savoir plus, consultez la section Ajouter une étape à une AgentCore passerelle dans la documentation Amazon API Gateway.

Principales considérations et limites

Lorsque vous utilisez un stage d'API REST API Gateway comme cible, tenez compte des exigences et limites suivantes :

  • Votre API doit se trouver sur le même compte que votre AgentCore Gateway.

  • Votre API doit se trouver dans la même région que votre AgentCore passerelle.

  • Votre API doit être une API REST API Gateway. Nous ne prenons pas en charge les API ou WebSocket API HTTP API Gateway.

  • Votre API doit être configurée avec un type de point de terminaison public. Les terminaux privés ne sont pas pris en charge. Pour créer une cible de passerelle pouvant accéder aux ressources de votre VPC, vous devez utiliser un point de terminaison public et une intégration privée API Gateway.

  • Si votre API REST possède une méthode qui utilise une AWS_IAM autorisation et nécessite une clé d'API, AgentCore Gateway ne prendra pas en charge cette méthode. Il sera exclu du traitement.

  • Si votre API utilise des ressources proxy/pets/{proxy+}, telles que AgentCore Gateway ne prendra pas en charge cette méthode.

  • Pour configurer votre cible API Gateway, AgentCore Gateway appelle l'API d'GetExportAPI Gateway en votre nom pour obtenir une exportation au format OpenAPI 3.0 de votre définition d'API REST. Pour plus de détails à ce sujet et sur la manière dont cela peut affecter votre configuration Target, consultez API Gateway Export.

Configuration de l'outil API Gateway

Lorsque vous ajoutez une API REST API Gateway en tant que cible de passerelle, vous devez fournir une configuration d'outil API Gateway. La configuration de l'outil API Gateway définit quelles opérations de votre API REST sont exposées en tant qu'outils. Il nécessite une liste de filtres d'outils pour sélectionner les opérations à exposer et accepte éventuellement les remplacements d'outils pour personnaliser les métadonnées des outils, telles que les noms et les descriptions des outils.

Filtres d'outils

Les filtres d'outils vous permettent de sélectionner les opérations de l'API REST à l'aide de combinaisons de chemins et de méthodes. Chaque filtre prend en charge deux stratégies de correspondance de chemins :

  • Chemins explicites  : correspond à un seul chemin spécifique, tel que /pets/{petId}

  • Chemins génériques  : correspond à tous les chemins commençant par le préfixe spécifié, tel que /pets/ *

Chaque filtre spécifie à la fois un chemin et une liste de méthodes HTTP. Le filtre permet de résoudre les combinaisons correspondantes qui existent dans votre API. Plusieurs filtres peuvent se chevaucher et les doublons sont automatiquement dédupliqués.

Remplacements d'outils

Par défaut, le nom de l'outil MCP provient de celui operationId de chaque combinaison de chemin et de méthode correspondant à vos filtres. S'il n'y a pas de correspondance operationId pour un filtre, vous aurez besoin d'un outil de remplacement correspondant qui fournit un nom. Si le nom operationId et le nom de remplacement sont manquants, la création et les mises à jour de la cible échoueront à la validation. Pour plus d'informations sur les noms des outils dans AgentCore Gateway, voir Comprendre comment les outils AgentCore Gateway sont nommés.

Les remplacements d'outils sont facultatifs. Ils vous permettent de personnaliser le nom ou la description de l'outil pour des opérations spécifiques après le filtrage. Chaque remplacement doit spécifier un chemin explicite et une seule méthode HTTP. Les caractères génériques ne sont pas pris en charge. Le remplacement doit correspondre à une opération qui existe dans votre API et doit correspondre à l'une des opérations résolues par vos filtres. Vous ne pouvez pas annuler les opérations qui n'ont pas été sélectionnées. Si vous rencontrez des erreurs lors des importations depuis des opérations sans an, operationId vous pouvez utiliser un outil de remplacement à la place.

Exemples de configurations de l'outil API Gateway

Les exemples de configuration de l'outil API Gateway suivants montrent comment utiliser les filtres et les remplacements. Tous les exemples utilisent une API avec les chemins et méthodes suivants :

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

Chemin du joker et liste des méthodes

Configuration de l'outil :

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

Result

  • GET /pets/{petId}

  • POST /pets/{petId}

Chemin explicite et liste de méthodes

Configuration de l'outil :

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

Result

  • GET /pets/{petId}

  • POST /pets/{petId}

Chemin explicite et liste des méthodes explicites (les plus spécifiques)

Configuration de l'outil :

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

Result

  • GET /pets/{petId}

  • POST /pets/{petId}

Mélangez et associez un chemin explicite et un chemin générique :

Configuration de l'outil :

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

Result

  • GET /pets/{petId}

  • GET /pets/

Filtre d'outil et remplacement d'outil

Vous pouvez fournir un filtre d'outil et ajouter un remplacement. Le remplacement spécifie un chemin de ressource dans l'API REST, tel que /pets, et une méthode HTTP à exposer pour le chemin spécifié. Le remplacement doit correspondre explicitement à un chemin existant dans l'API REST.

Configuration de l'outil

{ "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" } ] }

Result

  • GET /pets/{petId}— correspondant au premiertoolFilter, mais le nom et la description seront remplacés en fonction de l'entrée dans toolOverrides

  • POST /pets/{petId}— correspond au premier toolFilter mais utilisera le operationId et description depuis la spécification OpenAPI exportée pour le nom et la description de l'outil

  • GET /— correspondant au second filtre d'outil explicite qui nomme un chemin et une seule méthode

Exportation d'API Gateway

Pour configurer votre cible API Gateway, AgentCore Gateway appelle l'GetExportopération pour API Gateway en votre nom afin d'obtenir une exportation au format OpenAPI 3.0 de votre définition d'API. Cela permet à la passerelle de traduire correctement les requêtes MCP entrantes en requêtes HTTP et de gérer la réponse. Les considérations suivantes doivent être prises en compte lorsque AgentCore Gateway appelle l' GetExport opération :

  • La GetExport demande est faite à l'aide d'une session d'accès direct et utilise les informations d'identification de l'appelant.

    • L'appelant qui crée la cible doit être autorisé à appeler GetExport l'API dans API Gateway.

    • La GetExport demande sera enregistrée CloudTrail.

  • L'API exportée est soumise aux mêmes considérations et limitations que le type de cible OpenAPI.

  • La taille maximale d'une spécification OpenAPI exportée depuis API Gateway est de 50 Mo.

Mettre à jour OperationID sur votre API REST

Important

La spécification OpenAPI exportée doit inclure des operationId champs pour toutes les opérations que vous souhaitez exposer en tant qu'outils. Le operationId est utilisé comme nom d'outil dans l'interface MCP.

Vous pouvez mettre à jour votre API REST pour vous assurer que la définition OpenAPI renvoyée par GetExport est operationId définie. Il s'agit d'une alternative à la fourniture d'un outil de remplacement. Ce qui suit explique deux manières de définir leoperationId.

Définissez l'OperationID en mettant à jour votre définition OpenAPI

Exportez la définition OpenAPI depuis votre phase d'API déployée en appelant GetExport, en mettant à jour les opérations operationId manquantes et en réimportant votre API.

  1. Exportez la définition OpenAPI depuis votre phase d'API déployée en appelant GetExport. Vous pouvez le faire à l'aide de l'interface de ligne de commande :

    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. Modifiez la définition OpenAPI manuellement pour ajouter les deux opérations operationId pour lesquelles la propriété est absente.

  3. Importez votre définition OpenAPI mise à jour avec PutRestApi. Vous pouvez le faire à l'aide de l' AWS interface de ligne de commande :

    aws apigateway put-rest-api \ --rest-api-id rest-api-id \ --mode merge \ --body 'fileb:///path/to/api_oas30_template.json'
  4. Redéployez votre API sur votre scène à l'aide de la AWS CLI :

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

Définissez l'OperationID en mettant à jour la méthode de votre API REST

Vous pouvez configurer votre méthode API Gateway pour en ajouter une à operationName l'aide de la UpdateMethod commande. Lorsque votre API est exportée, elle operationName se transforme enoperationId.

  1. Appelez UpdateMethod avec 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. Redéployez votre API sur votre scène à l'aide de la AWS CLI :

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

Méthodes d'autorisation sortantes prises en charge pour une API API Gateway

Vous pouvez configurer votre cible de AgentCore passerelle pour passer des appels vers votre API avec une authentification sortante.

AgentCore Gateway prend en charge les types d'autorisation sortante suivants pour les cibles API Gateway :

  • IAM-based autorisation sortante  : utilisez le rôle de service de passerelle pour authentifier l'accès à la cible de passerelle avec Signature Version 4 (Sigv4 ou SigV4a). Nécessite que l'autorisation IAM soit activée sur votre API API Gateway.

  • Clé API  : appelez votre API à l'aide d'une clé API gérée par AgentCore Gateway. Ce n'est pas la même chose que les clés d'API dans API Gateway.

  • Aucune autorisation (déconseillé) — Certains types de cibles vous offrent la possibilité de contourner l'autorisation sortante.

Pour en savoir plus, consultez la section Configuration de l'autorisation sortante pour votre passerelle.

Autorisation IAM pour les envois sortants

API Gateway vous permet de sécuriser votre API REST avec IAM. Lorsque l'autorisation IAM est activée, les clients doivent utiliser Signature Version 4 (Sigv4 ou SigV4a) pour signer leurs demandes à l'aide d'informations d'identification. AWS

Pour configurer l'autorisation IAM pour les envois sortants

  1. Créez un rôle IAM avec les autorisations de confiance appropriées conformément aux autorisations de rôle de service AgentCore Gateway.

  2. Ajoutez une politique à votre rôle pour autoriser l'action execute-api:Invoke ainsi qu'une ressource correspondant à l'ID et à l'étape de l'API REST que vous avez utilisés pour configurer votre cible, comme la politique suivante :

    { "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" } ] }

Politiques relatives aux ressources d'API Gateway

Les politiques de ressources API Gateway sont des documents de stratégie JSON que vous joignez à une API REST API Gateway pour contrôler si un principal spécifié peut invoquer l'API. Pour que AgentCore Gateway puisse appeler votre API REST avec une politique de ressources, vous devez effectuer les opérations suivantes :

  • Définissez le type d'autorisation de méthode AWS_IAM pour toute méthode d'API REST que vous mettez à disposition en tant qu'outil.

  • Configurez votre politique de ressources pour permettre au bedrock-agentcore.amazonaws.com principal d'appeler votre service. Vous pouvez ajouter des directeurs supplémentaires à la politique.

Voici un exemple de politique de ressources d'API qui accorde à AgentCore Gateway l'accès à votre 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" } } } ] }

Autorisation sortante par clé d'API

Pour configurer l'autorisation sortante à l'aide d'une clé API, vous utilisez le service AgentCore Identity pour créer un fournisseur d'informations d'identification et une clé API pour laquelle vous avez configuré via API Gateway.

Pour configurer l'autorisation sortante par clé d'API

  1. Créez une clé d'API dans API Gateway conformément à la section Configuration des clés d'API pour les API REST dans API Gateway.

  2. Suivez les étapes pour configurer l'autorisation sortante à l'aide d'une clé API, en fournissant la clé API que vous avez créée via API Gateway.