Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite wird beschrieben, wie Sie Python-Pakete für Ihre Cloud Composer-Umgebung installieren.
Vorinstallierte und benutzerdefinierte PyPI-Pakete in Cloud Composer-Images
Cloud Composer-Images enthalten sowohl vorinstalliertes als auch benutzerdefiniertes PyPI Pakete.
Vorinstallierte PyPI-Pakete sind Pakete, die in das Cloud Composer-Image Ihrer Umgebung. Jedes Cloud Composer-Image enthält PyPI-Pakete, die für Ihre Version von Cloud Composer und Airflow spezifisch sind.
Benutzerdefinierte PyPI-Pakete sind Pakete, die Sie in Ihrer Umgebung in zu den vorinstallierten Paketen.
Optionen zum Verwalten von PyPI-Paketen für Cloud Composer-Umgebungen
Option | Verwenden, wenn |
---|---|
Von PyPI installieren | Standardmethode zum Installieren von Paketen in Ihrer Umgebung |
Aus einem Repository mit einer öffentlichen IP-Adresse installieren | Das Paket wird in einem anderen Paket-Repository als PyPI gehostet. Dieses Repository hat eine öffentliche IP-Adresse. |
Aus einem Artifact Registry-Repository installieren | Das Paket wird in einem Artifact Registry-Repository gehostet. |
Über ein Repository im Netzwerk Ihres Projekts installieren | Ihre Umgebung hat keinen Zugriff auf das öffentliche Internet. Das Paket wird in einem Paket-Repository im Netzwerk Ihres Projekts gehostet. |
Als lokale Python-Bibliothek installieren |
Das Paket und die Bibliothek können nicht in PyPI gefunden werden
hat keine externen Abhängigkeiten wie dist-packages . |
Plug-in installieren | Das Paket bietet Plug-in-spezifische Funktionen, z. B. zum Ändern der Airflow-Weboberfläche. |
PythonVirtualenvOperator | Sie möchten nicht, dass das Paket für alle Airflow-Worker installiert wird, oder Die Abhängigkeit steht in Konflikt mit vorinstallierten Paketen. Das Paket befindet sich im PyPI und hat keine externen Abhängigkeiten. |
KubernetesPodOperator und GKE-Operator |
Sie benötigen externe Abhängigkeiten, die nicht über pip installiert werden können.
wie dist-packages oder die sich auf einem internen PIP-Server befinden. Dieses
erfordert eine umfassendere Einrichtung und Wartung. Ziehen Sie es nur in Betracht, wenn andere
funktionieren nicht. |
Hinweise
- Sie benötigen eine Rolle, die Umgebungsaktualisierungsvorgänge auslösen kann. Darüber hinaus muss das Dienstkonto der Umgebung eine Rolle mit ausreichenden Berechtigungen zum Ausführen von Aktualisierungsvorgängen haben. Weitere Informationen finden Sie unter Zugriffssteuerung.
- Wenn Ihre Umgebung durch einen VPC Service Controls-Perimeter geschützt ist, müssen Sie vor der Installation von PyPI-Abhängigkeiten zusätzliche Nutzeridentitäten mit Zugriff auf Dienste gewähren, die durch den Dienstperimeter geschützt werden, und die Unterstützung für ein privates PyPI-Repository ermöglichen.
- Die Anforderungen müssen dem angegebenen Format entsprechen in PEP-508 wobei jede Anforderung in Kleinbuchstaben angegeben wird und aus dem Paket mit optionalen Extras und Versionsbezeichnern.
PyPI-Abhängigkeitsaktualisierungen generieren Docker-Images in Artifact Registry:
Wenn ein Abhängigkeitskonflikt dazu führt, dass die Aktualisierung fehlschlägt, wird die Ausführung Ihrer Umgebung mit den vorhandenen Abhängigkeiten fortgeführt. Wenn der Vorgang erfolgreich ist, können Sie die neu installierten Python-Abhängigkeiten in Ihren DAGs verwenden.
Wenn Sie möchten, dass Ihre Builds mit einem benutzerdefinierten Dienstkonto ausgeführt werden, können Sie die
COMPOSER_AGENT_BUILD_SERVICE_ACCOUNT
-Umgebungsvariable mit dem ausgewählten Dienstkonto überschreiben. Dieses Dienstkonto sollte konfiguriert sein zum Ausführen von Builds gemäß der Cloud Build-Dokumentation Das Dienstkonto der Umgebung sollte deniam.serviceAccounts.actAs
.Projekte, bei denen Die Cloud Composer API wird ab dem 29. April 2024 aktiviert. Sofern Ihre Organisation die Richtlinie
constraints/cloudbuild.disableCreateDefaultServiceAccount
nicht überschreibt, wird für neue Projekte das alte Cloud Build-Dienstkonto nicht bereitgestellt, wenn die API aktiviert wird. Da Cloud Build standardmäßig für die Installation benutzerdefinierter PyPI-Pakete in der Cloud Composer-Umgebung verwendet wird, schlägt die Paketinstallation möglicherweise fehl. Standardmäßig enthält der Parameter Dienstkonto der Umgebung verwendet wird, sodass müssen Sie alle weiteren Berechtigungen erteilen, private Pakete ebenfalls mit diesem Dienstkonto.
Liste der PyPI-Pakete aufrufen
Sie können die Liste der Pakete für Ihre Umgebung in verschiedenen Formaten abrufen.
Vorinstallierte Pakete ansehen
Eine Liste der vorinstallierten Pakete für Ihre Umgebung finden Sie unter die Liste der Pakete für die Cloud Composer-Image Ihrer Umgebung.
Alle Pakete ansehen
So rufen Sie alle vorinstallierten und benutzerdefinierten Pakete in Ihrer Umgebung auf:
gcloud
Der folgende gcloud CLI-Befehl gibt das Ergebnis
den Befehl python -m pip list
für einen Airflow-Worker in Ihrer Umgebung.
Mit dem Argument --tree
können Sie das Ergebnis des
python -m pipdeptree --warn
-Befehl.
gcloud beta composer environments list-packages \
ENVIRONMENT_NAME \
--location LOCATION
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.
Benutzerdefinierte PyPI-Pakete ansehen
Console
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab PyPI-Pakete auf.
gcloud
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.softwareConfig.pypiPackages)"
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.
Benutzerdefinierte Pakete in einer Cloud Composer-Umgebung installieren
In diesem Abschnitt werden verschiedene Methoden zum Installieren von benutzerdefinierten Paketen in Ihrem zu verbessern.
Pakete von PyPI installieren
Ein Paket kann aus dem Python-Paketindex installiert werden, wenn es keine externen Abhängigkeiten hat oder nicht mit vorinstallierten Paketen in Konflikt steht.
So können Sie die Python-Abhängigkeiten für Ihre Umgebung hinzufügen, aktualisieren oder löschen:
Console
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab PyPI-Pakete auf.
Klicken Sie auf Bearbeiten.
Klicken Sie auf Paket hinzufügen.
Geben Sie im Abschnitt PyPI-Pakete Paketnamen mit optionalen Versionsangaben und Extras an.
Beispiel:
scikit-learn
scipy
,>=0.13.3
nltk
,[machine_learning]
Klicken Sie auf Speichern.
gcloud
Die gcloud CLI bietet mehrere Argumente für die Arbeit mit benutzerdefinierten PyPI-Paketen:
--update-pypi-packages-from-file
ersetzt alle vorhandenen benutzerdefinierten PyPI-Pakete mit den angegebenen Paketen. Nicht angegebene Pakete werden entfernt.--update-pypi-package
aktualisiert oder installiert ein Paket.--remove-pypi-packages
entfernt die angegebenen Pakete.--clear-pypi-packages
entfernt alle Pakete.
Anforderungen aus einer Datei installieren
Die Datei requirements.txt
muss alle
Anforderungsspezifizierer in einem separaten
Zeile.
Beispiel:
scipy>=0.13.3
scikit-learn
nltk[machine_learning]
Aktualisieren Sie Ihre Umgebung und geben Sie die Datei requirements.txt
im Argument --update-pypi-packages-from-file
an.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--update-pypi-packages-from-file requirements.txt
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.
Ein Paket installieren
Aktualisieren Sie Ihre Umgebung und geben Sie das Paket, die Version und die Extras in
Das Argument --update-pypi-package
.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--update-pypi-package PACKAGE_NAMEEXTRAS_AND_VERSION
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.PACKAGE_NAME
durch den Namen des Pakets.EXTRAS_AND_VERSION
mit dem optionalen Bezeichner für Version und Extras. Wenn Sie Versionen und Extras ausschließen möchten, geben Sie einen leeren Wert an.
Beispiel:
gcloud composer environments update example-environment \
--location us-central1 \
--update-pypi-package "scipy>=0.13.3"
Pakete entfernen
Aktualisieren Sie Ihre Umgebung und geben Sie im Argument --remove-pypi-packages
die Pakete an, die Sie löschen möchten:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--remove-pypi-packages PACKAGE_NAMES
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.PACKAGE_NAMES
durch eine durch Kommas getrennte Liste von Paketen.
Beispiel:
gcloud composer environments update example-environment \
--location us-central1 \
--remove-pypi-packages scipy,scikit-learn
API
Erstellen Sie eine API-Anfrage environments.patch
.
In dieser Anfrage:
Geben Sie im Parameter
updateMask
die Maske an:- Mit der Maske „
config.softwareConfig.pypiPackages
“ alle vorhandenen ersetzen Pakete mit den angegebenen Paketen. Nicht angegebene Pakete werden gelöscht. - Verwende
config.softwareConfig.envVariables.PACKAGE_NAME
, um ein bestimmtes Paket hinzuzufügen oder zu aktualisieren. Wenn Sie mehrere Pakete hinzufügen oder aktualisieren möchten, mehrere Masken durch Kommas angeben.
- Mit der Maske „
Geben Sie im Anfragetext Pakete und Werte für Versionen und Extras an:
{ "config": { "softwareConfig": { "pypiPackages": { "PACKAGE_NAME": "EXTRAS_AND_VERSION" } } } }
Ersetzen Sie:
PACKAGE_NAME
durch den Namen des Pakets.EXTRAS_AND_VERSION
mit dem optionalen Bezeichner für Version und Extras. Wenn Sie Versionen und Extras ausschließen möchten, geben Sie einen leeren Wert an.- Wenn Sie mehrere Pakete hinzufügen möchten, fügen Sie zusätzliche Einträge für Pakete hinzu
an
pypiPackages
.
Beispiel:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.pypiPackages.EXAMPLE_PACKAGE,
// config.softwareConfig.pypiPackages.ANOTHER_PACKAGE
{
"config": {
"softwareConfig": {
"pypiPackages": {
"EXAMPLE_PACKAGE": "",
"ANOTHER_PACKAGE": ">=1.10.3"
}
}
}
}
Terraform
Der Block pypi_packages
im Block software_config
gibt Pakete an.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
pypi_packages = {
PACKAGE_NAME = "EXTRAS_AND_VERSION"
}
}
}
}
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.PACKAGE_NAME
durch den Namen des Pakets.EXTRAS_AND_VERSION
mit der optionalen Versions- und Extraangabe. Bis Versionen und Extras auslassen, geben Sie einen leeren Wert an.- Wenn Sie mehrere Pakete hinzufügen möchten, fügen Sie
pypi_packages
zusätzliche Einträge für Pakete hinzu.
Beispiel:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
pypi_packages = {
scipy = ">=1.10.3"
scikit-learn = ""
nltk = "[machine_learning]"
}
}
}
}
Pakete aus einem öffentlichen Repository installieren
Sie können Pakete installieren, die in anderen Repositories mit einer öffentlichen IP-Adresse gehostet werden.
Die Pakete müssen richtig konfiguriert sein, damit sie mit dem Standardtool pip
installiert werden können.
So installieren Sie aus einem Paket-Repository mit einer öffentlichen Adresse:
pip.conf erstellen und fügen Sie gegebenenfalls die folgenden Informationen hinzu:
- URL des Repositorys (im Parameter
index-url
) - Anmeldedaten für den Zugriff auf das Repository
- Nicht standardmäßige
pip
-Installationsoptionen
Beispiel:
[global] index-url=https://example.com/
- URL des Repositorys (im Parameter
Optional: In einigen Fällen möchten Sie Pakete aus mehreren Repositories abrufen, z. B. wenn das öffentliche Repository bestimmte Pakete enthält, die Sie installieren möchten, und Sie alle anderen Pakete von PyPI installieren möchten:
- Konfigurieren Sie ein virtuelles Artifact Registry-Repository.
- Fügen Sie eine Konfiguration für mehrere Repositories hinzu (einschließlich PyPI, falls erforderlich) und definieren Sie die Reihenfolge, in der
pip
die Repositories durchsucht. - Geben Sie die URL des virtuellen Repositories im Parameter
index-url
an.
Laden Sie die Datei „pip.conf“ in den
/config/pip/
hoch. im Bucket Ihrer Umgebung.Installieren Sie Pakete mit einer der verfügbaren Methoden.
Pakete aus einem Artifact Registry-Repository installieren
Sie können Pakete in einem Artifact Registry-Repository in Ihrem Projekt speichern und Ihre Umgebung so konfigurieren, dass die Installation von dort aus erfolgt.
Konfigurieren Sie Rollen und Berechtigungen:
Das Dienstkonto Ihrer Umgebung muss die Rolle
iam.serviceAccountUser
.Das Cloud Build-Dienstkonto muss Berechtigungen zum Lesen aus Ihrem Artifact Registry-Repository haben.
Wenn in Ihrer Umgebung der Zugriff auf andere Dienste in Ihrem Projekt eingeschränkt ist, z. B. wenn Sie VPC Service Controls verwenden:
Berechtigungen für den Zugriff auf Ihr Artifact Registry-Repository zuweisen das Dienstkonto der Umgebung anstelle des Cloud Build-Dienstkonto.
Achten Sie darauf, dass die Verbindung zum Artifact Registry-Repository in Ihrem Projekt konfiguriert ist.
So installieren Sie benutzerdefinierte PyPI-Pakete aus einem Artifact Registry-Repository:
Erstellen Sie eine pip.conf-Datei und fügen Sie gegebenenfalls die folgenden Informationen in die Datei ein:
- URL des Artifact Registry-Repositorys (im Parameter
index-url
) - Anmeldedaten für den Zugriff auf das Repository
- Nicht standardmäßige Installationsoptionen für
pip
Bei einem Artifact Registry-Repository
/simple/
an das Repository anhängen URL:[global] index-url = https://us-central1-python.pkg.dev/example-project/example-repository/simple/
- URL des Artifact Registry-Repositorys (im Parameter
Optional: In einigen Fällen möchten Sie Pakete aus mehreren Repositories abrufen, z. B. wenn Ihr Artifact Registry-Repository bestimmte Pakete enthält, die Sie installieren möchten, und Sie alle anderen Pakete aus PyPI installieren möchten:
- Konfigurieren Sie ein virtuelles Artifact Registry-Repository.
- Fügen Sie eine Konfiguration für mehrere Repositories hinzu (einschließlich PyPI, falls erforderlich) und definieren Sie die Reihenfolge, in der
pip
die Repositories durchsucht. - Geben Sie die URL des virtuellen Repositories im Parameter
index-url
an.
Laden Sie diese pip.conf-Datei in den
/config/pip/
hoch. im Bucket Ihrer Umgebung. Beispiel:gs://us-central1-example-bucket/config/pip/pip.conf
.Pakete können mit einer der verfügbaren Methoden installiert werden.
Pakete aus einem privaten Repository installieren
Sie können ein privates Repository im Netzwerk Ihres Projekts hosten und Ihre Umgebung so konfigurieren, dass Python-Pakete daraus installiert werden.
Rollen und Berechtigungen konfigurieren:
Das Dienstkonto für Ihre Cloud Composer-Umgebung muss haben die Rolle
iam.serviceAccountUser
.Wenn Sie benutzerdefinierte PyPI-Pakete aus einem Repository im Netzwerk und dieses Repository hat keine öffentliche IP-Adresse:
Weisen Sie dem Dienstkonto der Umgebung Berechtigungen für den Zugriff auf dieses Repository zu.
Achten Sie darauf, dass die Verbindung zu diesem Repository in Ihrem Projekt arbeiten.
So installieren Sie Pakete aus einem privaten Repository, das im Netzwerk Ihres Projekts gehostet wird:
pip.conf erstellen und fügen Sie gegebenenfalls die folgenden Informationen hinzu:
- IP-Adresse des Repositories im Netzwerk Ihres Projekts
- Anmeldedaten für den Zugriff auf das Repository
- Nicht standardmäßige
pip
-Installationsoptionen
Beispiel:
[global] index-url=https://192.0.2.10/
Optional: In einigen Fällen möchten Sie Pakete aus mehreren Repositories abrufen, z. B. wenn das private Repository bestimmte Pakete enthält, die Sie installieren möchten, und Sie alle anderen Pakete von PyPI installieren möchten:
- Konfigurieren Sie ein virtuelles Artifact Registry-Repository.
- Fügen Sie eine Konfiguration für mehrere Repositories hinzu (einschließlich PyPI, falls erforderlich) und definieren Sie die Reihenfolge, in der
pip
die Repositories durchsucht. - Geben Sie die URL des virtuellen Repositorys im Parameter
index-url
an.
Optional: In Cloud Composer Version 2.2.1 und höher können Sie ein benutzerdefiniertes Zertifikat verwenden, wenn Sie Pakete aus Ihrem privaten Repository installieren. Anleitung:
Laden Sie die Zertifikatsdatei in den Ordner
/config/pip/
im Bucket Ihrer Umgebung hoch.Geben Sie in der Datei „pip.conf“ im Parameter
cert
den Namen der Zertifikatdatei an. Ändern Sie den Ordner/etc/pip/
nicht.Beispiel:
[global] cert =/etc/pip/example-certificate.pem
Laden Sie die Datei „pip.conf“ in den
/config/pip/
hoch. im Bucket Ihrer Umgebung. Beispiel:gs://us-central1-example-bucket/config/pip/pip.conf
.Pakete können mit einer der verfügbaren Methoden installiert werden.
Lokale Python-Bibliothek installieren
So installieren Sie eine interne oder lokale Python-Bibliothek:
Platzieren Sie die Abhängigkeiten in einem Unterverzeichnis im
dags/
-Ordner im Bucket Ihrer Umgebung. Zum Importieren eines Moduls aus einem Unterverzeichnis muss jedes Unterverzeichnis im Pfad des Moduls die Markierungsdatei eines__init__.py
-Pakets enthalten.Im folgenden Beispiel lautet die Abhängigkeit
coin_module.py
:dags/ use_local_deps.py # A DAG file. dependencies/ __init__.py coin_module.py
Importieren Sie die Abhängigkeit aus der DAG-Definitionsdatei.
Beispiel:
Pakete verwenden, die von gemeinsam genutzten Objektbibliotheken abhängen
Bestimmte PyPI-Pakete hängen von Bibliotheken auf Systemebene ab. Obwohl Systembibliotheken von Cloud Composer nicht unterstützt werden, stehen Ihnen folgende Optionen zur Verfügung:
KubernetesPodOperator verwenden. Legen Sie das Operator-Image auf ein benutzerdefiniertes Build-Image fest. Verwenden Sie diese Option, wenn Pakete während der Installation aufgrund einer nicht erfüllten Systemabhängigkeit fehlschlagen.
Laden Sie die gemeinsam genutzten Objektbibliotheken in den Bucket Ihrer Umgebung hoch. Wenn Ihr PyPI -Pakete, die erfolgreich installiert wurden, aber zur Laufzeit fehlschlagen, verwenden Sie diese Option.
- Gemeinsam genutzte Objektbibliotheken für die PyPI-Abhängigkeit manuell finden (eine SO-Datei).
- Laden Sie die gemeinsam genutzten Objektbibliotheken in den Ordner
/plugins
Ihres im Bucket der Umgebung. - Legen Sie die folgende Umgebungsvariable fest:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/airflow/gcs/plugins
Pakete in privaten IP-Umgebungen installieren
In diesem Abschnitt wird erläutert, wie Sie Pakete in Umgebungen mit privaten IP-Adressen installieren.
Je nachdem, wie Sie Ihr Projekt konfigurieren, verfügt Ihre Umgebung möglicherweise nicht über Zugang zum öffentlichen Internet.
Private IP-Umgebung mit Zugriff auf das öffentliche Internet
Wenn Ihre Umgebung mit privater IP-Adresse auf das öffentliche Internet zugreifen kann, können Sie Pakete mithilfe von Optionen für Umgebungen mit öffentlicher IP-Adresse installieren:
- Von PyPI installieren. In diesem Fall ist keine spezielle Konfiguration erforderlich. Folgen Sie der Anleitung unter Paket aus PyPI installieren.
- Installation aus einem Repository mit einer öffentlichen IP-Adresse Folgen Sie der Anleitung unter Paket aus einem privaten Repository installieren.
- Installation aus einem privaten PyPI-Repository, das im Netzwerk Ihres Projekts gehostet wird.
Private IP-Umgebung ohne Internetzugriff
Wenn Ihre private IP-Umgebung keinen Zugriff auf das öffentliche Internet hat, können Sie Pakete auf folgende Arten installieren:
- Verwenden Sie ein privates PyPI-Repository, das im Netzwerk Ihres Projekts gehostet wird.
- Verwenden Sie eine Proxyserver-VM im Netzwerk Ihres Projekts, um eine Verbindung zu einem PyPI-Repository im öffentlichen Internet herzustellen. Proxyadresse angeben in
die Datei
/config/pip/pip.conf
im Bucket Ihrer Umgebung. - Artifact Registry-Repository verwenden als einzige Quelle
von Paketen. Definieren Sie dazu den Parameter
index-url
wie beschrieben neu. - Wenn Ihre Sicherheitsrichtlinie den Zugriff auf externe IP-Adressen von Ihrem VPC-Netzwerk aus zulässt, können Sie die Installation von Paketen aus Repositories im öffentlichen Internet aktivieren, indem Sie Cloud NAT konfigurieren.
- Geben Sie die Python-Abhängigkeiten im Bucket Ihrer Umgebung in den Ordner
/dags
ein, um sie als lokale Bibliotheken zu installieren. Dies ist möglicherweise keine gute Option, wenn die Abhängigkeitsstruktur groß ist.
Installation in einer privaten IP-Umgebung mit Einschränkungen für Ressourcenstandorte
Wenn Sie Ihr Projekt an den Anforderungen für Ressourcenstandorte ausrichten, ist die Verwendung einiger Tools untersagt. Insbesondere Cloud Build kann nicht für die Paketinstallation verwendet werden, wodurch der direkte Zugriff auf im öffentlichen Internet.
Folgen Sie zum Installieren von Python-Abhängigkeiten in einer solchen Umgebung der Anleitung für private IP-Umgebungen ohne Internetzugang.
Python-Abhängigkeit für eine private IP-Umgebung in einem VPC Service Controls-Perimeter installieren
Der Schutz Ihres Projekts mit einem VPC Service Controls-Perimeter erhöht die Sicherheit. Insbesondere kann Cloud Build nicht für die Paketinstallation verwendet werden, was den direkten Zugriff auf Repositories im öffentlichen Internet verhindert.
So installieren Sie Python-Abhängigkeiten für eine private IP-Umgebung in einem Perimeter: Folgen Sie der Anleitung für private IP-Umgebungen ohne Internetzugang.