创建和管理代码库

本页面介绍如何添加、查看和删除 Artifact Registry 代码库。

准备工作

  1. 启用 Artifact Registry,包括启用 Artifact Registry API 和安装 Cloud SDK。
  2. (可选)为 gcloud 命令配置默认值

概览

您必须先创建代码库,然后才能上传工件。每个代码库都可以包含单个受支持格式的工件。

所有代码库内容都已使用 Google 管理的加密密钥或客户管理的加密密钥进行加密。Artifact Registry 默认使用 Google 管理的加密密钥,此选项无需进行任何配置。

为代码库设置 CMEK

默认情况下,Google Cloud 会自动使用您在 Cloud Key Management Service 中管理的 Google 加密密钥来加密静态数据。如果您有与保护数据的密钥相关的特定合规性或监管要求,则可以创建使用客户管理的加密密钥 (CMEK) 来加密代码库内容的代码库。

在创建您希望使用 CMEK 加密的代码库之前,您必须在 Cloud KMS 中创建并启用密钥。然后,您可以在创建代码库时将该密钥分配给该代码库。

您无法更改现有代码库的加密机制。如果您有 CMEK 加密的代码库,则无法将加密机制更改为 Google 默认加密或分配其他 Cloud KMS 密钥用于加密。

创建代码库

创建代码库时,您必须选择以下设置:

创建代码库后,这些设置便无法更改。

如需创建和配置新代码库,请执行以下操作:

  1. 如果您使用 CMEK 加密代码库数据,请创建要用于此代码库的密钥并授予使用该密钥的权限。请参阅启用客户管理的加密密钥

  2. 添加代码库。

    控制台

    1. 在 Cloud Console 中打开 代码库页面。

      打开代码库页面

    2. 点击创建代码库

    3. 指定代码库名称。对于项目中的每个代码库位置,代码库名称不得重复。

    4. 指定代码库格式。支持以下格式:

      • Docker
      • Maven(Alpha 版)
      • npm(Alpha 版)
    5. 位置类型下,选择代码库的位置:

      1. 选择位置类型:区域或多区域。位置列表会发生变化,以反映您所做的选择。

      2. 区域多区域列表中,选择一个位置。

      如需了解位置类型和支持的位置,请参阅组织代码库

    6. 为代码库添加说明。说明可帮助确定代码库的用途及其包含的工件类型。

    7. 如果要使用标签来组织代码库,请点击添加标签并输入标签的键值对。您可以在创建代码库后添加、修改或移除标签。

    8. 加密部分中,选择代码库的加密机制。

      • Google 管理的密钥 - 使用 Google 管理的加密密钥来加密代码库内容。
      • 客户管理的密钥 - 使用您通过 Cloud Key Management Service 控制的密钥来加密代码库内容。如需查看密钥设置说明,请参阅为代码库设置 CMEK
    9. 点击创建

    gcloud

    运行以下命令创建新代码库。

    gcloud artifacts repositories create REPOSITORY \
    --repository-format=FORMAT [--location=LOCATION] \
    [--description=DESCRIPTION] [--kms-key=KMS-KEY] [--async]
    

    其中

    • REPOSITORY 是代码库的名称。对于项目中的每个代码库位置,代码库名称不得重复。
    • FORMAT 是代码库格式。支持的值为

      • docker
      • maven(Alpha 版)
      • npm(Alpha 版)
    • LOCATION 是代码库的单区域或多区域位置。如果您设置默认值,则可以省略此标志。如需查看受支持位置的列表,请运行以下命令:

      gcloud artifacts locations list
      
    • DESCRIPTION 是代码库的说明。

    • KMS-KEY 是 Cloud KMS 加密密钥的完整路径(如果您使用客户管理的加密密钥来加密代码库内容的话)。路径的格式为:

      projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
      

      其中

      • KMS-PROJECT 是存储密钥的项目。
      • KMS-LOCATION 是密钥的位置。
      • KEY-RING 是密钥环的名称。
      • KEY 是密钥的名称。
    • --async 会立即返回结果,而无需等待正在进行的操作完成。

    如需详细了解该命令,请运行以下命令:

     gcloud artifacts repositories create --help
    

    Terraform

    如需了解如何使用 Terraform 预配代码库并授予代码库权限,请参阅与 Terraform 集成

  3. 授予权限以访问代码库。

    如果您已在项目级层授予任何 Artifact Registry 角色,则项目中的代码库会继承这些角色。如果您希望团队成员对项目中的代码库拥有不同级层的访问权限,请在代码库级层授予角色。

  4. 如需通过 Docker 或软件包管理器与代码库进行交互,您必须为这些工具配置身份验证。请参阅相应的页面:

