在免費方案中,Assured Open Source Software (Assured OSS) 套件會託管於 Google 代管的 Artifact Registry 存放區。如要直接存取及下載 Python 套件,可以連線至 Assured OSS 的 Artifact Registry 存放區。
本文僅適用於免費方案。如需進階級,請參閱「使用直接存放區存取權下載 Python 套件」。
事前準備
請要求管理員授予您組織的服務帳戶金鑰管理員 (
roles/iam.serviceAccountKeyAdmin) IAM 角色。您需要這項權限,才能取得服務帳戶金鑰的 Base64 編碼字串。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。設定 Assured OSS。如要使用免費方案,請提交客戶啟用表單,啟用 Assured OSS 存取權。
驗證所要求服務帳戶與 Assured OSS 的連線能力。
針對用於存取 Assured OSS 的服務帳戶,啟用其上層 Google Cloud 專案的 Artifact Registry API。
安裝最新版本的 Google Cloud CLI。如果您先前已安裝 Google Cloud CLI,請執行下列指令,確認您使用的是最新版本:
gcloud components update
設定驗證方法
您可以使用下列任一方法,向 Assured OSS Python 套件存放區進行驗證:
- 使用 Python 鑰匙圈進行驗證
- 使用服務帳戶金鑰進行驗證
以下各節說明如何設定這些驗證方式。
使用 Python 鑰匙圈進行驗證
如要使用 Python 向 Artifact Registry 驗證,建議使用 Python keyring。詳情請參閱「使用 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://us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple 替換為網址 https://_json_key_base64:$BASE64_KEY@us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple
安裝套件
以下操作說明假設您使用 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@us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple -v \ --no-deps請考量下列事項:
--require-hashes為選用項目。如果包含雜湊,則會為requirements.txt檔案中的所有套件和所有套件版本指定雜湊。-v為選用項目。如果指定,指令會提供更多輸出。建議您在requirements.txt檔案中,使用 SHA-256 雜湊固定依附元件,確保安全性和可重現性。
如要下載 Artifact Registry for Assured OSS 中沒有的必要套件,請執行下列指令:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v這個指令也會下載您使用前一個指令下載的套件缺少的依附元件。
存取 Assured OSS 的 Artifact Registry 存放區中未提供的套件
Assured OSS 已預設為偏好存放區,並使用 Maven Central 或 PyPI 等標準公開存放區做為次要存放區。
如要使用這項功能 (預先發布版),可以指向單一網址:
https://us-python.pkg.dev/cloud-aoss/python/simple
列出 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檔案。