

# 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)
```
또는 AWS CLI를 사용하여 다음을 수행할 수 있습니다.  

```
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 | DEFAULT는 V1을 가리킵니다. | 
| 모델 변경 | 업데이트된 모델 선택으로 새 버전을 생성합니다. | V2 | DEFAULT가 V2로 자동 업데이트됨 | 
| V2를 사용하여 "PROD" 엔드포인트 생성 | 새 버전이 생성되지 않음 | V2 | PROD 엔드포인트는 V2를 가리킵니다. | 
| 도구 또는 스킬 업데이트 | 업데이트된 도구 구성으로 새 버전을 생성합니다. | V3 | V3에 대한 DEFAULT 업데이트, PROD는 V2에 남아 있음 | 
| "PROD"를 V3로 업데이트 | 새 버전이 생성되지 않음 | V3 | V3에 대한 PROD 업데이트 | 
| 제한 또는 환경 수정 | 업데이트된 실행 파라미터를 사용하여 새 버전을 생성합니다. | V4 | V4에 대한 DEFAULT 업데이트, PROD는 V3에 남아 있음 | 

## 엔드포인트 수명 주기 상태
<a name="harness-endpoint-lifecycle"></a>

하네스 엔드포인트는 수명 주기 동안 다양한 상태를 거칩니다.

CREATING  
엔드포인트가 생성될 때의 초기 상태

CREATE\_FAILED  
권한, 구성 또는 기타 문제로 인한 생성 실패를 나타냅니다.

준비됨  
엔드포인트가 요청을 수락할 준비가 되었습니다.

업데이트 중  
엔드포인트를 새 버전으로 업데이트하는 중입니다.

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)
```
또는 AWS CLI를 사용하여 다음을 수행할 수 있습니다.  

```
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)
```
또는 AWS CLI를 사용하여 다음을 수행할 수 있습니다.  

```
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 런타임의 버전 관리 및 엔드포인트