

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立儲存庫
<a name="create-repo"></a>

由於 CodeArtifact 中的所有套件都存放在[儲存庫](codeartifact-concepts.md#welcome-concepts-repository)中，若要使用 CodeArtifact，您必須建立一個。您可以使用 CodeArtifact 主控台、 AWS Command Line Interface (AWS CLI) 或 來建立儲存庫 CloudFormation。每個儲存庫都會與您建立儲存庫時使用 AWS 的帳戶相關聯。您可以有多個儲存庫，它們會在[網域](codeartifact-concepts.md#welcome-concepts-domain)中建立和分組。當您建立儲存庫時，它不包含任何套件。儲存庫是多邊形，這表示單一儲存庫可以包含任何支援類型的套件。

如需 CodeArtifact 服務限制的相關資訊，例如單一網域中允許的儲存庫數量上限，請參閱 [配額 in AWS CodeArtifact](service-limits.md)。如果您達到允許的儲存庫數量上限，您可以[刪除儲存庫](delete-repo.md)以騰出更多空間。

儲存庫可以有一或多個與其相關聯的 CodeArtifact 儲存庫做為上游儲存庫。這可讓套件管理員用戶端使用單一 URL 端點存取多個儲存庫中包含的套件。如需詳細資訊，請參閱[在 CodeArtifact 中使用上游儲存庫](repos-upstream.md)。

如需使用 CloudFormation 管理 CodeArtifact 儲存庫的詳細資訊，請參閱 [使用 建立 CodeArtifact 資源 AWS CloudFormation](cloudformation-codeartifact.md)。

**注意**  
建立儲存庫之後，您無法變更其名稱、相關聯的 AWS 帳戶或網域。

**Topics**
+ [建立儲存庫 （主控台）](#create-repo-console)
+ [建立儲存庫 (AWS CLI)](#create-repo-cli)
+ [使用上游儲存庫建立儲存庫](#creating-a-repository-with-an-upstream)

## 建立儲存庫 （主控台）
<a name="create-repo-console"></a>

1. 開啟位於 https：//[https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home) 的 AWS CodeArtifact 主控台。

1.  在導覽窗格中，選擇**儲存庫**，然後選擇**建立儲存庫**。

1.  針對**儲存庫名稱**，輸入儲存庫的名稱。

1.  （選用） 在**儲存庫描述**中，輸入儲存庫的選用描述。

1.  （選用） 在**發佈上游儲存庫**中，新增中繼儲存庫，將儲存庫連線至套件授權單位，例如 Maven Central 或 npmjs.com。

1.  選擇**下一步**。

1.  在 **AWS 帳戶中**，如果您已登入擁有網域的帳戶，請選擇**此 AWS** 帳戶。如果另一個 **AWS 帳戶**擁有網域，請選擇不同的 AWS 帳戶。

1.  在**網域**中，選擇將在其中建立儲存庫的網域。

    如果帳戶中沒有網域，您必須建立一個網域。在網域名稱中輸入新**網域的名稱**。

    展開 **Additional configuration (其他組態)**。

    您必須使用 AWS KMS key (KMS 金鑰） 來加密網域中的所有資產。您可以使用您管理的 AWS 受管金鑰 或 KMS 金鑰：
**重要**  
CodeArtifact 僅支援[對稱 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks)。您無法使用[非對稱 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks)來加密 CodeArtifact 網域。如需判斷 KMS 金鑰為對稱或非對稱的說明，請參閱[識別對稱和非對稱 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)。
   +  如果您想要使用預設 ，請選擇 **AWS 受管金鑰** AWS 受管金鑰。
   +  如果您想要使用您管理的 KMS 金鑰，請選擇**客戶受管**金鑰。若要使用您管理的 KMS 金鑰，請在**客戶受管金鑰 ARN** 中搜尋並選擇 KMS 金鑰。

    如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的 [AWS 受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)和 [客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

1.  選擇**下一步**。

1.  在**檢閱和建立**中，檢閱正在為您建立的 CodeArtifact。
   +  **套件流程**顯示網域和儲存庫的連線方式。
   +  **步驟 1：建立儲存庫**會顯示將建立之儲存庫和選用上游儲存庫的詳細資訊。
   +  **步驟 2：選取網域**會顯示有關 的詳細資訊`my_domain`。

    當您準備好時，請選擇**建立儲存庫**。

## 建立儲存庫 (AWS CLI)
<a name="create-repo-cli"></a>

使用 `create-repository`命令在您的網域中建立儲存庫。

```
aws codeartifact create-repository --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --description "{{My new repository}}"
```

輸出範例：

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

新的儲存庫不包含任何套件。每個儲存庫都會與您建立儲存庫時所驗證 AWS 的帳戶相關聯。

### 建立具有標籤的儲存庫
<a name="create-repo-cli-tags"></a>

若要建立具有標籤的儲存庫，請將 `--tags` 參數新增至您的`create-domain`命令。

```
aws codeartifact create-repository --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --tags {{key=k1,value=v1 key=k2,value=v2}}
```

## 使用上游儲存庫建立儲存庫
<a name="creating-a-repository-with-an-upstream"></a>

您可以在建立儲存庫時指定一或多個上游儲存庫。

```
aws codeartifact create-repository --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} \
  --upstreams repositoryName={{my-upstream-repo}} --repository-description {{"My new repository"}}
```

輸出範例：

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

**注意**  
若要使用上游建立儲存庫，您必須具有上游儲存庫上 `AssociateWithDownstreamRepository`動作的許可。

若要在建立儲存庫之後將上游 新增至儲存庫，請參閱 [新增或移除上游儲存庫 （主控台）](repo-upstream-add.md#repo-upstream-add-console)和 [新增或移除上游儲存庫 (AWS CLI)](repo-upstream-add.md#repo-upstream-add-cli)。