Amazon ECR의 수명 주기 정책 예제 - Amazon ECR

Amazon ECR의 수명 주기 정책 예제

다음은 수명 주기 정책의 예로 구문을 보여줍니다.

정책 속성에 대한 자세한 내용은 Amazon ECR의 수명 주기 정책 속성 섹션을 참조하세요. AWS CLI를 사용하여 수명 주기 정책을 생성하는 방법에 대한 지침은 수명 주기 정책 생성 방법(AWS CLI) 섹션을 참조하세요.

수명 주기 정책 템플릿

수명 주기 정책의 컨텐츠는 리포지토리와 연결하기 전에 평가합니다. 수명 주기 정책에 대한 JSON 구문 템플릿은 다음과 같습니다.

{ "rules": [ { "rulePriority": integer, "description": "string", "selection": { "tagStatus": "tagged"|"untagged"|"any", "tagPatternList": list<string>, "tagPrefixList": list<string>, "countType": "imageCountMoreThan"|"sinceImagePushed", "countUnit": "string", "countNumber": integer }, "action": { "type": "expire" } } ] }

이미지 수명으로 필터링

다음 예제는 14일보다 오래된 prod*tagPatternList을(를) 사용하여 prod(으)로 시작하는 이미지를 만료시키는 정책에 대한 수명 주기 정책 구문을 보여줍니다.

{ "rules": [ { "rulePriority": 1, "description": "Expire images older than 14 days", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 14 }, "action": { "type": "expire" } } ] }

이미지 수로 필터링

다음 예는 태그 없는 이미지 한 개만 유지하고 나머지는 모두 만료시키는 정책에 대한 수명 주기 정책 구문입니다.

