一般性问题

何为 AWS CodeArtifact?

AWS CodeArtifact 是一项完全托管的软件构件存储库服务,借助它,各种规模的组织都可以轻松安全地存储、发布和分享其软件开发过程中所使用的程序包。CodeArtifact 可与常用的程序包管理器及构建工具(例如 Maven 和 Gradle (Java),npm 和 yarn (JavaScript) 或 pip 和 twine (Python))配合使用。

CodeArtifact 的费用如何?

使用 CodeArtifact,没有前期费用,也无需订立合约。您只需为存储的构件、发出的请求数以及从 AWS 区域传输出的数据付费。CodeArtifact 包括按月免费使用的存储和请求套餐。有关定价详细信息,请参阅定价详细信息。

CodeArtifact 已在哪些 AWS 区域推出?

目前,CodeArtifact 已在以下 10 个AWS 区域推出:

  • 美国东部(弗吉尼亚北部) 
  • 美国东部(俄亥俄)
  • 美国西部(俄勒冈)
  • 欧洲(爱尔兰) 
  • 欧洲(法兰克福)
  • 欧洲(斯德哥尔摩)
  • 亚太地区(悉尼)
  • 亚太地区(东京)
  • 亚太地区(孟买)
  • 亚太地区(新加坡)。

开始使用 CodeArtifact

如何开始使用 CodeArtifact?

您可以通过使用 AWS 管理控制台、开发工具包或 CLI 创建新的域及存储库从而开始使用 CodeArtifact。然后,您可以使用常用的软件包管理器及构建工具,例如 npm 或 yarn CLI (JavaScript)、maven 或 gradle (Java) 和 pip (Python) 将软件包发布到存储库。您还可以通过 CodeArtifact 存储库使用来自公有存储库(例如 npm 注册表、Maven Central 或 Python 软件包索引(PyPI) 的开源软件包,该存储库存储的是以这种方式使用的任何软件包。

什么是 CodeArtifact 域?

域是特定于 CodeArtifact 的结构,该结构允许在多个 AWS 账户中对单个组织拥有的多个 CodeArtifact 存储库进行分组和管理。例如,组织可能会创建一个中央存储库,用于在团队和项目级存储库之间共享软件包,以存储仅由单个团队或应用程序使用的软件包。

什么是 CodeArtifact 存储库?

CodeArtifact 存储库包含一组软件包版本,每个软件包版本都映射到一组资产。存储库是多语言的 — 一个存储库可以包含任何受支持类型的软件包。每个存储库都公开了终端节点,可用于使用 npm CLI、Maven CLI (mvn)和 pip 等工具来获取和发布软件包。 有关 AWS CodeArtifact 中的资源限制,请参阅 AWS CodeArtifact 中的配额

如何在 CodeArtifact 中创建存储库?

您可以使用控制台向导,或者以编程方式使用 AWS 开发工具包或 CLI 创建存储库。有关更多信息,请参阅 AWS CodeArtifact 文档中的创建存储库

如何将构件发布到 CodeArtifact?

您可以使用本地语言工具,例如 npm 或yarn (JavaScript)、maven 或gradle (Java) 或 twine (Python),来发布构件。例如,使用 npm 发布新的软件包版本需要两个命令:首先,运行 CodeArtifact CLI “login”命令,然后运行 npm publish 将软件包上传到存储库。作为持续集成(CI)工作流的一部分,AWS CodeBuild 发布新的软件包版本时可以运行相同的命令。单击此处了解更多信息。

如何从 CodeArtifact 检索构件?

您可以使用语言本机工具来获取构件。例如,要安装 npm 软件包 webpack 及其所有依赖项,请运行 CodeArtifact CLI “login”命令,然后运行 npm install webpack。npm 从 CodeArtifact 获取 Webpack,根据 webpack 的 package.json 文件中的信息执行依赖项解析,然后从 CodeArtifact 递归获取所有必需的依赖项。 单击此处了解更多信息。

如何配置 CodeArtifact 存储库以从外部软件包存储库(如 npm 注册表)中提取软件包?

在 CodeArtifact 控制台上,创建一个具有外部连接的存储库,以从公有存储库(如 npm注册表)中提取软件包。您还可以使用 AssociateExternalConnection API 在 CodeArtifact 存储库和公有存储库之间创建连接。每当接收到软件包请求时,CodeArtifact 都会从外部存储库中提取并缓存所需的软件包(如果这些软件包尚不存在的话)。

身份验证和访问控制

如何从 AWS CLI 向 CodeArtifact 存储库进行身份验证?

首先,安装 AWS CLI 并为具有访问 CodeArtifact 的适当权限的 IAM 用户或角色配置 AWS 凭证。然后,您可以使用 CLI 调用 CodeArtifact GetAuthorizationToken API。该 API 出售身份验证令牌,该令牌可以包含在程序包管理器和构建工具发出的请求中的 HTTP 授权标头中。CLI 提供了登录命令,该命令可调用 GetAuthorizationToken 并自动将程序包管理器配置为将此令牌用于所有请求。这与 Amazon ECR 提供的 get-login 命令类似,因此使用 Docker CLI 与 ECR 进行交互的开发人员会熟悉此模式。

能否为我的存储库启用跨账户访问?

可以。CodeArtifact 存储库支持资源策略以启用跨账户访问。您可以通过控制台或 AWS CLI 添加资源策略。

能否在软件包级别启用权限?

可以。CodeArtifact 支持程序包级别的写入权限。您可以通过将语句添加到资源库资源策略文档中来配置这些资源,这些语句可将程序包 ARN 指定为资源。CodeArtifact 仅支持存储库级别的读取权限,即给定的 IAM 主体可以读取存储库中的所有程序包,也可以不读取任何程序包。

CodeArtifact 是否可以加密我的程序包?

可以。CodeArtifact 存储的所有软件包均使用 TLS 进行传输中加密,并且使用 AES-256 对称密钥进行静态加密。CodeArtifact 支持 AWS Key Management Service (KMS) 客户管理的 CMK 和 AWS 托管的 CMK。

集成

能否将 AWS CodeArtifact 与 AWS CodeBuild 一起使用?

可以。您可以指定 CodeArtifact 存储库,以在 CodeBuild 项目配置中使用和发布程序包。可用的 CodeBuild 映像包括适用于 CodeArtifact 支持的所有程序包类型的客户端工具。CodeBuild 将构建工具或程序包管理器配置为使用指定的存储库,并使用构建的 IAM 角色在构建开始时获取 CodeArtifact 身份验证令牌。您还可以指定在构建完成后应发布到 CodeArtifact 存储库中的构建构件。当内容更改时,可以使用 CodeArtifact 存储库发出的 CloudWatch Events 触发 CodeBuild 构建。

能否将 AWS CodeArtifact 与 AWS CodePipeline 一起使用?

可以。使用 Amazon EventBridge 时,您可以在 CodeArtifact 存储库中存储的程序包发生更改时(例如,发布新版本的程序包时)触发 CodePipeline 构建。

阅读文档
阅读文档

阅读文档,了解有关 AWS CodeArtifact 的更多信息。

阅读文档 
注册 AWS 账户
注册免费账户

立即享受 AWS 免费套餐。 

注册 
注册预览版
登录

登录之后,使用 AWS CodeArtifact 开始构建。

登录