In der kostenlosen Stufe werden Assured Open Source Software-Pakete (Assured OSS) in einem von Google verwalteten Artifact Registry-Repository gehostet. Wenn Sie direkt auf die Python-Pakete zugreifen und sie herunterladen möchten, können Sie eine Verbindung zum Artifact Registry-Repository für Assured OSS herstellen.
Dieses Dokument gilt nur für die kostenlose Stufe. Informationen zur Premium-Stufe finden Sie unter Python-Pakete über direkten Repository-Zugriff herunterladen.
Hinweis
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Zentraler Dienstkontoadministrator (
roles/iam.serviceAccountKeyAdmin) für Ihre Organisation zuzuweisen. Sie benötigen diese Berechtigung, um den base64-codierten String des Dienstkontoschlüssels abzurufen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.Assured OSS konfigurieren Reichen Sie für die kostenlose Stufe das Formular zur Kundenaktivierung ein, um den Zugriff auf Assured OSS zu aktivieren.
Prüfen Sie die Verbindung zu Assured OSS für die angeforderten Dienstkonten.
Aktivieren Sie die Artifact Registry API für das übergeordnete Projekt von Google Cloud, das für den Zugriff auf Assured OSS verwendet wird.
Installieren Sie die aktuelle Version der Google Cloud CLI. Wenn Sie die Google Cloud CLI bereits installiert haben, prüfen Sie, ob Sie die aktuelle Version haben. Führen Sie dazu diesen Befehl aus:
gcloud components update
Authentifizierung einrichten
Sie können sich mit einer der folgenden Methoden beim Assured OSS-Python-Paket-Repository authentifizieren:
- Mit Python-Schlüsselbund authentifizieren
- Mit einem Dienstkontoschlüssel authentifizieren
In den folgenden Abschnitten wird beschrieben, wie Sie diese Authentifizierungsmethoden einrichten.
Mit Python-Schlüsselbund authentifizieren
Für die Authentifizierung bei Artifact Registry mit Python empfehlen wir die Verwendung des Python-Schlüsselbunds. Weitere Informationen finden Sie unter Mit Schlüsselbund authentifizieren und Suchreihenfolge für Anmeldedaten.
So richten Sie den Python-Schlüsselbund für die Authentifizierung ein:
Installieren Sie die
keyring-Bibliothek:pip install keyringInstallieren Sie das Artifact Registry-Backend:
pip install keyrings.google-artifactregistry-authListen Sie die Back-Ends auf, um die Installation zu bestätigen:
keyring --list-backendsDie Liste sollte Folgendes enthalten:
ChainerBackend(priority:10)GooglePythonAuth(priority:9)
Informationen zum Einrichten von Standardanmeldedaten für Anwendungen finden Sie unter Authentifizierung einrichten.
Durch diesen Schritt wird sichergestellt, dass der Assured OSS-Credential Helper Ihren Schlüssel erhält, wenn er eine Verbindung zu den Repositories herstellt.
Mit einem Dienstkontoschlüssel authentifizieren
Authentifizieren Sie sich mit einem Dienstkontoschlüssel, wenn die Anwendung eine Authentifizierung mit einem Nutzernamen und einem Passwort erfordert.
Ersetzen Sie die URL des Package Repositorys https://us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple durch die URL https://_json_key_base64:$BASE64_KEY@us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple.
Pakete installieren
In der folgenden Anleitung wird davon ausgegangen, dass Sie PyPI und requirements.txt zum Herunterladen und Verwalten Ihrer Abhängigkeiten verwenden. Wenn Sie einen anderen Prozess zur Abhängigkeitsverwaltung verwenden, müssen Sie andere Schritte ausführen.
Pakete in Assured OSS installieren
Wenn Sie die Assured OSS-Python-Pakete angeben möchten, die Sie herunterladen möchten, erstellen Sie zwei requirements.txt-Dateien. Dies sind die Beispieldateien:
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.
Führen Sie die folgenden Befehle aus, um die Pakete herunterzuladen:
Führen Sie den folgenden Befehl aus, um die erforderlichen Pakete herunterzuladen, die sich in der Artifact Registry für Assured OSS befinden:
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-depsBerücksichtige Folgendes:
--require-hashesist optional. Wenn sie enthalten sind, werden Hashes für alle Pakete und alle Paketversionen in der Dateirequirements.txtangegeben.-vist optional. Wenn angegeben, liefert der Befehl mehr Ausgabe. Wir empfehlen, Abhängigkeiten mit SHA-256-Hashes in Ihrerrequirements.txt-Datei anzupinnen, um Sicherheit und Reproduzierbarkeit zu gewährleisten.
Führen Sie den folgenden Befehl aus, um die erforderlichen Pakete herunterzuladen, die sich nicht in der Artifact Registry für Assured OSS befinden:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -vMit diesem Befehl werden auch die fehlenden Abhängigkeiten der Pakete heruntergeladen, die Sie mit dem vorherigen Befehl heruntergeladen haben.
Auf Pakete zugreifen, die im Artifact Registry-Repository für Assured OSS nicht verfügbar sind
Assured OSS ist mit Assured OSS als bevorzugtem Repository sowie kanonischen öffentlichen Repositories, wie Maven Central oder PyPI, als sekundären Repositories vorkonfiguriert.
Wenn Sie diese Funktion (Vorabversion) verwenden möchten, können Sie auf eine einzelne URL verweisen:
https://us-python.pkg.dev/cloud-aoss/python/simple
Alle in Assured OSS verfügbaren Python-Pakete auflisten
Wenn Sie eine API verwenden möchten, um eine Liste aller Python-Pakete im Artifact Registry-Repository abzurufen, lesen Sie den Hilfeartikel Alle in Assured OSS verfügbaren Python-Pakete auflisten.
requirements-google.txt-Datei generieren
In diesem Abschnitt finden Sie zusätzliche Informationen zum Generieren der Datei requirements-google.txt, die Sie zum Herunterladen der Python-Pakete benötigen. Sie haben zwei Möglichkeiten, den Hash herunterzuladen und die requirements-google.txt-Datei für Ihre Umgebung zu generieren:
Verwenden Sie ein Skript, um eine einzelne Anforderungsdatei für alle Artefakte zu generieren.
Laden Sie für jedes Artefakt eine separate Anforderungsdatei herunter.
In den folgenden Abschnitten finden Sie weitere Informationen zu diesen Optionen.
Option 1: Skript verwenden, um eine einzelne Anforderungsdatei für alle Artefakte zu generieren
Verwenden Sie das Script generator.sh, um eine einzelne requirements-google.txt-Datei für alle Python-Pakete (zusammen mit ihren Hashes) zu generieren, die mit Assured OSS für das Linux-Betriebssystem verfügbar sind. Die Pakete müssen Einschränkungen wie Python-Version, Maschinenarchitektur und Betriebssystem erfüllen. Sie können dann die nicht benötigten Paketversionen löschen und die resultierende Datei verwenden.
Das Script generator.sh hilft auf die folgenden zwei Arten:
- Generiert die aktuelle Liste der Python-Paketversionen, die mit Assured OSS verfügbar sind und auf Ihrem System installiert werden können.
- Generiert die Datei
requirements-google.txtzusammen mit allen Hashes.
Das erforderliche Skript und die zugehörige README.md-Datei sind in einem Cloud Storage-Bucket (gs://cloud-aoss/utils/python-requirements-txt/v1.0) verfügbar und können mit der Google Cloud CLI heruntergeladen werden.
So laden Sie das Skript und die Datei README.md herunter:
Authentifizieren Sie sich mit dem Dienstkonto, um mit dem folgenden Befehl auf den Cloud Storage-Bucket zuzugreifen:
gcloud auth activate-service-account --key-file KEY_FILEErsetzen Sie KEY_FILE durch den Pfad zur Datei mit den Anmeldedaten des Dienstkontos.
Laden Sie die
generator.shmit dem folgenden Befehl auf Ihren Computer herunter:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursiveErsetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, unter dem Sie die heruntergeladene Datei speichern möchten.
Laden Sie die Datei
README.mdmit dem folgenden Befehl herunter:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursiveErsetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, unter dem Sie die heruntergeladene Datei speichern möchten. Die Datei
README.mdenthält eine Anleitung zur Verwendung des Skripts.
Führen Sie das Script mit den folgenden Befehlen aus:
Führen Sie den folgenden Befehl aus, um die Datei
requirements-google.txtzu generieren:chmod +x generator.sh ./generator.shFühren Sie den folgenden Befehl aus, um die Informationen des Pakets in einer CSV-Datei abzurufen:
chmod +x generator.sh ./generator.sh -i
Option 2: requirements.txt für jedes erforderliche Artefakt herunterladen
Sie können auch für jedes Python-Artefakt eine separate requirements.txt-Datei (mit dem Hash) herunterladen und diese dann in einer einzigen requirements.txt-Datei kombinieren.
Artefakt-Hashes sind in einem Cloud Storage-Bucket verfügbar und können mit der gcloud CLI heruntergeladen werden. Hashes für jedes Paket und jede Version befinden sich im Cloud Storage-Bucket-Speicherort gs://cloud-aoss/python/PACKAGE_NAME/VERSION.
So laden Sie die requirements.txt-Datei herunter:
Authentifizieren Sie sich mit dem Dienstkonto, um mit dem folgenden Befehl auf den Cloud Storage-Bucket zuzugreifen:
gcloud auth activate-service-account --key-file KEY_FILEErsetzen Sie KEY_FILE durch den Pfad zur Datei mit den Anmeldedaten des Dienstkontos.
Laden Sie die
requirements.txteines bestimmten Pakets und einer bestimmten Version mit dem folgenden Befehl auf Ihren lokalen Computer herunter:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursiveErsetzen Sie Folgendes:
- PACKAGE_NAME: der Paketname
- VERSION: die Version des Pakets
- PATH_TO_LOCAL_STORE: der lokale Pfad, in den Sie die Datei herunterladen möchten
Beispielbefehl:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach--recursiveBeispieldatei
requirements.txt:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812Der Inhalt jeder dieser
requirements.txt-Dateien kann in einer einzigenrequirements-google.txt-Datei zusammengefasst werden.