

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Image Builder의 의미 체계 버전 관리
<a name="ibhow-semantic-versioning"></a>

Image Builder는 의미 체계 버전 관리를 사용하여 리소스를 구성하고 리소스가 고유한 ID를 갖도록 합니다. 의미 체계 버전에는 다음과 같은 4가지 노드가 있습니다.

*{{<major>}}.{{<minor>}}.{{<patch>}}/<build>*

처음 3개의 값을 할당하고 모든 값을 필터링할 수 있습니다.

의미 체계 버전 관리는 다음과 같이 각 객체의 Amazon 리소스 이름(ARN)에 해당 객체에 적용되는 수준으로 포함됩니다.

1. 버전이 없는 ARN과 이름 ARN은 어떤 노드에도 특정 값을 포함하지 않습니다. 노드는 완전히 제외되거나 와일드카드로 지정됩니다(예: x.x.x).

1. 버전 ARN에는 처음 세 개의 노드, <major>.<minor>.<patch>만 있습니다

1. 빌드 버전 ARN에는 노드 4개가 모두 있으며 객체의 특정 버전에 대한 특정 빌드를 가리킵니다.

**할당:** 처음 세 노드의 경우 각 노드에 대해 상한이 2^30-1 또는 1073741823인 양의 정수 값 또는 0을 할당할 수 있습니다. Image Builder는 자동으로 4번째 노드에 빌드 번호를 할당합니다.

**패턴:** 할당할 수 있는 노드에 대한 할당 요구 사항을 준수하는 모든 숫자 패턴을 사용할 수 있습니다. 예를 들어 1.0.0과 같은 소프트웨어 버전 패턴이나 2021.01.01과 같은 날짜를 선택할 수 있습니다.

**필터링:** 의미 체계 버전 관리를 사용하면 레시피에 대한 기본 이미지 또는 구성 요소를 선택할 때 와일드카드(x)를 사용하여 최신 버전 또는 노드를 지정할 수 있습니다. 임의의 노드에서 와일드카드를 사용하는 경우 첫 번째 와일드카드 오른쪽에 있는 모든 노드도 와일드카드여야 합니다.

예를 들어 2.2.4, 1.7.8, 1.6.8의 최신 버전에서 와일드카드를 사용하여 버전을 선택하면 다음과 같은 결과가 나타납니다.
+ `x.x.x` = 2.2.4
+ `1.x.x` = 1.7.8
+ `1.6.x` = 1.6.8
+ `x.2.x` 값은 유효하지 않아 오류가 발생합니다.
+ `1.x.8` 값은 유효하지 않아 오류가 발생합니다.

## 수명 주기 정책의 와일드카드 버전 관리
<a name="lifecycle-wildcard-versioning"></a>

수명 주기 정책 레시피 선택에서 의미 체계 버전에 와일드카드 패턴을 사용하여 단일 정책으로 레시피의 여러 버전을 대상으로 지정할 수 있습니다. 이렇게 하면 각 레시피 버전에 대해 별도의 정책을 생성할 필요가 없으므로 수명 주기 관리가 간소화됩니다.

수명 주기 정책 레시피 버전에는 다음 와일드카드 패턴이 지원됩니다.
+ `x.x.x` - 레시피의 모든 버전과 일치합니다.
+ `1.x.x` - 메이저 버전 1 내의 모든 마이너 및 패치 버전과 일치합니다.
+ `1.0.x` - 버전 1.0 내의 모든 패치 버전과 일치합니다.

와일드카드 패턴이 있는 수명 주기 정책이 실행되면 Image Builder는 실행 시 와일드카드를 일치하는 모든 레시피 버전으로 확인합니다. 그러면 해당 실행에 대한 변경 불가능한 버전 목록이 생성됩니다. 정책 실행이 시작된 후 생성된 새 레시피 버전은 예약된 다음 실행에 자동으로 포함됩니다.

와일드카드 버전 관리를 사용하여 수명 주기 정책을 생성하는 방법에 대한 자세한 내용은 섹션을 참조하세요[수명 주기 정책 생성](create-lifecycle-policies.md).

## 버전 참조 사용
<a name="using-version-references"></a>

 버전 참조는 생성하거나 검색한 리소스의 의미 체계 버전을 기반으로 와일드카드 패턴을 통합하는 ready-to-use 수 있는 ARN 문자열입니다. Image Builder는 사용자 지정 코드를 작성하여 ARNs을 구문 분석하고 와일드카드를 삽입하는 대신이 작업을 수행합니다.

Image Builder 리소스를 생성하거나 검색하면 Image Builder는 `latestVersionReferences` 객체에 와일드카드 버전 패턴이 포함된 사전 구성된 ARNs을 자동으로 제공합니다. 따라서 와일드카드 버전 관리 패턴을 사용하여 리소스를 참조하려는 경우 ARNs 수동으로 구문 분석하고 재구성할 필요가 없습니다.

예를 들어 버전 로 구성 요소를 생성하면 `1.2.3`Image Builder는 다음을 반환합니다.

```
{
    "componentBuildVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/1.2.3/1",
    "latestVersionReferences": {
        "latestVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/x.x.x",
        "latestMajorVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/1.x.x",
        "latestMinorVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/1.2.x",
        "latestPatchVersionArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-component/1.2.3"
    }
}
```

## 사용 가능한 버전 참조 패턴
<a name="available-reference-patterns"></a>

`latestVersionReferences` 객체에는 네 가지 ARN 패턴이 있습니다.
+ latestVersionArn(x.x.x) - 항상 절대 최신 버전으로 확인됩니다.
+ atestMajorVersionArn(1.x.x) - 메이저 버전 내의 최신 마이너 및 패치 버전으로 해결됩니다.
+ latestMinorVersionArn(1.2.x) - 특정 마이너 버전 내의 최신 패치 버전으로 해결됩니다.
+ latestPatchVersionArn(1.2.3) - 특정 의미 체계 버전을 참조하고 여러 빌드 버전을 지원하는 리소스의 최신 빌드 버전으로 확인합니다.

## 버전 참조를 반환하는 리소스
<a name="resources-returning-references"></a>

버전 참조는 버전이 지정된 모든 Image Builder 리소스에 대해 `Create` 및 `Get` APIs에서 반환됩니다.
+ 구성 요소 - `CreateComponent`, `GetComponent` 
+ 이미지 레시피 - `CreateImageRecipe`, `GetImageRecipe` 
+ 컨테이너 레시피 - `CreateContainerRecipe`, `GetContainerRecipe` 
+ 이미지 - `CreateImage`, `GetImage` 
+ 워크플로 - `CreateWorkflow`, `GetWorkflow` 

*참고:* Image Builder 관리형 워크플로의 경우 Image Builder에서는 항상 최신 버전의 Image Builder 관리형 워크플로를 사용해야 하므로 만 반환`latestVersionArn (x.x.x)`됩니다.