AWS SDK 또는 CLI로 DeleteRepository 사용하기
AWS SDK 또는 CLI로 DeleteRepository 사용하기 (Use DeleteRepository with an AWS SDK or CLI)
AWS CLI와 Java, Kotlin, Python(Boto3), SAP ABAP SDK에서 DeleteRepository 작업을 사용해 Amazon ECR 리포지토리를 삭제하는 방법을 함께 살펴볼게요.
출처: 문서
본문
다음 코드 예제는 DeleteRepository 를 사용하는 방법을 보여줘요. 작업(actions) 예제는 더 큰 프로그램에서 추출한 코드 조각으로, 컨텍스트 안에서 실행되어야 해요. 이 작업을 다음 코드 예제에서 컨텍스트와 함께 볼 수 있어요:
CLI (AWS CLI)
리포지토리 삭제 (To delete a repository)
다음 delete-repository 예제 명령은 계정의 기본 레지스트리에서 지정된 리포지토리를 강제 삭제(force delete)해요. 리포지토리에 이미지가 포함된 경우 --force 플래그가 필요해요.
aws ecr delete-repository \
--repository-name ubuntu \
--force
출력 (Output):
{
"repository": {
"registryId": "123456789012",
"repositoryName": "ubuntu",
"repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/ubuntu"
}
}
자세한 내용은 Amazon ECR User Guide의 Deleting a Repository를 참고하세요.
API 세부 사항은 AWS CLI Command Reference에서 DeleteRepository를 참고하세요.
Java (SDK for Java 2.x)
참고 (Note) GitHub에 더 많은 내용이 있어요. 전체 예제를 확인하고 설정·실행 방법을 배우려면 AWS Code Examples Repository를 참고하세요.
/**
* Deletes an ECR (Elastic Container Registry) repository.
*
* @param repoName the name of the repository to delete.
* @throws IllegalArgumentException if the repository name is null or empty.
* @throws EcrException if there is an error deleting the repository.
* @throws RuntimeException if an unexpected error occurs during the deletion process.
*/
public void deleteECRRepository(String repoName) {
if (repoName == null || repoName.isEmpty()) {
throw new IllegalArgumentException("Repository name cannot be null or empty");
}
DeleteRepositoryRequest repositoryRequest = DeleteRepositoryRequest.builder()
.force(true)
.repositoryName(repoName)
.build();
CompletableFuture<DeleteRepositoryResponse> response = getAsyncClient().deleteRepository(repositoryRequest);
response.whenComplete((deleteRepositoryResponse, ex) -> {
if (deleteRepositoryResponse != null) {
System.out.println("You have successfully deleted the " + repoName + " repository");
} else {
Throwable cause = ex.getCause();
if (cause instanceof EcrException) {
throw (EcrException) cause;
} else {
throw new RuntimeException("Unexpected error: " + cause.getMessage(), cause);
}
}
});
// Wait for the CompletableFuture to complete
response.join();
}
API 세부 사항은 AWS SDK for Java 2.x API Reference에서 DeleteRepository를 참고하세요.
Kotlin (SDK for Kotlin)
참고 (Note) GitHub에 더 많은 내용이 있어요. 전체 예제를 확인하고 설정·실행 방법을 배우려면 AWS Code Examples Repository를 참고하세요.
/**
* Deletes an ECR (Elastic Container Registry) repository.
*
* @param repoName the name of the repository to delete.
*/
suspend fun deleteECRRepository(repoName: String) {
if (repoName.isNullOrEmpty()) {
throw IllegalArgumentException("Repository name cannot be null or empty")
}
val repositoryRequest =
DeleteRepositoryRequest {
force = true
repositoryName = repoName
}
EcrClient.fromEnvironment { region = "us-east-1" }.use { ecrClient ->
ecrClient.deleteRepository(repositoryRequest)
println("You have successfully deleted the $repoName repository")
}
}
API 세부 사항은 AWS SDK for Kotlin API reference에서 DeleteRepository를 참고하세요.
Python (SDK for Python (Boto3))
참고 (Note) GitHub에 더 많은 내용이 있어요. 전체 예제를 확인하고 설정·실행 방법을 배우려면 AWS Code Examples Repository를 참고하세요.
class ECRWrapper:
def __init__(self, ecr_client: client):
self.ecr_client = ecr_client
@classmethod
def from_client(cls) -> "ECRWrapper":
"""
Creates a ECRWrapper instance with a default Amazon ECR client.
:return: An instance of ECRWrapper initialized with the default Amazon ECR client.
"""
ecr_client = boto3.client("ecr")
return cls(ecr_client)
def delete_repository(self, repository_name: str):
"""
Deletes an ECR repository.
:param repository_name: The name of the repository to delete.
"""
try:
self.ecr_client.delete_repository(
repositoryName=repository_name, force=True
)
print(f"Deleted repository {repository_name}.")
except ClientError as err:
logger.error(
"Couldn't delete repository %s.. Here's why %s",
repository_name,
err.response["Error"]["Message"],
)
raise
API 세부 사항은 AWS SDK for Python (Boto3) API Reference에서 DeleteRepository를 참고하세요.
SAP ABAP (SDK for SAP ABAP)
참고 (Note) GitHub에 더 많은 내용이 있어요. 전체 예제를 확인하고 설정·실행 방법을 배우려면 AWS Code Examples Repository를 참고하세요.
TRY.
" iv_repository_name = 'my-repository'
lo_ecr->deleterepository(
iv_repositoryname = iv_repository_name
iv_force = abap_true ).
MESSAGE |Repository { iv_repository_name } deleted.| TYPE 'I'.
CATCH /aws1/cx_ecrrepositorynotfndex.
MESSAGE 'Repository not found.' TYPE 'I'.
ENDTRY.
API 세부 사항은 AWS SDK for SAP ABAP API reference에서 DeleteRepository를 참고하세요.
AWS SDK 개발자 가이드와 코드 예제의 전체 목록은 Using Amazon ECR with an AWS SDK를 참고하세요. 이 주제에는 시작하기(getting started) 정보와 이전 SDK 버전에 대한 세부 정보도 포함돼 있어요.