

# AgentCore Gateway の使用を開始する
<a name="gateway-quick-start"></a>

このクイックスタートガイドでは、 AgentCore CLI を使用してゲートウェイをセットアップし、エージェントに統合する方法について説明します。より包括的なガイドと例については、[Amazon Bedrock AgentCore Gateway GitHub リポジトリ](https://github.com/awslabs/amazon-bedrock-agentcore-samples/tree/main/01-tutorials/02-AgentCore-gateway)を参照してください。

**注記**  
AgentCore CLI には、AgentCore Gateway リソースを管理するためのコマンドとインタラクティブ TUI ウィザードの両方が用意されています。 AWS SDK API の完全なリファレンスについては、[AgentCore コントロールプレーンオペレーション](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agentcore-control.html)」を参照してください。

**Topics**
+ [前提条件](#gateway-quick-start-prereqs)
+ [ステップ 1: のセットアップとインストール](#gateway-quick-start-setup)
+ [ステップ 2: ゲートウェイを作成する](#gateway-quick-start-create-gateway-setup)
+ [ステップ 3: セットアップを実行する](#gateway-quick-start-run-setup)
+ [ステップ 4: エージェントでゲートウェイを使用する](#gateway-quick-start-use-gateway-with-agents)
+ [構築したもの](#gateway-quick-start-what-youve-built)
+ [トラブルシューティング](#gateway-quick-start-troubleshooting)
+ [クイック検証](#gateway-quick-start-quick-validation)
+ [クリーンアップ](#gateway-quick-start-cleanup)
+ [次の手順](#gateway-quick-start-next-steps)

## 前提条件
<a name="gateway-quick-start-prereqs"></a>

開始する前に、以下があることを確認してください。
+  ** AWS 認証情報が設定されたアカウント**。認証情報を設定するには、「 [AWS CLI の開始方法](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)」の手順に従って AWS コマンドラインインターフェイスをインストールして使用できます。
+  **Node.js 18\+** がインストールされている (AgentCore CLI の場合）。
+  **Python 3.10 以降**がインストールされている (エージェントスクリプト用）。
+  ロール、Lambda 関数を作成し、Amazon Bedrock AgentCore を使用するための **IAM アクセス許可**。
+  **モデルアクセス** – Amazon Bedrock コンソール (またはデモエージェントの別のモデル) で Anthropic の Claude Sonnet 3.7 を有効にする

## ステップ 1: のセットアップとインストール
<a name="gateway-quick-start-setup"></a>

AgentCore CLI をグローバルにインストールします。

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

エージェントとゲートウェイを使用して新しい AgentCore プロジェクトを作成します。

**Example**  

1. 

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

   `--defaults` フラグは、デフォルトの Python Strands エージェントを使用してプロジェクトを作成します。または、 `--defaults`と を省略`--name`して、インタラクティブウィザードを使用して任意のフレームワークを選択します。

1. フラグ`agentcore create`なしで を実行して、インタラクティブウィザードを使用することもできます。このウィザードでは、プロジェクト名、エージェントフレームワーク、モデルプロバイダー、その他のオプションを選択する手順を説明します。

## ステップ 2: ゲートウェイを作成する
<a name="gateway-quick-start-create-gateway-setup"></a>

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. `agentcore` を実行して TUI を開き、**追加**を選択して**ゲートウェイ** を選択します。

1. ゲートウェイ名を入力します。  
![ゲートウェイウィザード: 名前を入力する](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/tui/gateway-add-name.png)

1. オーソライザータイプを選択します。このクイックスタートでは、**NONE** を選択します。  
![ゲートウェイウィザード: NONE オーソライザーを選択する](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/tui/gateway-add-auth-none.png)

1. 詳細オプションを設定するか、デフォルトを受け入れます。  
![ゲートウェイウィザード: 詳細設定](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/tui/gateway-add-advanced.png)

1. 設定を確認し、**Enter** キーを押して以下を確認します。  
![ゲートウェイウィザード: 設定の確認](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/tui/gateway-add-confirm.png)

   次に、もう一度**追加**を選択し、**ゲートウェイターゲット**を選択して Lambda 関数ターゲットを追加します。

1. ターゲット名を入力します。

1. ターゲットタイプとして **Lambda 関数**を選択します。  
![ゲートウェイターゲットウィザード: Lambda 関数を選択する](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/tui/gateway-target-type-lambda.png)

1. Lambda ARN とツールスキーマファイルパスを入力し、確認します。

代わりに JWT ベースの認可を使用するには、OAuth 検出 URL `--authorizer-type CUSTOM_JWT`で を指定します。

**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. `agentcore` を実行して TUI を開き、**追加** を選択し、**ゲートウェイ** を選択します。オーソライザータイプの入力を求められたら、**カスタム JWT** を選択します。

1. ゲートウェイ名を入力します。  
![ゲートウェイウィザード: 名前を入力する](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/tui/gateway-add-name.png)

1. オーソライザータイプとして**カスタム JWT** を選択します。  
![ゲートウェイウィザード: カスタム JWT オーソライザーを選択する](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/tui/gateway-add-auth-jwt.png)

1. プロンプトが表示されたら、OAuth 検出 URL と許可された対象者を入力します。

1. 詳細オプションを設定するか、デフォルトを受け入れます。  
![ゲートウェイウィザード: 詳細設定](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/tui/gateway-add-advanced.png)

1. 設定を確認し、**Enter** キーを押して以下を確認します。  
![ゲートウェイウィザード: 設定の確認](https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/images/tui/gateway-add-confirm.png)

## ステップ 3: セットアップを実行する
<a name="gateway-quick-start-run-setup"></a>

プロジェクトを次の場所にデプロイします AWS。

```
agentcore deploy
```

CLI は AWS CDK スタックを合成し、ゲートウェイ、ターゲット、エージェントを Amazon Bedrock AgentCore にデプロイします。これには約 2～3 分かかります。

## ステップ 4: エージェントでゲートウェイを使用する
<a name="gateway-quick-start-use-gateway-with-agents"></a>

AgentCore CLI を使用してゲートウェイ URL を取得します。

```
agentcore status
```

という名前の新しいファイルを作成し`run_agent.py`、次のコードを挿入します。最初に 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()
```

### エージェントを実行する
<a name="gateway-quick-start-run-agent"></a>

エージェントを実行し、ツールを操作してゲートウェイをテストします。

```
python run_agent.py
```

そのとおりです。エージェントが開始され、次のような質問をすることができます。
+ 「シアトルの天気は？」
+ 「ニューヨークは何時ですか？」

## 構築したもの
<a name="gateway-quick-start-what-youve-built"></a>

この入門チュートリアルでは、次のリソースを作成しました。
+  **MCP サーバー (ゲートウェイ)** : のマネージドエンドポイント `https://gateway-id.gateway.bedrock-agentcore.region.amazonaws.com/mcp` 
+  **Lambda ツール**: テストデータを返すモック関数 (天候: "72°F, Sunny"、時間: "2:30 PM")
+  **AI エージェント**: ツールを検出して使用できる Claude を活用したアシスタント

## トラブルシューティング
<a name="gateway-quick-start-troubleshooting"></a>

次の表は、考えられる問題とその解決策を示しています。


| 問題 | ソリューション | 
| --- | --- | 
| 「「strands」という名前のモジュールはありません」 | 実行: `pip install strands-agents`  | 
| 「モデルが有効ではありません」 | Bedrock コンソールで Claude Sonnet 3.7 を有効にする → モデルアクセス | 
| 「AccessDeniedException」 | bedrock-agentcore の IAM アクセス許可を確認する:\* | 
| ゲートウェイが応答しない | DNS 伝達の作成後 30～60 秒待ちます | 

## クイック検証
<a name="gateway-quick-start-quick-validation"></a>

ターミナルで次のコマンドを実行して、ゲートウェイが動作していることを確認します。

```
# 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
```

## クリーンアップ
<a name="gateway-quick-start-cleanup"></a>

ゲートウェイとそのターゲットをプロジェクトから削除するには:

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

すべてのリソースを削除して再デプロイするには:

```
agentcore remove all
agentcore deploy
```

## 次の手順
<a name="gateway-quick-start-next-steps"></a>
+  **カスタム Lambda ツール** : ビジネスロジックを使用して Lambda 関数を作成する
+  **独自の APIs の追加**: 実際のサービスの OpenAPI 仕様を使用してゲートウェイを拡張する
+  **本番セットアップ**: VPC エンドポイント、カスタムドメイン、モニタリングを設定する