{ "rules": [ { "rulePriority": 1, "description": "Keep only one untagged image, expire all others", "selection": { "tagStatus": "untagged", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

복수의 규칙으로 필터링

다음은 수명 주기 정책에 복수의 규칙을 사용한 예입니다. 예로써 리포지토리와 수명 주기 정책이 결과의 설명과 함께 나타나 있습니다.

예 A

리포지토리 컨텐츠:

  • 이미지 A, Taglist: ["beta-1", "prod-1"], 푸시: 10일 전

  • 이미지 B, Taglist: ["beta-2", "prod-2"], 푸시: 9일 전

  • 이미지 C, Taglist: ["beta-3"], 푸시: 8일 전

수명 주기 정책 텍스트:

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 2, "description": "Rule 2", "selection": { "tagStatus": "tagged", "tagPatternList": ["beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

이 수명 주기 정책의 논리는 다음과 같습니다.

  • 규칙 1은 prod로 시작하는 태그 달린 이미지를 식별합니다. 가장 오래된 것부터 시작해서 일치하는 이미지가 한 개 이하일 때까지 이미지를 표시합니다. 이미지 A를 만료로 표시합니다.

  • 규칙 2는 beta로 시작하는 태그 달린 이미지를 식별합니다. 가장 오래된 것부터 시작해서 일치하는 이미지가 한 개 이하일 때까지 이미지를 표시합니다. 이미지 A와 이미지 B를 모두 만료로 표시합니다. 단, 이미지 A를 이미 규칙 1에서 확인했는데 이미지 B가 만료되면 규칙 1의 위반이 되므로 건너뜁니다.

  • 결과: 이미지 A가 만료되었습니다.

예 B

이것은 이전의 예와 동일한 리포지토리이지만, 결과를 설명하기 위해 규칙 우선 순위를 변경했습니다.

리포지토리 컨텐츠:

  • 이미지 A, Taglist: ["beta-1", "prod-1"], 푸시: 10일 전

  • 이미지 B, Taglist: ["beta-2", "prod-2"], 푸시: 9일 전

  • 이미지 C, Taglist: ["beta-3"], 푸시: 8일 전

수명 주기 정책 텍스트:

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 2, "description": "Rule 2", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

이 수명 주기 정책의 논리는 다음과 같습니다.

  • 규칙 1은 beta로 시작하는 태그 달린 이미지를 식별합니다. 가장 오래된 것부터 시작해서 일치하는 이미지가 한 개 이하일 때까지 이미지를 표시합니다. 세 이미지를 모두 확인하며 이미지 A와 이미지 B를 만료로 표시합니다.

  • 규칙 2는 prod로 시작하는 태그 달린 이미지를 식별합니다. 가장 오래된 것부터 시작해서 일치하는 이미지가 한 개 이하일 때까지 이미지를 표시합니다. 가용 이미지는 이미 규칙 1에서 확인했기 때문에 확인할 이미지가 없으며, 따라서 추가 이미지를 표시하지 않습니다.

  • 결과: 이미지 A와 이미지 B가 만료되었습니다.

단일 규칙에서 복수의 태그로 필터링

다음 예는 단일 규칙에서 복수의 태그 패턴에 대한 수명 주기 정책 구문을 지정합니다. 예로써 리포지토리와 수명 주기 정책이 결과의 설명과 함께 나타나 있습니다.

예 A

단일 규칙에 복수의 태그 패턴을 지정할 때 이미지는 목록에 있는 태그 패턴과 모두 일치해야 합니다.

리포지토리 컨텐츠:

  • 이미지 A, Taglist: ["alpha-1"], 푸시: 12일 전

  • 이미지 B, Taglist: ["beta-1"], 푸시: 11일 전

  • 이미지 C, Taglist: ["alpha-2", "beta-2"], 푸시: 10일 전

  • 이미지 D, Taglist: ["alpha-3"], 푸시: 4일 전

  • 이미지 E, Taglist: ["beta-3"], 푸시: 3일 전

  • 이미지 F, Taglist: ["alpha-4", "beta-4"], 푸시: 2일 전

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*", "beta*"], "countType": "sinceImagePushed", "countNumber": 5, "countUnit": "days" }, "action": { "type": "expire" } } ] }

이 수명 주기 정책의 논리는 다음과 같습니다.

  • 규칙 1은 alphabeta(으)로 시작하는 태그 달린 이미지를 식별합니다. 이것으로 이미지 C와 F를 확인합니다. 5일보다 오래된 이미지, 즉 이미지 C에 표시해야 합니다.

  • 결과: 이미지 C가 만료되었습니다.

예 B

다음 예는 함께 사용할 수 없는 태그를 보여 줍니다.

리포지토리 컨텐츠:

  • 이미지 A, Taglist: ["alpha-1", "beta-1", "gamma-1"], 푸시: 10일 전

  • 이미지 B, Taglist: ["alpha-2", "beta-2"], 푸시: 9일 전

  • 이미지 C, Taglist: ["alpha-3", "beta-3", "gamma-2"], 푸시: 8일 전

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*", "beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

이 수명 주기 정책의 논리는 다음과 같습니다.

  • 규칙 1은 alphabeta(으)로 시작하는 태그 달린 이미지를 식별합니다. 이것은 모든 이미지를 확인합니다. 가장 오래된 것부터 시작해서 일치하는 이미지가 한 개 이하일 때까지 이미지를 표시합니다. 이미지 A와 B를 만료로 표시합니다.

  • 결과: 이미지 A와 이미지 B가 만료되었습니다.

모든 이미지 필터링

다음 수명 주기 정책의 예는 여러 필터를 가진 모든 이미지를 지정합니다. 예로써 리포지토리와 수명 주기 정책이 결과의 설명과 함께 나타나 있습니다.

예 A

다음은 모든 규칙에 적용되지만 이미지 한 개만 유지하고 나머지는 모두 만료시키는 정책에 대한 수명 주기 정책 구문을 보여 줍니다.

리포지토리 컨텐츠:

  • 이미지 A, Taglist: ["alpha-1"], 푸시: 4일 전

  • 이미지 B, Taglist: ["beta-1"], 푸시: 3일 전

  • 이미지 C, Taglist: [], 푸시: 2일 전

  • 이미지 D, Taglist: ["alpha-2"], 푸시: 1일 전

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "any", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

이 수명 주기 정책의 논리는 다음과 같습니다.

  • 규칙 1은 모든 이미지를 식별합니다. 이미지 A, B, C, D를 확인합니다. 가장 최신 것이 아닌 모든 이미지를 만료시켜야 합니다. 이미지 A, B, C를 만료로 표시합니다.

  • 결과: 이미지 A, B, C가 만료되었습니다.

예 B

다음 예는 모든 규칙 유형을 하나의 단일 정책에 통합하는 수명 주기 정책을 보여 줍니다.

리포지토리 컨텐츠:

  • 이미지 A, Taglist: ["alpha-", "beta-1", "-1"], 푸시: 4일 전

  • Image B, Taglist: [], Pushed: 3일 전

  • 이미지 C, Taglist: ["alpha-2"], 푸시: 2일 전

  • Image D, Taglist: ["git hash"], Pushed: 1일 전

  • 이미지 E, Taglist: [], 푸시: 1일 전

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 2, "description": "Rule 2", "selection": { "tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 3, "description": "Rule 3", "selection": { "tagStatus": "any", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

이 수명 주기 정책의 논리는 다음과 같습니다.

  • 규칙 1은 alpha로 시작하는 태그 달린 이미지를 식별합니다. 이미지 A와 C를 식별합니다. 가장 최신 이미지를 보존하고 나머지는 만료로 표시해야 합니다. 이미지 A를 만료로 표시합니다.

  • 규칙 2는 태그가 지정되지 않은 이미지를 식별합니다. 이미지 B와 E를 식별합니다. 1일이 넘은 모든 이미지를 만료로 표시해야 합니다. 이미지 B를 만료로 표시합니다.

  • 규칙 3은 모든 이미지를 식별합니다. 이미지 A, B, C, D를 식별합니다. 가장 최신 이미지를 보존하고 나머지는 만료로 표시해야 합니다. 하지만 이미지 A, B, C 또는 E에는 표시할 수 없습니다. 해당 이미지들은 더 높은 우선 순위 규칙으로 식별되었기 때문입니다. 이미지D를 만료로 표시합니다.

  • 결과: 이미지 A, B, C, D가 만료되었습니다.