Erstellen Sie ein AgentCore Gateway mithilfe der API
Um mithilfe der API ein AgentCore Gateway zu erstellen, stellen Sie eine CreateGatewayAnfrage an einen der Endpunkte der AgentCore Steuerungsebene.
Sie müssen mindestens die folgenden Felder angeben:
Die folgenden optionalen Felder fügen Ihrem Gateway Metadaten hinzu:
-
protocolType— Der Protokolltyp für das Gateway. Wenn Sie dies auf einstellenMCP, arbeitet das Gateway im Aggregationsmodus und kann nur MCP-Ziele haben. Wenn Sie dieses Feld weglassen, kann das Gateway sowohl MCP- als auch HTTP-Ziele haben.
-
description— Eine Beschreibung des Gateways.
-
tags— Ein Wörterbuch mit Schlüssel-Wert-Paaren, in denen Tags angegeben sind, mit denen Sie Ihr Gateway zu Überwachungszwecken kennzeichnen können.
Die verbleibenden Felder hängen von Ihrer Gateway-Konfiguration und davon ab, ob Sie benutzerdefinierte Funktionen für Ihr Gateway ein- und ausschalten möchten:
-
clientToken— Ein Client-Token-Wert, der sicherstellt, dass eine Anfrage nicht mehr als einmal abgeschlossen wird. Wenn Sie dieses Token nicht angeben, wird eines nach dem Zufallsprinzip für Sie generiert. Wenn Sie keinen Wert angeben, wird einer nach dem Zufallsprinzip für Sie generiert. Weitere Informationen finden Sie unter Sicherstellen von Idempotenz.
-
authorizerConfiguration— Wenn Ihr Autorisierungstyp istCUSTOM_JWT, müssen Sie dieses Feld angeben, um die Gateway-Autorisierungs- und Authentifizierungsparameter anzugeben. Weitere Informationen finden Sie unter Die Authorizer-Konfiguration.
-
kmsKeyArn— Um Ihr Gateway mit einem KMS-Schlüssel zu verschlüsseln, geben Sie den ARN des Schlüssels in dieses Feld ein. Weitere Informationen finden Sie unter Verschlüsseln Sie Ihr AgentCore Gateway mit einem vom Kunden verwalteten KMS-Schlüssel.
-
exceptionLevel— Um das Debuggen von Nachrichten beim Aufrufen des Gateways zu aktivieren, setzen Sie diesen Wert auf. DEBUG Weitere Informationen finden Sie unter Debugging-Nachrichten aktivieren. Beispiele für das Erstellen eines Gateways mit dieser Einstellung finden Sie unter Erstellen eines Gateways mit Debugging-Nachrichten.
-
interceptorConfigurations— Um benutzerdefinierten Code zu aktivieren, der beim Aufrufen Ihres Gateways ausgeführt wird, fügen Sie dieses Feld hinzu. Weitere Informationen finden Sie unter Interzeptoren mit Gateway verwenden. Beispiele für die Erstellung eines Gateways mit Interzeptoren finden Sie unter Erstellen eines Gateways mit Interzeptorkonfigurationen.
-
protocolConfiguration— Um Anpassungen für das Gateway-Protokoll einzubeziehen, konfigurieren Sie die Einstellungen in diesem Feld. Informationen zu den Optionen in dieser Konfiguration finden Sie unter GatewayProtocolConfiguration.
Die Authorizer-Konfiguration
Wenn Ihr Autorisierungstyp istCUSTOM_JWT, müssen Sie auch eine Autorisierer-Konfiguration in das Feld aufnehmen. authorizerConfiguration Die grundlegende Struktur der Authorizer-Konfiguration sieht wie folgt aus:
{
"customJWTAuthorizer": {
"discoveryUrl": "string",
"allowedAudience": ["string"],
"allowedClients": ["string"],
"allowedScopes": ["string"],
"customClaims": see below
}
}
Sie müssen die Discovery-URL für das Authentifizierungstoken angeben. Die verbleibenden Felder definieren Einschränkungen für die Authentifizierungsansprüche:
-
allowedAudience— Die Zielgruppen oder Dienste, die mit dem JWT umgehen können.
-
allowedClients— Die Clients, die ein JWT erstellen dürfen.
-
allowedScopes— Der Umfang dieser Regelung schränkt die Anzahl der Ansprüche ein.
-
customClaims— Eine Reihe von Objekten, mit denen Sie benutzerdefinierte Felder und Werte definieren können, die die zu authentifizierenden Ansprüche einschränken. Jedes Objekt ist ein CustomClaimValidationsType Objekt und enthält die folgenden Felder:
-
inboundTokenClaimName— Der Name des benutzerdefinierten Anspruchsfeldes, das überprüft werden soll.
-
inboundTokenClaimValueType— Der Datentyp des Anspruchswerts, nach dem gesucht werden soll.
-
authorizingClaimMatchValue— Definiert den Wert, mit dem der Forderungswert abgeglichen werden soll. Enthält die folgenden Felder:
-
claimMatchOperator— Definiert die Beziehung, nach der zwischen dem Vergleichswert und dem Anspruchswert gesucht werden soll.
-
claimMatchValue— Ein Objekt, das nur eines der folgenden Felder enthält:
-
match ValueString — Wird in den folgenden Situationen verwendet:
-
Geben Sie bei „inboundTokenClaimValueTypeis“ STRING und „claimMatchOperatorisEQUALS“ eine Zeichenfolge an, mit der der Claim-Wert für die Authentifizierung abgeglichen werden soll.
-
Geben Sie bei „inboundTokenClaimValueTypeis“ STRING_ARRAY und „claimMatchOperatorisCONTAINS“ eine Zeichenfolge an, die das Claim-Value-Array für die Authentifizierung enthalten soll.
-
matchValueArray— Wenn inboundTokenClaimValueType is STRING_ARRAY und claimMatchOperator isCONTAINS_ANY, geben Sie ein Array von Werten an, die Sie auf Authentifizierung überprüfen möchten. Wenn einer der Werte im Claim-Value-Array mit einem der Werte in der übereinstimmtmatchValueArray, kann der Anspruch authentifiziert werden.
Die folgenden Beispiele zeigen die Struktur der CustomClaimValidationsType Objekte, die Sie angeben können:
Beispiel
- String matches string
-
-
{
"inboundTokenClaimName": "string",
"inboundTokenClaimValueType": "STRING",
"authorizingClaimMatchValue": {
"claimMatchValue": {
"matchValueString": "string"
},
"claimMatchOperator": "EQUALS"
}
}
- Array contains string
-
-
{
"inboundTokenClaimName": "string",
"inboundTokenClaimValueType": "STRING_ARRAY",
"authorizingClaimMatchValue": {
"claimMatchValue": {
"matchValueString": "string"
},
"claimMatchOperator": "CONTAINS"
}
}
- Array contains any value in array
-
-
{
"inboundTokenClaimName": "string",
"inboundTokenClaimValueType": "STRING_ARRAY",
"authorizingClaimMatchValue": {
"claimMatchValue": {
"matchValueStringList": ["string"]
},
"claimMatchOperator": "CONTAINS_ANY"
}
}
Um Beispiele für die Erstellung eines Gateways zu sehen, erweitern Sie den Abschnitt, der Ihrem Anwendungsfall entspricht:
Ein Gateway erstellen: einfaches Beispiel (benutzerdefinierte JWT-Autorisierung)
Dieser Abschnitt enthält grundlegende Beispiele für die Erstellung eines Gateways.
Beachten Sie Folgendes: * Die Werte für die Autorisierungskonfiguration stammen aus dem Zeitpunkt, als Sie die eingehende Autorisierung eingerichtet haben. * Wenn Sie eine Option wählen, die die Angabe eines offenen ARN für die Gateway-Servicerolle beinhaltet, stellen Sie sicher, dass Sie einen vorhandenen ARN angeben, den Sie eingerichtet haben. Weitere Informationen finden Sie unter Berechtigungen für AgentCore Gateway-Dienstrollen.
Wählen Sie eine der folgenden Methoden aus:
Beispiel
- AgentCore CLI
-
-
Die AgentCore CLI bietet eine einfache Möglichkeit, ein Gateway in einer Befehlszeilenschnittstelle zu erstellen.
Um das Gateway zu erstellen, verwenden Sie den agentcore add gateway Befehl. Die Gateway-Servicerolle und die Amazon Cognito Cognito-Autorisierung werden während der Bereitstellung automatisch für Sie konfiguriert.
Verwenden von Standardargumenten
Führen Sie den folgenden Befehl in einem Terminal aus, um ein Gateway ohne Autorisierung zu erstellen (Standard). Um eine benutzerdefinierte JWT-Autorisierung hinzuzufügen, geben Sie die Authorizer-Flags an, wie im nächsten Beispiel gezeigt:
agentcore add gateway --name my-gateway
Argumente angeben
Der folgende Befehl zeigt, wie ein Gateway mit benutzerdefinierter JWT-Autorisierung und expliziter Konfiguration erstellt wird:
agentcore add gateway \
--name my-gateway \
--authorizer-type CUSTOM_JWT \
--discovery-url "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration" \
--allowed-audience "api.example.com"
agentcore deploy
Nach der Bereitstellung ist der von agentcore gatewayUrl angezeigte Status der Endpunkt, der beim Aufrufen des Gateways verwendet werden soll.
- Interactive
-
-
Führen Sie den Befehl aus, agentcore um die TUI zu öffnen, wählen Sie dann Hinzufügen und dann Gateway aus:
-
Geben Sie den Gateway-Namen ein:
-
Wählen Sie Custom JWT als Autorisierungstyp und drücken Sie die Eingabetaste:
-
Konfigurieren Sie erweiterte Optionen:
-
Lesen Sie die Zusammenfassung der Konfiguration und drücken Sie die Eingabetaste, um Folgendes zu bestätigen:
- AWS CLI
-
-
Führen Sie den folgenden Code in einem Terminal aus, um ein Basis-Gateway mit der AWS CLI zu erstellen:
aws bedrock-agentcore-control create-gateway \
--name my-gateway \
--role-arn arn:aws:iam::123456789012:role/my-gateway-service-role \
--protocol-type MCP \
--authorizer-type CUSTOM_JWT \
--authorizer-configuration '{
"customJWTAuthorizer": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
}'
gatewayUrlIn der Antwort steht der Endpunkt, der verwendet werden soll, wenn Sie das Gateway aufrufen.
- AWS Python SDK (Boto3)
-
-
Der folgende Python-Code zeigt, wie Sie mit dem AWS Python-SDK (Boto3) ein einfaches Gateway erstellen:
import boto3
# Initialize the AgentCore client
client = boto3.client('bedrock-agentcore-control')
# Create a gateway
gateway = client.create_gateway(
name="my-gateway",
roleArn="arn:aws:iam::123456789012:role/my-gateway-service-role",
protocolType="MCP",
authorizerType="CUSTOM_JWT",
authorizerConfiguration={
"customJWTAuthorizer": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
}
)
print(f"MCP Endpoint: {gateway['gatewayUrl']}")
Ein Gateway erstellen: einfaches Beispiel (IAM-Autorisierung)
Dieser Abschnitt enthält grundlegende Beispiele für die Erstellung eines Gateways mithilfe der IAM-Autorisierung. Bei der IAM-Autorisierung benötigen Sie keine Autorisierungskonfiguration.
Die AgentCore CLI unterstützt nicht die Erstellung von Gateways mit IAM-Autorisierung. Verwenden Sie die AWS Befehlszeilenschnittstelle oder das AWS Python-SDK (Boto3), um ein Gateway mit IAM-Autorisierung zu erstellen.
Wählen Sie eine der folgenden Methoden aus:
Beispiel
- AWS CLI
-
-
Führen Sie Folgendes in einem Terminal aus:
aws bedrock-agentcore-control create-gateway \
--name my-gateway \
--role-arn arn:aws:iam::123456789012:role/MyAgentCoreServiceRole \
--protocol-type MCP \
--authorizer-type AWS_IAM
- Boto3
-
-
import boto3
# Create the AgentCore client
agentcore_client = boto3.client('bedrock-agentcore-control')
# Create a gateway
gateway = agentcore_client.create_gateway(
name="my-gateway",
roleArn="arn:aws:iam::123456789012:role/MyAgentCoreServiceRole",
protocolType="MCP",
authorizerType="AWS_IAM"
)
Erstellen Sie ein Gateway: einfaches Beispiel (KEIN Authorizer)
Dieser Abschnitt enthält grundlegende Beispiele für die Erstellung eines Gateways mit dem Autorisierungstyp NONE. Dies stellt ein Gateway dar, das keine Authentifizierung oder Autorisierung für eingehende Anfragen durchführt.
* Der Autorisierungstyp NONE steht für ein Gateway, das keine Authentifizierung oder Autorisierung für eingehende Anfragen durchführt. Sicherheitsbedenken und weitere Informationen zur Verwendung dieser Konfiguration finden Sie unter Autorisierung eingehender Nachrichten. * Wenn Sie eine Option wählen, die die Angabe eines offenen ARN für die Gateway-Servicerolle beinhaltet, stellen Sie sicher, dass Sie einen vorhandenen ARN angeben, den Sie eingerichtet haben. Weitere Informationen finden Sie unter Berechtigungen für AgentCore Gateway-Dienstrollen.
Wählen Sie eine der folgenden Methoden aus:
Beispiel
- AgentCore CLI
-
-
Die AgentCore CLI bietet eine einfache Möglichkeit, ein Gateway mit dem Autorisierungstyp NONE in einer Befehlszeilenschnittstelle zu erstellen.
Der folgende Befehl zeigt, wie ein Gateway mit dem Autorisierungstyp NONE erstellt wird:
agentcore add gateway \
--name my-gateway \
--authorizer-type NONE
agentcore deploy
Nach der Bereitstellung ist der von agentcore gatewayUrl angezeigte Status der Endpunkt, der beim Aufrufen des Gateways verwendet werden soll.
- Interactive
-
-
Führen Sie den Befehl aus, agentcore um die TUI zu öffnen, wählen Sie dann Hinzufügen und dann Gateway aus:
-
Geben Sie den Gateway-Namen ein:
-
Wählen Sie NONE als Autorisierungstyp und drücken Sie die Eingabetaste:
-
Konfigurieren Sie erweiterte Optionen:
-
Lesen Sie die Zusammenfassung der Konfiguration und drücken Sie die Eingabetaste, um Folgendes zu bestätigen:
- AWS CLI
-
-
Führen Sie den folgenden Code in einem Terminal aus, um mithilfe der AWS CLI ein Gateway mit dem Autorisierungstyp NONE zu erstellen:
aws bedrock-agentcore-control create-gateway \
--name my-gateway \
--role-arn arn:aws:iam::111122223333:role/my-gateway-service-role \
--protocol-type MCP \
--authorizer-type NONE
gatewayUrlIn der Antwort steht der Endpunkt, der verwendet werden soll, wenn Sie das Gateway aufrufen.
- AWS Python SDK (Boto3)
-
-
Der folgende Python-Code zeigt, wie Sie mithilfe des AWS Python-SDK (Boto3) ein Gateway mit dem Autorisierungstyp NONE erstellen:
import boto3
# Initialize the AgentCore client
client = boto3.client('bedrock-agentcore-control')
# Create a gateway
gateway = client.create_gateway(
name="my-gateway",
roleArn="arn:aws:iam::111122223333:role/my-gateway-service-role",
protocolType="MCP",
authorizerType="NONE"
)
print(f"MCP Endpoint: {gateway['gatewayUrl']}")
Ein Gateway erstellen: einfaches Beispiel (AUTHENTICATE_ONLY-Autorisierung)
Dieser Abschnitt enthält Beispiele für die Erstellung eines Gateways mit Autorisierung. AUTHENTICATE_ONLY Bei diesem Autorisierungstyp validiert das Gateway das eingehende Token, führt jedoch keine vollständige Autorisierung durch. Die authentifizierte Identität oder das authentifizierte Token wird dann zur nachfolgenden Autorisierung an das Ziel weitergeleitet. Dies ist nützlich, wenn das Gateway überprüfen soll, ob der Anrufer authentifiziert ist, und gleichzeitig Autorisierungsentscheidungen an den Zieldienst delegieren soll.
Der AUTHENTICATE_ONLY Autorisierungstyp erfordert eine JWT-Autorisierungskonfiguration. Das Gateway validiert das Token, erzwingt jedoch keine Einschränkungen des Bereichs oder der Zielgruppe für die Autorisierung. Wenn Sie eine Option wählen, die die Angabe eines offenen ARN für die Gateway-Servicerolle beinhaltet, stellen Sie sicher, dass Sie einen vorhandenen ARN angeben, den Sie eingerichtet haben. Weitere Informationen finden Sie unter Berechtigungen für AgentCore Gateway-Dienstrollen.
Wählen Sie eine der folgenden Methoden aus:
Beispiel
- AWS CLI
-
-
Führen Sie den folgenden Befehl aus, um ein Gateway mit AUTHENTICATE_ONLY Autorisierung zu erstellen:
aws bedrock-agentcore-control create-gateway \
--name my-gateway \
--role-arn arn:aws:iam::111122223333:role/my-gateway-service-role \
--authorizer-type AUTHENTICATE_ONLY \
--authorizer-configuration '{
"jwtAuthenticationConfiguration": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
}'
gatewayUrlIn der Antwort steht der Endpunkt, der verwendet werden soll, wenn Sie das Gateway aufrufen.
- AWS Python SDK (Boto3)
-
-
Der folgende Python-Code zeigt, wie ein Gateway mit AUTHENTICATE_ONLY Autorisierung erstellt wird:
import boto3
# Initialize the AgentCore client
client = boto3.client('bedrock-agentcore-control')
# Create a gateway
gateway = client.create_gateway(
name="my-gateway",
roleArn="arn:aws:iam::111122223333:role/my-gateway-service-role",
authorizerType="AUTHENTICATE_ONLY",
authorizerConfiguration={
"jwtAuthenticationConfiguration": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
}
)
print(f"Gateway URL: {gateway['gatewayUrl']}")
Erstellen Sie ein Gateway mit semantischer Suche
Dieser Abschnitt enthält grundlegende Beispiele für die Erstellung eines Gateways mit einem Tool, mit dem Sie semantisch nach relevanten Tools suchen können. Informationen zur Verwendung dieses Tools finden Sie unter Suchen nach Tools in Ihrem AgentCore Gateway mit einer Abfrage in natürlicher Sprache.
Wählen Sie eine der folgenden Methoden aus:
Beispiel
- AgentCore CLI
-
-
Standardmäßig ist die semantische Suche aktiviert, wenn Sie ein Gateway mit der AgentCore CLI erstellen. Verwenden Sie das --no-semantic-search Flag, um es zu deaktivieren. Um ein Gateway mit aktivierter semantischer Standardsuche zu erstellen:
agentcore add gateway --name my-gateway
agentcore deploy
- Interactive
-
-
Führen Sie den Befehl aus, agentcore um die TUI zu öffnen, wählen Sie dann Hinzufügen und dann Gateway aus. Die semantische Suche ist in den erweiterten Optionen standardmäßig aktiviert:
-
Geben Sie den Gateway-Namen ein:
-
Wählen Sie den Autorisierungstyp aus und drücken Sie die Eingabetaste:
-
Stellen Sie in den erweiterten Optionen sicher, dass die semantische Suche aktiviert ist (dies ist die Standardeinstellung):
-
Lesen Sie die Zusammenfassung der Konfiguration und drücken Sie die Eingabetaste, um Folgendes zu bestätigen:
- AWS CLI
-
-
Aktivieren Sie die semantische Suche, wenn Sie ein Gateway in der AWS CLI erstellen, indem Sie searchType as SEMANTIC im --protocol-configuration Objekt angeben, wie im folgenden Beispiel:
aws bedrock-agentcore-control create-gateway \
--name my-gateway \
--role-arn arn:aws:iam::123456789012:role/my-gateway-service-role \
--protocol-type MCP \
--authorizer-type CUSTOM_JWT \
--authorizer-configuration '{
"customJWTAuthorizer": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
}' \
--protocol-configuration '{
"mcp": {
"searchType": "SEMANTIC"
}
}'
gatewayUrlIn der Antwort steht der Endpunkt, der verwendet werden soll, wenn Sie das Gateway aufrufen.
- AWS Python SDK (Boto3)
-
-
Aktivieren Sie die semantische Suche, wenn Sie ein Gateway mit dem AWS Python-SDK (Boto3) erstellen, indem Sie searchType as SEMANTIC im protocolConfiguration Objekt angeben, wie im folgenden Beispiel:
import boto3
# Initialize the AgentCore client
client = boto3.client('bedrock-agentcore-control')
# Create a gateway
gateway = client.create_gateway(
name="my-gateway",
roleArn="arn:aws:iam::123456789012:role/my-gateway-service-role",
protocolType="MCP",
authorizerType="CUSTOM_JWT",
authorizerConfiguration={
"customJWTAuthorizer": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
},
protocolConfiguration={
"mcp": {
"searchType": "SEMANTIC"
}
}
)
print(f"MCP Endpoint: {gateway['gatewayUrl']}")
Erstellen Sie ein Gateway mit Debugging-Nachrichten
Sie können ein Gateway mit Debugging-Nachrichten erstellen, indem Sie den exceptionLevel Wert als angeben. DEBUG Dieser Abschnitt enthält Beispiele für die Erstellung eines Gateways mit Debugging-Nachrichten. Weitere Informationen finden Sie unter Debugging-Nachrichten aktivieren.
Die AgentCore CLI ist DEBUG standardmäßig nicht exceptionLevel auf eingestellt. Sie müssen das --exception-level DEBUG Kennzeichen bei der Erstellung des Gateways übergeben. Sie können das Debuggen von Nachrichten deaktivieren, indem Sie eine UpdateGatewayAnfrage senden und das Argument weglassen. exceptionLevel
Wählen Sie eine der folgenden Methoden aus:
Beispiel
- AgentCore CLI
-
-
Wenn Sie ein Gateway mit der AgentCore CLI erstellen, übergeben Sie das --exception-level Flag, um Debugging-Nachrichten zu aktivieren:
agentcore add gateway --name my-gateway --exception-level DEBUG
agentcore deploy
- Interactive
-
-
Führen Sie den Befehl aus, agentcore um die TUI zu öffnen, wählen Sie dann Hinzufügen und dann Gateway aus. In den erweiterten Optionen können Sie das Debuggen von Nachrichten aktivieren, indem Sie die Ausnahmestufe wie folgt festlegen: DEBUG
-
Geben Sie den Gateway-Namen ein:
-
Wählen Sie den Autorisierungstyp aus und drücken Sie die Eingabetaste:
-
Stellen Sie in den erweiterten Optionen die Ausnahmestufe wie folgt ein: DEBUG
-
Lesen Sie die Zusammenfassung der Konfiguration und drücken Sie die Eingabetaste, um Folgendes zu bestätigen:
- AWS CLI
-
-
Führen Sie den folgenden Code in einem Terminal aus, um ein Gateway mit aktivierten Debugging-Nachrichten in der AWS CLI zu erstellen:
aws bedrock-agentcore-control create-gateway \
--name my-gateway \
--role-arn arn:aws:iam::123456789012:role/my-gateway-service-role \
--protocol-type MCP \
--authorizer-type CUSTOM_JWT \
--authorizer-configuration '{
"customJWTAuthorizer": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
}' \
--exception-level DEBUG
gatewayUrlIn der Antwort steht der Endpunkt, der verwendet werden soll, wenn Sie das Gateway aufrufen.
- AWS Python SDK (Boto3)
-
-
Der folgende Python-Code zeigt, wie Sie mit dem AWS Python-SDK (Boto3) ein einfaches Gateway erstellen:
import boto3
# Initialize the AgentCore client
client = boto3.client('bedrock-agentcore-control')
# Create a gateway
gateway = client.create_gateway(
name="my-gateway",
roleArn="arn:aws:iam::123456789012:role/my-gateway-service-role",
protocolType="MCP",
authorizerType="CUSTOM_JWT",
authorizerConfiguration={
"customJWTAuthorizer": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
},
exceptionLevel="DEBUG"
)
print(f"MCP Endpoint: {gateway['gatewayUrl']}")
Erstellen Sie ein Gateway mit Interceptor-Konfigurationen
Dieser Abschnitt enthält Beispiele für die Erstellung eines Gateways, für das Interzeptoren konfiguriert sind. Interzeptoren werden zur Laufzeit des Gateways für jede Anfrage aufgerufen.
* Interceptoren werden zur Laufzeit des Gateways für jede Anfrage aufgerufen. * Wenn Sie eine Option wählen, die die Angabe eines offenen ARN für die Gateway-Servicerolle beinhaltet, stellen Sie sicher, dass Sie einen vorhandenen ARN angeben, den Sie eingerichtet haben. Weitere Informationen finden Sie unter Berechtigungen für AgentCore Gateway-Dienstrollen.
Wählen Sie eine der folgenden Methoden aus:
Beispiel
- AgentCore CLI
-
-
Erstellen Sie mit der AgentCore CLI zuerst das Gateway und konfigurieren Sie dann Interceptors mithilfe der AWS CLI oder des AWS Python-SDK (Boto3).
Erstellen Sie das Gateway:
agentcore add gateway \
--name my-gateway \
--authorizer-type CUSTOM_JWT \
--discovery-url "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration" \
--allowed-audience "api.example.com"
agentcore deploy
Konfigurieren Sie nach der Bereitstellung Interceptors auf dem Gateway mit dem AWS update-gateway CLI-Befehl oder dem AWS Python-SDK (Boto3), wie auf den anderen Registerkarten gezeigt.
- Interactive
-
-
Führen Sie agentcore den Befehl aus, um die TUI zu öffnen, wählen Sie dann Hinzufügen und dann Gateway aus. Nachdem Sie das Gateway erstellt haben, konfigurieren Sie Interceptors mit der AWS CLI oder dem AWS Python-SDK (Boto3):
-
Geben Sie den Gateway-Namen ein:
-
Wählen Sie Custom JWT als Autorisierungstyp und drücken Sie die Eingabetaste:
-
Konfigurieren Sie erweiterte Optionen:
-
Lesen Sie die Zusammenfassung der Konfiguration und drücken Sie die Eingabetaste, um Folgendes zu bestätigen:
Nachdem das Gateway erstellt und bereitgestellt wurde, konfigurieren Sie Interceptors mit dem AWS update-gateway CLI-Befehl oder dem AWS Python-SDK (Boto3), wie auf den anderen Registerkarten gezeigt.
- AWS CLI
-
-
Führen Sie den folgenden Code in einem Terminal aus, um mithilfe der CLI ein Gateway mit Interceptorkonfigurationen zu erstellen: AWS
aws bedrock-agentcore-control create-gateway \
--name my-gateway \
--role-arn arn:aws:iam::123456789012:role/my-gateway-service-role \
--protocol-type MCP \
--authorizer-type CUSTOM_JWT \
--authorizer-configuration '{
"customJWTAuthorizer": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
}' \
--interceptor-configurations '[{
"interceptor": {
"lambda": {
"arn":"arn:aws:lambda:us-west-2:123456789012:function:my-interceptor-lambda"
}
},
"interceptionPoints": ["REQUEST"]
}]'
gatewayUrlIn der Antwort steht der Endpunkt, der verwendet werden soll, wenn Sie das Gateway aufrufen.
- AWS Python SDK (Boto3)
-
-
Der folgende Python-Code zeigt, wie Sie mithilfe des AWS Python-SDK (Boto3) ein Gateway mit Interceptorkonfigurationen erstellen:
import boto3
# Initialize the AgentCore client
client = boto3.client('bedrock-agentcore-control')
# Create a gateway
gateway = client.create_gateway(
name="my-gateway",
roleArn="arn:aws:iam::123456789012:role/my-gateway-service-role",
protocolType="MCP",
authorizerType="CUSTOM_JWT",
authorizerConfiguration={
"customJWTAuthorizer": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/some-user-pool/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
},
interceptorConfigurations=[{
"interceptor": {
"lambda": {
"arn":"arn:aws:lambda:us-west-2:123456789012:function:my-interceptor-lambda"
}
},
"interceptionPoints": ["REQUEST"]
}]
)
print(f"MCP Endpoint: {gateway['gatewayUrl']}")
Erstellen Sie ein Gateway mit einer Policy-Engine-Konfiguration
Sie können ein Gateway mit einer Policy-Engine-Konfiguration erstellen. Eine Policy-Engine ist eine Sammlung von Richtlinien, die Aufrufe von Agenten-Tools auswertet und autorisiert. Wenn die Policy-Engine einem Gateway zugeordnet ist, fängt sie alle Agentenanfragen ab und entscheidet auf der Grundlage der definierten Richtlinien, ob jede Aktion zugelassen oder verweigert werden soll. Die Durchsetzung mode gibt an, ob Richtlinien getestet (LOG_ONLY) oder durchgesetzt werden sollen (ENFORCE).
Beispiel
- AgentCore CLI
-
-
Fügen Sie Ihrem Projekt zunächst eine Policy-Engine hinzu. Erstellen Sie dann ein Gateway, das auf die Policy-Engine verweist:
agentcore add policy-engine \
--name MyPolicyEngine
agentcore add gateway \
--name MyGateway \
--authorizer-type CUSTOM_JWT \
--discovery-url https://cognito-idp.us-west-2.amazonaws.com/pool-id/.well-known/openid-configuration \
--allowed-clients clientId \
--policy-engine MyPolicyEngine \
--policy-engine-mode LOG_ONLY
agentcore deploy
Um Richtlinien durchzusetzen, anstatt nur Entscheidungen zu protokollieren, wechseln Sie --policy-engine-mode zuENFORCE.
- AWS CLI
-
-
Führen Sie den folgenden Befehl aus, um mithilfe der AWS CLI ein Gateway mit einer Policy-Engine-Konfiguration zu erstellen:
aws bedrock-agentcore-control create-gateway \
--name my-gateway \
--role-arn arn:aws:iam::123456789012:role/my-gateway-service-role \
--protocol-type MCP \
--authorizer-type CUSTOM_JWT \
--authorizer-configuration '{
"customJWTAuthorizer": {
"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/pool-id/.well-known/openid-configuration",
"allowedClients": ["clientId"]
}
}' \
--policy-engine-configuration '{
"arn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:policy-engine/policy-id",
"mode": "LOG_ONLY"
}' \
--exception-level DEBUG
gatewayUrlIn der Antwort steht der Endpunkt, der verwendet werden soll, wenn Sie das Gateway aufrufen.