本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Python Package Index (PyPI) 是 Python 程式設計語言的軟體儲存庫。本主題介紹支援使用 pip 安裝的套件 (由工作階段建立者使用 --additional-python-modules
旗標指定) 所需的詳細資訊。
若將 AWS Glue 互動式工作階段與連接器搭配使用,會導致透過為連接器指定的子網路使用 VPC 網路。因此,除非您設定特殊組態,否則無法使用 AWS 服務和其他網路目的地。
此問題的解決方案包括:
使用工作階段可存取的網際網路閘道。
設定和使用具有 PyPI/Simple 儲存庫的 S3 儲存貯體,其中包含套件集相依性的傳遞關閉。
使用鏡像 PyPI 並連接至 VPC 的 CodeArtifact 儲存庫。
設定網際網路閘道
NAT 閘道使用案例中詳細介紹了技術方面的內容,但請注意這些使用 --additional-python-modules
的要求。具體而言,--additional-python-modules
需要存取 pypi.org,這由您的 VPC 組態決定。請注意以下要求:
需要透過 pip 安裝為使用者工作階段安裝額外的 python 模組。如果工作階段使用連接器,您的組態可能會受到影響。
當連接器與
--additional-python-modules
一起使用,在工作階段啟動時,與連接器的PhysicalConnectionRequirements
關聯的子網路必須提供用於連接 pypi.org 的網路路徑。您必須確定您的組態是否正確。
設定 Amazon S3 儲存貯體以託管目標 PyPI/Simple 儲存庫
此範例會在 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 鏡像
若要設定鏡像:
在與連接器所用之子網路相同的區域中建立儲存庫。
選取
Public upstream repositories
並選擇pypi-store
。提供從子網路的 VPC 對儲存庫的存取權。
使用
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。