

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

# 設定 VPC 以連線至 的 PyPI AWS Glue
<a name="setup-vpc-for-pypi"></a>

Python Package Index (PyPI) 是 Python 程式設計語言的軟體儲存庫。本主題介紹支援使用 pip 安裝的套件 (由工作階段建立者使用 `--additional-python-modules` 旗標指定) 所需的詳細資訊。

搭配連接器使用 AWS Glue 互動式工作階段會導致透過為連接器指定的子網路使用 VPC 網路。因此，除非您設定特殊組態，否則無法使用 AWS 服務和其他網路目的地。

此問題的解決方案包括：
+ 使用工作階段可存取的網際網路閘道。
+ 設定和使用具有 PyPI/Simple 儲存庫的 S3 儲存貯體，其中包含套件集相依性的傳遞關閉。
+ 使用鏡像 PyPI 並連接至 VPC 的 CodeArtifact 儲存庫。

## 設定網際網路閘道
<a name="setup-vpc-for-pypi-internet-gateway"></a>

[NAT 閘道使用案例](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-scenarios.html)中詳細介紹了技術方面的內容，但請注意這些使用 `--additional-python-modules` 的要求。具體而言，`--additional-python-modules` 需要存取 pypi.org，這由您的 VPC 組態決定。請注意以下要求：

1. 需要透過 pip 安裝為使用者工作階段安裝額外的 python 模組。如果工作階段使用連接器，您的組態可能會受到影響。

1. 當連接器與 `--additional-python-modules` 一起使用，在工作階段啟動時，與連接器的 `PhysicalConnectionRequirements` 關聯的子網路必須提供用於連接 pypi.org 的網路路徑。

1. 您必須確定您的組態是否正確。

## 設定 Amazon S3 儲存貯體以託管目標 PyPI/Simple 儲存庫
<a name="setup-vpc-for-pypi-s3-bucket"></a>

此範例會在 Amazon S3 中針對一組套件及其相依性設定 PyPI 鏡像。

若要為一組套件設定 PyPI 鏡像：

```
# pip download all the dependencies
pip download -d s3pypi --only-binary :all: plotly gglplot
pip download -d s3pypi --platform manylinux_2_17_x86_64 --only-binary :all: psycopg2-binary
# create and upload the pypi/simple index and wheel files to the s3 bucket
s3pypi -b test-domain-name --put-root-index -v s3pypi/*
```

如果您已有現有的成品儲存庫，其將有一個供 pip 使用的索引 URL，您可以提供該索引 URL 來取代上述 Amazon S3 儲存貯體的範例 URL。

若要透過一些範例套件使用自訂索引 URL：

```
%%configure
{
    "--additional-python-modules": "psycopg2_binary==2.9.5",
    "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com"
}
```

## 設定連接至 VPC 之 pypi 的 CodeArtifact 鏡像
<a name="setup-vpc-for-pypi-code-artifact"></a>

若要設定鏡像：

1. 在與連接器所用之子網路相同的區域中建立儲存庫。

   選取 `Public upstream repositories` 並選擇 `pypi-store`。

1. 提供從子網路的 VPC 對儲存庫的存取權。

1. 使用 `python-modules-installer-option` 指定正確的 `--index-url`。

   ```
   %%configure
   {
       "--additional-python-modules": "psycopg2_binary==2.9.5",
       "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com"
   }
   ```

如需詳細資訊，請參閱 [Use CodeArtifact from a VPC](https://docs.aws.amazon.com/codeartifact/latest/ug/use-codeartifact-from-vpc.html)。