

# AgentCore ハーネスのバージョニングとエンドポイント
<a name="harness-versioning"></a>

Amazon Bedrock AgentCore は AgentCore ハーネスの自動バージョニングを実装し、エンドポイントを使用してさまざまな設定を管理できます。ハーネスのバージョニングは [AgentCore ランタイムのバージョニング](agent-runtime-versioning.md)と同じように機能します。ハーネスはランタイムに対するマネージド抽象化ですが、ハーネスコントロールプレーン APIs を使用して管理します。

Amazon Bedrock AgentCore の各ハーネスは、自動的にバージョニングされます。
+ ハーネスを作成すると、AgentCore は自動的にバージョン 1 (V1) を作成します。
+ ハーネスを更新するたびに、完全で自己完結型の設定で新しいバージョンが作成されます。
+ 作成されたバージョンは変更できません
+ 各バージョンには、モデル、システムプロンプト、ツール、メモリ、制限、環境など、実行に必要なすべての設定が含まれています。

## エンドポイントがバージョンを参照する方法
<a name="harness-endpoint-versioning"></a>

エンドポイントは、ハーネスの特定のバージョンを参照する方法を提供します。
+ `DEFAULT` エンドポイントはハーネスの最新バージョンを自動的にポイントします。
+ エンドポイントは特定のバージョンを参照できるため、さまざまな環境 (開発、ステージング、本番稼働など) を維持できます。
+ ハーネスを更新すると、新しいバージョンを指すように`DEFAULT`エンドポイントが自動的に更新されます。
+ エンドポイントは、新しいバージョンを指すように明示的に更新する必要があります

 **エンドポイントを新しいバージョンに更新する例** 

**Example**  

```
import boto3

control_client = boto3.client('bedrock-agentcore-control', region_name='us-west-2')

response = control_client.update_harness_endpoint(
    harnessId='MyHarness-UuFdkQoXSL',
    endpointName='production-endpoint',
    targetVersion='2',
    description='Updated production endpoint'
)

print(response)
```
または、 CLI AWS で以下を実行します。  

```
aws bedrock-agentcore-control update-harness-endpoint \
  --harness-id "MyHarness-UuFdkQoXSL" \
  --endpoint-name "production-endpoint" \
  --target-version "2" \
  --description "Updated production endpoint"
```

## バージョニングシナリオ
<a name="harness-versioning-scenarios"></a>

次の表は、ハーネスのライフサイクル中にバージョニングとエンドポイントがどのように相互作用するかを示しています。


| 変更タイプ | バージョン作成の動作 | 最新バージョン | エンドポイントの動作 | 
| --- | --- | --- | --- | 
| 初回作成 | バージョン 1 (V1) を自動的に作成します | V1 | デフォルトが V1 を指す | 
| モデルの変更 | 更新されたモデル選択を使用して新しいバージョンを作成します | V2 | DEFAULT が V2 に自動的に更新される | 
| V2 で「PROD」エンドポイントを作成する | 新しいバージョンが作成されていない | V2 | PROD エンドポイントが V2 をポイントする | 
| ツールまたはスキルの更新 | 更新されたツール設定を使用して新しいバージョンを作成します | V3 | V3 へのデフォルト更新、PROD は V2 のまま | 
| 「PROD」を V3 に更新する | 新しいバージョンが作成されていない | V3 | V3 への PROD 更新 | 
| 制限または環境の変更 | 更新された実行パラメータを使用して新しいバージョンを作成します | V4 | V4 へのデフォルトの更新、PROD は V3 に残ります | 

## エンドポイントのライフサイクル状態
<a name="harness-endpoint-lifecycle"></a>

ハーネスエンドポイントは、ライフサイクル中にさまざまな状態を経ます。

[CREATING] (作成中)  
エンドポイントの作成時の初期状態

CREATE\_FAILED  
アクセス許可、設定、またはその他の問題による作成の失敗を示します

準備完了  
エンドポイントはリクエストを受け入れる準備ができています

[UPDATING] (更新中)  
エンドポイントは新しいバージョンに更新中です

UPDATE\_FAILED  
更新オペレーションの失敗を示します

## エンドポイントの作成
<a name="harness-creating-endpoints"></a>

名前付きエンドポイントを作成して、環境を特定のハーネスバージョンに固定します。を省略すると`targetVersion`、エンドポイントは作成時に最新バージョンを指します。

**Example**  

```
import boto3

control_client = boto3.client('bedrock-agentcore-control', region_name='us-west-2')

response = control_client.create_harness_endpoint(
    harnessId='MyHarness-UuFdkQoXSL',
    endpointName='production-endpoint',
    targetVersion='2',
    description='Production endpoint pinned to V2'
)

print(response)
```
または、 CLI AWS で以下を実行します。  

```
aws bedrock-agentcore-control create-harness-endpoint \
  --harness-id "MyHarness-UuFdkQoXSL" \
  --endpoint-name "production-endpoint" \
  --target-version "2" \
  --description "Production endpoint pinned to V2"
```

## ハーネスのバージョンとエンドポイントの一覧表示
<a name="harness-listing-versions"></a>

`ListHarnessVersions` オペレーションを呼び出すことで、ハーネスのすべてのバージョンを一覧表示できます。ハーネスのエンドポイントを一覧表示するには、 を呼び出します`ListHarnessEndpoints`。

**Example**  

```
import boto3

control_client = boto3.client('bedrock-agentcore-control', region_name='us-west-2')

# List all versions of a harness
versions = control_client.list_harness_versions(
    harnessId='MyHarness-UuFdkQoXSL'
)
for version in versions['harnessVersions']:
    print(version)

# List all endpoints for a harness
endpoints = control_client.list_harness_endpoints(
    harnessId='MyHarness-UuFdkQoXSL'
)
for endpoint in endpoints['endpoints']:
    print(endpoint)
```
または、 CLI AWS で以下を実行します。  

```
aws bedrock-agentcore-control list-harness-versions \
  --harness-id "MyHarness-UuFdkQoXSL"

aws bedrock-agentcore-control list-harness-endpoints \
  --harness-id "MyHarness-UuFdkQoXSL"
```
どちらのオペレーションも、 `maxResults`および によるページ分割をサポートしています`nextToken`。単一のエンドポイントの設定を取得するには、 を呼び出し、削除する`GetHarnessEndpoint`には、 を呼び出します`DeleteHarnessEndpoint`。

## 関連トピック
<a name="_related_topics"></a>
+  [はじめに](harness-get-started.md) - 最初のハーネスを作成して呼び出す
+  [モデルと手順](harness-models.md) - エージェント、モデル、プロバイダーを設定する
+  [オブザーバビリティとコスト管理](harness-operations.md) - オブザーバビリティ、コスト管理、タグ
+  [AgentCore ランタイムのバージョニングとエンドポイント](agent-runtime-versioning.md) - AgentCore Runtime のバージョニングとエンドポイント