

# Inizia a usare AgentCore Gateway
<a name="gateway-quick-start"></a>

In questa guida rapida imparerai come configurare un gateway e integrarlo nei tuoi agenti utilizzando la AgentCore CLI. Per guide ed esempi più completi, consulta il [ GitHub repository Amazon Bedrock AgentCore Gateway](https://github.com/awslabs/amazon-bedrock-agentcore-samples/tree/main/01-tutorials/02-AgentCore-gateway).

**Nota**  
La AgentCore CLI fornisce sia i comandi che una procedura guidata TUI interattiva per la gestione delle risorse del gateway. AgentCore [Per il riferimento completo all'API AWS SDK, consulta AgentCore Control Plane operations.](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agentcore-control.html)

**Topics**
+ [Prerequisiti](#gateway-quick-start-prereqs)
+ [Fase 1: Configurazione e installazione](#gateway-quick-start-setup)
+ [Fase 2: Creare un gateway](#gateway-quick-start-create-gateway-setup)
+ [Fase 3: Eseguire la configurazione](#gateway-quick-start-run-setup)
+ [Fase 4: Utilizzare il gateway con un agente](#gateway-quick-start-use-gateway-with-agents)
+ [Cosa hai costruito](#gateway-quick-start-what-youve-built)
+ [Risoluzione dei problemi](#gateway-quick-start-troubleshooting)
+ [Convalida rapida](#gateway-quick-start-quick-validation)
+ [Pulizia](#gateway-quick-start-cleanup)
+ [Fasi successive](#gateway-quick-start-next-steps)

## Prerequisiti
<a name="gateway-quick-start-prereqs"></a>

Prima di iniziare, assicurati di avere quanto segue:
+  ** AWS Account** con credenziali configurate. Per configurare le credenziali, puoi installare e utilizzare l'interfaccia a riga di AWS comando seguendo la procedura descritta in [Guida introduttiva alla AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).
+  **Node.js 18\+** installati (per la AgentCore CLI).
+  **Python 3.10\+** installato (per lo script dell'agente).
+  **Autorizzazioni IAM** per la creazione di ruoli, funzioni Lambda e l'utilizzo di Amazon Bedrock. AgentCore
+  **Accesso al modello**: abilita Claude Sonnet 3.7 di Anthropic nella console Amazon Bedrock (o un altro modello per l'agente demo)

## Fase 1: Configurazione e installazione
<a name="gateway-quick-start-setup"></a>

Installa la AgentCore CLI a livello globale:

```
npm install -g @aws/agentcore
```

Crea un nuovo AgentCore progetto con un agente e un gateway:

**Example**  

1. 

   ```
   agentcore create --name MyGatewayAgent --defaults
   ```

   Il `--defaults` flag crea un progetto con un agente Python Strands predefinito. In alternativa, ometti `--defaults` e usa `--name` la procedura guidata interattiva per selezionare il framework preferito.

1. Puoi anche eseguire `agentcore create` senza flag per utilizzare la procedura guidata interattiva. La procedura guidata guida l'utente nella selezione del nome del progetto, del framework dell'agente, del fornitore del modello e di altre opzioni.

## Fase 2: Creare un gateway
<a name="gateway-quick-start-create-gateway-setup"></a>

Aggiungi un gateway e un target al tuo progetto utilizzando la AgentCore CLI:

**Example**  

1. 

   ```
   # Add a gateway with no inbound auth (simplest for getting started)
   agentcore add gateway --name TestGateway --authorizer-type NONE --runtimes MyGatewayAgent
   
   # Add a Lambda function target
   agentcore add gateway-target --name TestLambdaTarget --type lambda-function-arn \
     --lambda-arn <YOUR_LAMBDA_ARN> \
     --tool-schema-file tools.json \
     --gateway TestGateway
   ```

1. **Esegui `agentcore` per aprire il TUI, quindi seleziona **aggiungi** e scegli Gateway:**

1. Inserisci il nome del gateway:  
![Gateway wizard: inserisci il nome](http://docs.aws.amazon.com/it_it/bedrock-agentcore/latest/devguide/images/tui/gateway-add-name.png)

1. Seleziona il tipo di autorizzatore. **Per questo avvio rapido, scegli NONE:**  
![Gateway Wizard: seleziona NONE (autorizzatore)](http://docs.aws.amazon.com/it_it/bedrock-agentcore/latest/devguide/images/tui/gateway-add-auth-none.png)

1. Configura le opzioni avanzate o accetta le impostazioni predefinite:  
![Gateway Wizard: configurazione avanzata](http://docs.aws.amazon.com/it_it/bedrock-agentcore/latest/devguide/images/tui/gateway-add-advanced.png)

1. Rivedi la configurazione e premi **Invio** per confermare:  
![Gateway Wizard: verifica la configurazione](http://docs.aws.amazon.com/it_it/bedrock-agentcore/latest/devguide/images/tui/gateway-add-confirm.png)

   Quindi, seleziona **aggiungi** di nuovo e scegli **Gateway Target** per aggiungere un target della funzione Lambda:

1. Inserisci il nome del bersaglio.

1. Seleziona la **funzione Lambda** come tipo di destinazione:  
![Procedura guidata di destinazione del gateway: seleziona la funzione Lambda](http://docs.aws.amazon.com/it_it/bedrock-agentcore/latest/devguide/images/tui/gateway-target-type-lambda.png)

1. Immettete l'ARN Lambda e il percorso del file dello schema dello strumento, quindi confermate.

Per utilizzare invece l' JWT-based autorizzazione, specifica `--authorizer-type CUSTOM_JWT` con il tuo URL di scoperta OAuth:

**Example**  

1. 

   ```
   agentcore add gateway --name TestGateway \
     --authorizer-type CUSTOM_JWT \
     --discovery-url https://cognito-idp.us-east-1.amazonaws.com/<POOL_ID>/.well-known/openid-configuration \
     --allowed-audience <CLIENT_ID> \
     --runtimes MyGatewayAgent
   ```

1. **Esegui `agentcore` per aprire il TUI, quindi seleziona **aggiungi** e scegli Gateway.** **Quando viene richiesto il tipo di autorizzatore, seleziona Custom JWT:**

1. Inserisci il nome del gateway:  
![Gateway wizard: inserisci il nome](http://docs.aws.amazon.com/it_it/bedrock-agentcore/latest/devguide/images/tui/gateway-add-name.png)

1. Seleziona **Custom JWT** come tipo di autorizzatore:  
![Gateway Wizard: seleziona l'autorizzatore JWT personalizzato](http://docs.aws.amazon.com/it_it/bedrock-agentcore/latest/devguide/images/tui/gateway-add-auth-jwt.png)

1. Inserisci l'URL di rilevamento OAuth e il pubblico consentito quando richiesto.

1. Configura le opzioni avanzate o accetta le impostazioni predefinite:  
![Gateway Wizard: configurazione avanzata](http://docs.aws.amazon.com/it_it/bedrock-agentcore/latest/devguide/images/tui/gateway-add-advanced.png)

1. Rivedi la configurazione e premi **Invio** per confermare:  
![Gateway Wizard: verifica la configurazione](http://docs.aws.amazon.com/it_it/bedrock-agentcore/latest/devguide/images/tui/gateway-add-confirm.png)

## Fase 3: Eseguire la configurazione
<a name="gateway-quick-start-run-setup"></a>

Implementa il tuo progetto su AWS:

```
agentcore deploy
```

La CLI sintetizza uno stack AWS CDK e distribuisce il gateway, i target e l'agente su Amazon Bedrock. AgentCore Questa operazione richiede circa 2-3 minuti.

## Fase 4: Utilizzare il gateway con un agente
<a name="gateway-quick-start-use-gateway-with-agents"></a>

Recupera l'URL del gateway utilizzando la AgentCore CLI:

```
agentcore status
```

Crea un nuovo file chiamato `run_agent.py` e inserisci il codice seguente. Installa prima le dipendenze Python:

```
pip install strands-agents mcp
```

```
"""
Agent script to test the Gateway
Run this after setup: python run_agent.py
"""

from strands import Agent
from strands.models import BedrockModel
from strands.tools.mcp.mcp_client import MCPClient
from mcp.client.streamable_http import streamablehttp_client
import json
import sys

def create_streamable_http_transport(mcp_url: str):
    return streamablehttp_client(mcp_url)

def get_full_tools_list(client):
    """Get all tools with pagination support"""
    more_tools = True
    tools = []
    pagination_token = None
    while more_tools:
        tmp_tools = client.list_tools_sync(pagination_token=pagination_token)
        tools.extend(tmp_tools)
        if tmp_tools.pagination_token is None:
            more_tools = False
        else:
            more_tools = True
            pagination_token = tmp_tools.pagination_token
    return tools

def run_agent():
    # Get the gateway URL from agentcore status
    gateway_url = "<YOUR_GATEWAY_URL>"  # Replace with URL from 'agentcore status'

    # Model configuration - change if needed
    model_id = "anthropic.claude-3-7-sonnet-20250219-v1:0"

    print("Starting AgentCore Gateway Test Agent")
    print(f"Gateway URL: {gateway_url}")
    print(f"Model: {model_id}")
    print("-" * 60)

    # Setup Bedrock model
    bedrockmodel = BedrockModel(
        model_id=model_id,
        streaming=True,
    )

    # Setup MCP client (no auth token needed for NONE authorizer)
    mcp_client = MCPClient(lambda: create_streamable_http_transport(gateway_url))

    with mcp_client:
        # List available tools
        tools = get_full_tools_list(mcp_client)
        print(f"\nAvailable tools: {[tool.tool_name for tool in tools]}")
        print("-" * 60)

        # Create agent
        agent = Agent(model=bedrockmodel, tools=tools)

        # Interactive loop
        print("\nInteractive Agent Ready!")
        print("Try asking: 'What's the weather in Seattle?'")
        print("Type 'exit', 'quit', or 'bye' to end.\n")

        while True:
            user_input = input("You: ")
            if user_input.lower() in ["exit", "quit", "bye"]:
                print("Goodbye!")
                break

            print("\nThinking...\n")
            response = agent(user_input)
            print(f"\nAgent: {response.message.get('content', response)}\n")

if __name__ == "__main__":
    run_agent()
```

### Gestisci il tuo agente
<a name="gateway-quick-start-run-agent"></a>

Metti alla prova il tuo gateway eseguendo l'agente e interagendo con gli strumenti.

```
python run_agent.py
```

Questo è tutto\! L'agente inizierà e potrai porre domande come:
+ «Che tempo fa a Seattle?»
+ «Che ora è a New York?»

## Cosa hai costruito
<a name="gateway-quick-start-what-youve-built"></a>

Attraverso questo tutorial introduttivo, hai creato le seguenti risorse:
+  **MCP Server (Gateway)**: un endpoint gestito presso `https://gateway-id.gateway.bedrock-agentcore.region.amazonaws.com/mcp` 
+  **Strumenti Lambda**: funzioni fittizie che restituiscono dati di test (meteo: «72°F, soleggiato», ora: "14:30")
+  **Agente AI**: Claude-powered assistente in grado di scoprire e utilizzare i tuoi strumenti

## Risoluzione dei problemi
<a name="gateway-quick-start-troubleshooting"></a>

La tabella seguente mostra alcuni possibili problemi e le relative soluzioni:


| Problema | Soluzione | 
| --- | --- | 
| «Nessun modulo chiamato 'strands'» | Esegui: `pip install strands-agents`  | 
| «Modello non abilitato» | Abilita Claude Sonnet 3.7 nella console Bedrock → Accesso al modello | 
| "AccessDeniedException" | Controlla le autorizzazioni IAM per bedrock-agentcore: \* | 
| Il gateway non risponde | Attendi 30-60 secondi dopo la creazione per la propagazione DNS | 

## Convalida rapida
<a name="gateway-quick-start-quick-validation"></a>

Esegui i seguenti comandi in un terminale per verificare che il gateway funzioni.

```
# Check your Gateway is working
curl -X POST YOUR_GATEWAY_URL \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

# Watch live logs
aws logs tail /aws/bedrock-agentcore/gateways/YOUR_GATEWAY_ID --follow
```

## Pulizia
<a name="gateway-quick-start-cleanup"></a>

Per rimuovere il gateway e i relativi obiettivi dal progetto:

```
agentcore remove gateway --name TestGateway
```

Per rimuovere tutte le risorse e ridistribuirle:

```
agentcore remove all
agentcore deploy
```

## Fasi successive
<a name="gateway-quick-start-next-steps"></a>
+  **Strumenti Lambda personalizzati: crea** funzioni Lambda con la tua logica aziendale
+  **Aggiungi le tue API**: estendi il tuo gateway con le specifiche OpenAPI per servizi reali
+  **Configurazione della produzione: configurazione** degli endpoint VPC, dei domini personalizzati e del monitoraggio