在進階級中,Assured OSS 套件會託管於 Artifact Registry 存放區,該存放區是在您控管的專案中建立。如要直接存取及下載 Python 套件,可以連線至 Assured OSS 的 Artifact Registry 存放區。
本文僅適用於 Assured OSS 進階級。如要瞭解免費方案,請參閱「使用直接存放區存取權下載 Python 套件 (免費方案)」。
事前準備
請要求管理員授予您組織的服務帳戶金鑰管理員 (
roles/iam.serviceAccountKeyAdmin) IAM 角色。您需要這項權限,才能取得服務帳戶金鑰的 Base64 編碼字串。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。驗證所要求服務帳戶與 Assured OSS 的連線能力。
安裝最新版本的 Google Cloud CLI。如果您先前已安裝 Google Cloud CLI,請執行下列指令,確認您使用的是最新版本:
gcloud components update
設定驗證方法
您可以使用下列任一方法,向 Assured OSS Python 套件存放區進行驗證:
- 使用 Python 金鑰環進行驗證
- 使用服務帳戶金鑰進行驗證
以下各節說明如何設定這些驗證方式。
使用 Python 鑰匙圈進行驗證
如要使用 Python keyring 向 Artifact Registry 進行驗證,請參閱「使用 keyring 進行驗證」和「憑證搜尋順序」。建議您使用 Python keyring 進行驗證。
如要設定 Python keyring 進行驗證,請按照下列步驟操作:
安裝
keyring程式庫:pip install keyring安裝 Artifact Registry 後端:
pip install keyrings.google-artifactregistry-auth列出後端,確認安裝:
keyring --list-backends清單應包含下列項目:
ChainerBackend(priority:10)GooglePythonAuth(priority:9)
-
這個步驟可確保 Assured OSS 憑證輔助程式在連線至存放區時,能取得您的金鑰。
使用服務帳戶金鑰進行驗證
如果應用程式需要以使用者名稱和密碼驗證,請使用服務帳戶金鑰驗證。
將 Package Repository 網址 https://LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python/simple 替換為網址 https://_json_key_base64:$BASE64_KEY@LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
更改下列內容:
PROJECT_ID:設定 Assured OSS 時選取的專案 ID。LOCATION:支援的區域。
安裝套件
以下操作說明假設您使用 PyPI 和 requirements.txt 下載及管理依附元件。如果您使用其他依附元件管理程序,則必須採取不同步驟。
在 Assured OSS 中安裝套件
如要指定要下載的 Assured OSS Python 套件,請建立兩個 requirements.txt 檔案。範例檔案如下:
requirements-google.txt# Packages present in Google's Artifact Registry urllib3==1.26.11 --hash=sha256:1cffe1aa066363a75c856f261c8fce62d87f7c40ce0f46453ea12bf652b12a13 jsonschema==4.13.0 --hash=sha256:29895bfe55b93b75552fbdd1e09aa0c82b7c1c9395d4f267e10c7d43cd31a74erequirements-pypi.txt# Packages present in Google's Artifact Registry are mentioned here so that pip # downloads their dependencies from PyPI. urllib3==1.26.11 jsonschema==4.13.0 # Below this comment, add any package version which you need but is NOT # present in Google's Artifact Registry and therefore needs to be downloaded from # PyPI.
執行下列指令,下載套件:
如要下載 Assured OSS Artifact Registry 中的必要套件,請執行下列指令:
pip install --require-hashes --requirement=requirements-google.txt \ --index-url https://_json_key_base64:$BASE64_KEY@LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python repo/simple -v \ --no-deps請考量下列事項:
如要下載 Artifact Registry for Assured OSS 中沒有的必要套件,請執行下列指令:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v這個指令也會下載您使用前一個指令下載的套件缺少的依附元件。
列出 Assured OSS 中所有可用的 Python 套件
如要使用 API 取得 Artifact Registry 存放區中所有 Python 套件的清單,請參閱「列出 Assured OSS 中所有可用的 Python 套件」。
產生 requirements-google.txt 檔案
本節提供產生 requirements-google.txt 檔案的其他資訊,您需要下載 Python 套件。如要下載雜湊並為環境產生 requirements-google.txt 檔案,可以使用下列兩種選項之一:
使用指令碼為所有構件產生單一需求檔案。
為每個構件下載個別的需求檔案。
以下各節將進一步說明這些選項。
方法 1:使用指令碼為所有構件產生單一需求檔案
使用 generator.sh 指令碼,為 Linux 作業系統的 Assured OSS 提供的所有 Python 套件 (及其雜湊) 產生單一 requirements-google.txt 檔案。套件必須符合 Python 版本、機器架構和作業系統等限制。接著,您可以刪除不需要的套件版本,並使用產生的檔案。
generator.sh 指令碼有以下兩種用途:
- 產生可透過 Assured OSS 取得,且能成功安裝在系統上的最新 Python 套件版本清單。
- 產生
requirements-google.txt檔案和所有雜湊。
必要的指令碼及其 README.md 檔案位於 Cloud Storage bucket (gs://cloud-aoss/utils/python-requirements-txt/v1.0),可使用 Google Cloud CLI 下載。
如要下載指令碼和 README.md 檔案,請按照下列步驟操作:
使用下列指令,透過服務帳戶進行驗證,存取 Cloud Storage bucket:
gcloud auth activate-service-account --key-file KEY_FILE將
KEY_FILE替換為檔案路徑,檔案中包含設定期間提供的服務帳戶憑證。使用下列指令,將
generator.sh下載到您的機器:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursive將
PATH_TO_LOCAL_STORE替換為要儲存下載檔案的本機路徑。使用下列指令下載
README.md檔案:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursive將
PATH_TO_LOCAL_STORE替換為要儲存下載檔案的本機路徑。README.md檔案包含指令碼的使用說明。
如要執行指令碼,請使用下列指令:
執行下列指令,產生
requirements-google.txt檔案:chmod +x generator.sh ./generator.sh如要取得 CSV 檔案中的套件資訊,請執行下列指令:
chmod +x generator.sh ./generator.sh -i
方法 2:下載各項必要構件的 requirements.txt
您也可以為每個 Python 構件下載獨立的 requirements.txt (包含雜湊) 檔案,然後將這些檔案合併為單一 requirements.txt 檔案。
構件雜湊值位於 Cloud Storage bucket,可使用 gcloud CLI 下載。每個套件和版本的雜湊都位於 gs://cloud-aoss/python/PACKAGE_NAME/VERSION Cloud Storage bucket 位置。
如要下載 requirements.txt 檔案,請按照下列步驟操作:
使用下列指令,透過服務帳戶進行驗證,存取 Cloud Storage bucket:
gcloud auth activate-service-account --key-file KEY_FILE將
KEY_FILE替換為包含服務帳戶憑證的檔案路徑。使用下列指令,將特定套件和版本的
requirements.txt下載到本機電腦:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive更改下列內容:
PACKAGE_NAME:套件名稱VERSION:套件版本PATH_TO_LOCAL_STORE:要下載檔案的本機路徑
指令範例:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach --recursiverequirements.txt範例檔案:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812每個這類
requirements.txt檔案的內容都可以合併為單一requirements-google.txt檔案。