为代码库添加标签

标签是一种键值对,可用于识别和分组相关代码库,例如 stage:productionteam:development。如需了解详情,请参阅创建和管理标签

更新代码库说明

您可以使用以下命令更新现有代码库的说明:

gcloud artifacts repositories update REPOSITORY [--project=PROJECT] \
[--location=LOCATION] --description=DESCRIPTION

其中

  • REPOSITORY 是代码库的名称。如果您配置了默认代码库,则可以省略此标志以使用默认值。
  • PROJECT 是 Google Cloud 项目 ID。如果省略此标志,则系统会使用当前项目或默认项目。
  • LOCATION 是单区域或多区域位置。使用此标志可查看特定位置的代码库。如果您配置了默认位置,则可以省略此标志以使用默认值。
  • DESCRIPTION 是代码库的说明。

如需详细了解该命令,请运行以下命令:

 gcloud artifacts repositories update --help

查看代码库

您可以查看 Google Cloud 项目中的代码库。

如需查看代码库列表,请执行以下操作:

控制台

在 Cloud Console 中打开 代码库页面。

打开“代码库”页面

该页面会显示您的代码库列表。

如需过滤 Artifact Registry 代码库列表,请执行以下操作:

  1. 在代码库列表上方,点击过滤表
  2. 从过滤条件列表中选择一个过滤条件。
  3. 指定要用于过滤列表的值。

gcloud

如需列出现有代码库,请运行以下命令:

gcloud artifacts repositories list [--project=PROJECT] \
[--location=LOCATION]

如需查看为代码库配置的加密类型,请运行以下命令:

gcloud artifacts repositories describe REPOSITORY \
[--project=PROJECT] [--location=LOCATION]

在这些命令中,替换以下值:

  • PROJECT 是项目 ID。如果省略此标志,则系统会使用当前项目或默认项目。
  • REPOSITORY 是代码库的名称。
  • LOCATION 是单区域或多区域位置。使用此标志可查看特定位置的代码库。您还可以使用 --location=all 列出所有位置的代码库。

    如果省略此标志,该命令将使用默认位置(如果配置了默认值的话)。否则,省略此标志会导致系统列出所有位置的代码库。

如需详细了解该命令,请运行以下命令:

 gcloud artifacts repositories list --help

删除代码库

在移除代码库之前,请确保要保留的任何软件包在其他位置提供。

如需删除代码库,请执行以下操作:

控制台

  1. 在 Cloud Console 中打开 代码库页面。

    打开代码库页面

  2. 在代码库列表中,选择要删除的代码库。

  3. 点击删除

gcloud

如需删除代码库,请运行以下命令:

gcloud artifacts repositories delete REPOSITORY \
[--location=LOCATION] [--async]

其中

  • REPOSITORY 是代码库的名称。
  • LOCATION 是代码库的单区域或多区域位置。如果您设置默认值,则可以省略此标志。
  • --async 会立即返回结果,而无需等待正在进行的操作完成。

如需详细了解该命令,请运行以下命令:

 gcloud artifacts repositories delete --help

后续步骤