

# 구성 번들 업데이트
<a name="configuration-bundles-update"></a>

구성 번들을 업데이트하여 구성이 변경된 변경 불가능한 새 버전을 생성합니다. 각 업데이트는 새 버전 ID를 생성하며 기존 버전은 수정되지 않습니다. 버전은 git 커밋과 `parentVersionIds`마찬가지로를 통해 체인을 형성합니다.

## 코드 샘플
<a name="update-bundle-examples"></a>

**Example**  
에서 구성을 편집`agentcore.json`하고 재배포합니다. CLI는 기존 번들을 감지하고 올바른를 사용하여 새 버전을 `parentVersionIds` 자동으로 생성합니다.  

```
# Edit the bundle configuration in agentcore.json (change model_id, system prompt, etc.)
# Then redeploy to create a new version:
agentcore deploy

# After deploying, confirm a new immutable version was created:
agentcore cb versions --name MyBundle

# Inspect what changed between two versions (get IDs from `cb versions`):
agentcore cb diff --name MyBundle --from <v1> --to <v2>
```
모델 ID 변경 업데이트:  

```
import boto3
import uuid

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

RUNTIME_ARN = "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123"

response = client.update_configuration_bundle(
    bundleId="myAgentConfig-a1b2c3d4e5",
    components={
        RUNTIME_ARN: {
            "configuration": {
                "system_prompt": "You are a helpful customer support assistant.",
                "model_id": "us.anthropic.claude-sonnet-4-20250514-v1:0",
                "temperature": 0.7,
            }
        }
    },
    parentVersionIds=["12345678-1234-1234-1234-123456789012"],
    commitMessage="Switch to Claude Sonnet 4",
    clientToken=str(uuid.uuid4()),
)

print(f"New version ID: {response['versionId']}")
```
권장 사항 결과에서 권장 시스템 프롬프트로 업데이트합니다.  

```
import boto3
import uuid

cp_client = boto3.client("bedrock-agentcore-control", region_name="us-west-2")
dp_client = boto3.client("bedrock-agentcore", region_name="us-west-2")

RUNTIME_ARN = "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123"

# Get the recommendation result
recommendation = dp_client.get_recommendation(recommendationId="myRec-a1b2c3d4e5")
recommended_prompt = recommendation["result"]["systemPromptRecommendationResult"]["recommendedSystemPrompt"]

# Update the bundle with the recommended prompt
response = cp_client.update_configuration_bundle(
    bundleId="myAgentConfig-a1b2c3d4e5",
    components={
        RUNTIME_ARN: {
            "configuration": {
                "system_prompt": recommended_prompt,
                "model_id": "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
                "temperature": 0.7,
            }
        }
    },
    parentVersionIds=["12345678-1234-1234-1234-123456789012"],
    commitMessage="Apply recommended system prompt",
    createdBy={"name": "optimization-job", "arn": recommendation["recommendationArn"]},
    clientToken=str(uuid.uuid4()),
)

print(f"New version ID: {response['versionId']}")
```

## 요청 파라미터
<a name="update-bundle-params"></a>


| 파라미터 | 유형 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `bundleId`  | 문자열 | 예 | 업데이트할 구성 번들의 ID입니다. 경로 파라미터로 전달됩니다. | 
|  `bundleName`  | 문자열 | No | 번들의 이름을 업데이트했습니다. | 
|  `description`  | 문자열 | No | 설명을 업데이트했습니다. 최대 500자. | 
|  `components`  | 맵 | 아니요 | 구성 요소 구성을 업데이트했습니다. 이러한 구성 요소를 사용하여 새 버전을 생성합니다. | 
|  `parentVersionIds`  | 문자열 목록 | 아니요 | 계보 추적을 위한 상위 버전 IDs입니다. **를 업데이트할 때 필요합니다`components`.** 일반 커밋: 단일 상위. 병합 커밋: 상위 두 개(대상 브랜치 최신, 소스 브랜치 최신). 브랜치가 이미 있는 경우 첫 번째 상위 브랜치가 해당 브랜치의 최신 버전이어야 합니다. | 
|  `branchName`  | 문자열 | No | 이 버전의 브랜치 이름입니다. 지정하지 않으면가 상위 브랜치를 상속하거나 기본값은 입니다`mainline`. | 
|  `commitMessage`  | 문자열 | No | 변경 사항을 설명하는 메시지를 커밋합니다. 최대 500자. | 
|  `createdBy`  | 객체 | 아니요 | 이 버전을 생성한 소스입니다. `name` (필수) 및 `arn` (선택 사항)를 포함합니다. 이를 사용하여 버전이 사용자, 권장 작업 또는 기타 자동화에 의해 생성되었는지 여부를 추적할 수 있습니다. | 
|  `clientToken`  | 문자열 | No | Idempotency 토큰입니다. | 

## 응답
<a name="update-bundle-response"></a>


| Field | 유형 | 설명 | 
| --- | --- | --- | 
|  `bundleArn`  | 문자열 | 구성 번들의 ARN입니다. | 
|  `bundleId`  | 문자열 | 구성 번들의 ID입니다. | 
|  `versionId`  | 문자열 | 이 업데이트로 생성된 새 버전의 UUID입니다. | 
|  `updatedAt`  | 타임스탬프 | 업데이트가 적용된 시간입니다. | 

## 분기 및 병합
<a name="update-bundle-branching"></a>

구성 번들은 git 유사 분기를 지원합니다.
+  **선형 커밋.** 단일 상위 항목을 생략`parentVersionIds`하거나 전달합니다. 새 버전은 브랜치 계보를 확장합니다.
+  **새 브랜치.** 아직 존재하지 `branchName` 않는와 분기하려는 버전을 `parentVersionIds` 가리키는를 지정합니다.
+  **커밋을 병합합니다.** 2개 전달`parentVersionIds`: 첫 번째는 대상 브랜치의 최신 버전이고, 두 번째는 소스 브랜치의 최신 버전입니다. 그러면 대상 브랜치에 병합 커밋이 생성됩니다.

## 오류
<a name="update-bundle-errors"></a>


| 오류 | HTTP 상태 | 설명 | 
| --- | --- | --- | 
|  `ValidationException`  | 400 | 잘못된 요청 파라미터입니다. 필드 제약 조건을 확인합니다. | 
|  `ResourceNotFoundException`  | 404 | 지정된 `bundleId`이 존재하지 않습니다. | 
|  `ConflictException`  | 409 | 버전 충돌. 지정된 상위 버전은 브랜치의 최신 버전이 아닙니다. 최신 버전을 가져와 다시 시도합니다. | 
|  `AccessDeniedException`  | 403 | 권한이 부족합니다. IAM 정책에가 포함되어 있는지 확인합니다`bedrock-agentcore:UpdateConfigurationBundle`. | 
|  `ThrottlingException`  | 429 | 요청 속도가 초과되었습니다. 지수 백오프를 사용하여 재시도하세요. | 
|  `InternalServerException`  | 500 | 서비스 측 오류입니다. 요청을 다시 시도하세요. | 