

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 删除存储库
<a name="delete-repo"></a>

您可以使用 CodeArtifact 控制台或删除存储库 AWS CLI。删除存储库后，即不能再向存储库推送程序包或从中提取程序包。存储库中的所有程序包都变为永久不可用且无法还原。您可以创建一个同名的存储库，但其内容将为空。

**重要**  
删除存储库的操作无法撤销。删除存储库后，您无法再将其恢复，也无法进行还原。

**Topics**
+ [删除存储库（控制台）](#delete-repo-console)
+ [删除存储库 (AWS CLI)](#delete-repo-cli)
+ [保护存储库免遭删除](#delete-repo-protect)

## 删除存储库（控制台）
<a name="delete-repo-console"></a>

1. 在 [https://console.aws.amazon.com/codesuite/codeartifact](https://console.aws.amazon.com/codesuite/codeartifact/home) /hom AWS CodeArtifact e 打开控制台。

1.  在导航窗格上，选择**存储库**，然后选择要删除的存储库。

1.  选择**删除**，然后按照步骤删除域。

## 删除存储库 (AWS CLI)
<a name="delete-repo-cli"></a>

使用 `delete-repository` 命令来删除存储库。

```
aws codeartifact delete-repository --domain my_domain --domain-owner 111122223333 --repository my_repo
```

输出示例：

```
{
    "repository": {
        "name": "my_repo",
        "administratorAccount": "123456789012",
        "domainName": "my_domain",            
        "domainOwner": "123456789012",
        "arn": "arn:aws:codeartifact:region-id:123456789012:repository/my_domain/my_repo",
        "description": "My new repository",
        "upstreams": [],
        "externalConnections": []
    }
}
```

## 保护存储库免遭删除
<a name="delete-repo-protect"></a>

可以通过添加类似于以下内容的域策略，来防止存储库被意外删除：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyRepositoryDeletion",
            "Action": [
                "codeartifact:DeleteRepository"
            ],
            "Effect": "Deny",
            "Resource": "*",
            "Principal": "*"
        }
    ]
}
```

------

此策略阻止所有主体删除存储库，但如果您之后决定需要删除存储库，可按以下步骤进行操作：

1.  在域策略中，将策略更新为以下内容：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DenyRepositoryDeletion",
               "Action": [
                   "codeartifact:DeleteRepository"
               ],
               "Effect": "Deny",
               "NotResource": "arn:aws:iam::*:role/Service*",
               "Principal": "*"
           }
       ]
   }
   ```

------

   *repository-arn*替换为您要删除的仓库的 ARN。

1.  在 AWS CodeArtifact 控制台中，选择**存储库**并删除您选择的存储库。

1.  删除存储库后，您可以更改回之前的策略以防止意外删除。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DenyRepositoryDeletion",
               "Action": [
                   "codeartifact:DeleteRepository"
               ],
               "Effect": "Deny",
               "Resource": "*",
               "Principal": "*"
           }
       ]
   }
   ```

------

或者，也可以在存储库策略中包含相同的拒绝语句。这样便可以更灵活地保护高价值存储库免遭删除。