

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

# CodeArtifact 从 VPC 中使用
<a name="use-codeartifact-from-vpc"></a>

如果您无法或不想在中创建的 `com.amazonaws.region.codeartifact.repositories` VPC 终端节点上启用私有 DNS[为创建 VPC 终端节点 CodeArtifact](create-vpc-endpoints.md)，则必须使用与 VPC 不同的存储库终端节点配置。 CodeArtifact 按照中的[使用不带私有 DNS 的 `codeartifact.repositories` 端点](#use-codeartifact-from-vpc-no-private-dns)说明配置 CodeArtifact `com.amazonaws.region.codeartifact.repositories`终端节点是否未启用私有 DNS。

## 使用不带私有 DNS 的 `codeartifact.repositories` 端点
<a name="use-codeartifact-from-vpc-no-private-dns"></a>

如果您无法或不想在中创建的 `com.amazonaws.region.codeartifact.repositories` VPC 终端节点上启用私有 DNS[为创建 VPC 终端节点 CodeArtifact](create-vpc-endpoints.md)，则必须按照以下说明使用正确的 CodeArtifact URL 配置包管理器。

1.  运行以下命令来查找用于覆盖主机名的 VPC 端点。

   ```
   $ aws ec2 describe-vpc-endpoints --filters Name=service-name,Values=com.amazonaws.region.codeartifact.repositories \
     --query 'VpcEndpoints[*].DnsEntries[*].DnsName'
   ```

    输出如下所示。

   ```
   [
     [
       "vpce-0743fe535b883ffff-76ddffff.d.codeartifact.us-west-2.vpce.amazonaws.com"
     ]
   ]
   ```

1. 更新 VPC 终端节点路径以包含包格式、您的 CodeArtifact 域名和 CodeArtifact 存储库名称。请参阅以下示例。

   ```
   https://vpce-0743fe535b883ffff-76ddffff.d.codeartifact.us-west-2.vpce.amazonaws.com/format/d/domain_name-domain_owner/repo_name
   ```

   替换示例端点中的以下字段。
   + *format*：替换为有效的 CodeArtifact 包裹格式，例如，`npm`或`pypi`。
   + *domain\$1name*：替换为包含托管软件包的 CodeArtifact 存储库的 CodeArtifact 域。
   + *domain\$1owner*：替换为 CodeArtifact 域名所有者的 ID，例如`111122223333`。
   + *repo\$1name*：替换为托管软件包的 CodeArtifact 存储库。

   以下 URL 是一个示例 npm 存储库端点。

   ```
   https://vpce-0dc4daf7fca331ed6-et36qa1d.d.codeartifact.us-west-2.vpce.amazonaws.com/npm/d/domainName-111122223333/repoName
   ```

1. 将您的程序包管理器配置为使用上一步中更新的 VPC 端点。您必须在不使用 CodeArtifact `login`命令的情况下配置软件包管理器。有关每个程序包格式的配置说明，请参阅以下文档。
   + npm：[不使用 login 命令配置 npm](npm-auth.md#configuring-npm-without-using-the-login-command)
   + nuget：[不使用 login 命令来配置 nuget 或 dotnet](nuget-cli.md#nuget-configure-without-login)
   + pip：[不使用 login 命令配置 pip](python-configure-pip.md#python-configure-without-pip)
   + twine：[配置和使用麻线 CodeArtifact](python-configure-twine.md)
   + Gradle：[在 Gradle 中使用 CodeArtifact](maven-gradle.md)
   + mvn：[CodeArtifact 与 mvn 一起使用](maven-mvn.md)