Python-Abhängigkeiten installieren

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Auf dieser Seite wird beschrieben, wie Sie Python-Pakete für Ihre Cloud Composer-Umgebung installieren.

Pakete in Cloud Composer

In diesem Abschnitt wird beschrieben, wie PyPI-Pakete in Cloud Composer funktionieren.

Vorinstallierte und benutzerdefinierte PyPI-Pakete in Cloud Composer-Images

Cloud Composer-Images enthalten sowohl vorinstallierte als auch benutzerdefinierte PyPI-Pakete.

  • Vorinstallierte PyPI-Pakete sind Pakete, die im Cloud Composer-Image Ihrer Umgebung enthalten sind. 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 zusätzlich zu vorinstallierten Paketen in Ihrer Umgebung installieren können.

Optionen zum Verwalten von PyPI-Paketen für Cloud Composer-Umgebungen

Option Verwenden, wenn
Über 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.
Aus einem 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 kann nicht in PyPI gefunden werden und die Bibliothek 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 im Konflikt mit vorinstallierten Paketen. Das Paket ist im PyPI zu finden und hat keine externen Abhängigkeiten.
KubernetesPodOperator und GKE-Operatoren Sie benötigen externe Abhängigkeiten, die nicht von pip installiert werden können (z. B. dist-packages), oder die sich auf einem internen pip-Server befinden. Diese Option erfordert mehr Einrichtung und Wartung. Diese Option sollte nur in Betracht gezogen werden, wenn andere Optionen nicht funktionieren.

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.

  • 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 aktivieren.

  • Die Anforderungen müssen dem in PEP-508 angegebenen Format entsprechen, wobei jede Anforderung in Kleinbuchstaben angegeben wird und aus dem Paketnamen mit optionalen Extras und Versionsangaben besteht.

  • 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.

  • Der PythonVirtualenvOperator verwendet nicht die Konfiguration aus der pip.conf-Datei Ihrer Umgebung. Wenn Sie bestimmte Abhängigkeiten verwenden möchten, einschließlich der Installation über einen benutzerdefinierten Index, übergeben Sie die Anforderungen im Parameter requirements als Liste von Strings. Weitere Informationen zum Format finden Sie in der pip-Dokumentation unter Dateiformat für Anforderungen.

Liste der PyPI-Pakete ansehen

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 in der Liste der Pakete für das Cloud Composer-Image Ihrer Umgebung.

Alle Pakete ansehen

So rufen Sie alle Pakete (sowohl vorinstallierte als auch benutzerdefinierte) in Ihrer Umgebung auf:

gcloud

Der folgende gcloud CLI-Befehl gibt das Ergebnis des python -m pip list-Befehls für einen Airflow-Worker in Ihrer Umgebung zurück. Mit dem Argument --tree können Sie das Ergebnis des Befehls python -m pipdeptree --warn abrufen.

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

  1. Rufen Sie in der Google Cloud -Console die Seite Umgebungen auf.

    Zur Seite Umgebungen

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Wechseln Sie zum Tab PyPI-Pakete.

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 benutzerdefinierter Pakete in Ihrer Umgebung beschrieben.

Pakete von PyPI installieren

Ein Paket kann aus dem Python-Paketindex installiert werden, wenn es keine externen Abhängigkeiten oder Konflikte mit vorinstallierten Paketen gibt.

So können Sie die Python-Abhängigkeiten für Ihre Umgebung hinzufügen, aktualisieren oder löschen:

Console

  1. Rufen Sie in der Google Cloud -Console die Seite Umgebungen auf.

    Zur Seite Umgebungen

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Wechseln Sie zum Tab PyPI-Pakete.

  4. Klicken Sie auf Bearbeiten.

  5. Klicken Sie auf Paket hinzufügen.

  6. Geben Sie im Bereich PyPI-Pakete Paketnamen mit optionalen Versionsangaben und Extras an.

    Beispiel:

    • scikit-learn
    • scipy, >=0.13.3
    • nltk, [machine_learning]
  7. 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 durch die angegebenen Pakete. Pakete, die Sie nicht angeben, werden entfernt.
  • --update-pypi-package aktualisiert oder installiert ein Paket.
  • --remove-pypi-packages entfernt angegebene Pakete.
  • --clear-pypi-packages entfernt alle Pakete.

Anforderungen aus einer Datei installieren

In der Datei requirements.txt muss jeder Anforderungsspezifizierer in einer separaten Zeile stehen.

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 im Argument --update-pypi-package an.

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 Versions- und Extras-Spezifizierer. Wenn Sie Versionen und Extras weglassen 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 die Pakete an, die Sie löschen möchten, indem Sie das Argument --remove-pypi-packages verwenden:

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 ersetzen.

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:

  1. Geben Sie im updateMask-Parameter die Maske an:

    • Verwenden Sie die Maske config.softwareConfig.pypiPackages, um alle vorhandenen Pakete durch die angegebenen Pakete zu ersetzen. Pakete, die Sie nicht angeben, werden gelöscht.
    • Verwenden Sie config.softwareConfig.envVariables.PACKAGE_NAME, um ein bestimmtes Paket hinzuzufügen oder zu aktualisieren. Wenn Sie mehrere Pakete hinzufügen oder aktualisieren möchten, geben Sie mehrere Masken mit Kommas an.
  2. 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 Versions- und Extras-Spezifizierer. Wenn Sie Versionen und Extras weglassen möchten, geben Sie einen leeren Wert an.
    • Wenn Sie mehrere Pakete hinzufügen möchten, fügen Sie pypiPackages zusätzliche Einträge für Pakete hinzu.

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" {
  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 dem optionalen Versions- und Extras-Spezifizierer. Wenn Sie Versionen und Extras weglassen möchten, 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" {
  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 ordnungsgemäß konfiguriert sein, damit sie mit dem Standardtool pip installiert werden können.

So installieren Sie aus einem Paket-Repository mit einer öffentlichen Adresse:

  1. Erstellen Sie eine pip.conf-Datei und fügen Sie gegebenenfalls die folgenden Informationen in die Datei ein:

    • 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/
    
  2. Optional: In einigen Fällen möchten Sie möglicherweise 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 aus PyPI installieren möchten:

    1. Konfigurieren Sie ein virtuelles Artifact Registry-Repository.
    2. Fügen Sie die Konfiguration für mehrere Repositories hinzu (einschließlich PyPI, falls erforderlich) und definieren Sie die Reihenfolge, in der pip die Repositories durchsucht.
    3. Geben Sie die URL des virtuellen Repositorys im Parameter index-url an.
  3. URI des Buckets Ihrer Umgebung ermitteln

  4. Laden Sie die Datei „pip.conf“ in den Ordner /config/pip/ im Bucket Ihrer Umgebung hoch.

  5. 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 sie daraus installiert werden.

Rollen und Berechtigungen konfigurieren:

  1. Das Cloud Build-Dienstkonto muss Berechtigungen zum Lesen aus Ihrem Artifact Registry-Repository haben.

  2. Wenn in Ihrer Umgebung der Zugriff auf andere Dienste in Ihrem Projekt eingeschränkt ist, z. B. wenn Sie VPC Service Controls verwenden:

    1. Weisen Sie dem Dienstkonto der Umgebung anstelle des Cloud Build-Dienstkontos Berechtigungen für den Zugriff auf Ihr Artifact Registry-Repository zu.

    2. 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:

  1. Erstellen Sie eine pip.conf 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 pip-Installationsoptionen

    Hängen Sie bei einem Artifact Registry-Repository /simple/ an die Repository-URL an:

    [global]
    index-url = https://us-central1-python.pkg.dev/example-project/example-repository/simple/
    
  2. (Optional) In einigen Fällen möchten Sie möglicherweise Pakete aus mehreren Repositories abrufen, z. B. wenn Ihr Artifact Registry-Repository einige bestimmte Pakete enthält, die Sie installieren möchten, und Sie alle anderen Pakete aus PyPI installieren möchten:

    1. Konfigurieren Sie ein virtuelles Artifact Registry-Repository.
    2. Fügen Sie die Konfiguration für mehrere Repositories hinzu (einschließlich PyPI, falls erforderlich) und definieren Sie die Reihenfolge, in der pip die Repositories durchsucht.
    3. Geben Sie die URL des virtuellen Repositorys im Parameter index-url an.
  3. Laden Sie diese pip.conf-Datei in den Ordner /config/pip/ im Bucket Ihrer Umgebung hoch. Beispiel: gs://us-central1-example-bucket/config/pip/pip.conf.

  4. Installieren Sie Pakete mit einer der verfügbaren Methoden.

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:

  1. Wenn Sie benutzerdefinierte PyPI-Pakete aus einem Repository im Netzwerk Ihres Projekts installieren und dieses Repository keine öffentliche IP-Adresse hat:

    1. Weisen Sie dem Dienstkonto der Umgebung Berechtigungen für den Zugriff auf dieses Repository zu.

    2. Prüfen Sie, ob die Verbindung zu diesem Repository in Ihrem Projekt konfiguriert ist.

So installieren Sie Pakete aus einem privaten Repository, das im Netzwerk Ihres Projekts gehostet wird:

  1. Erstellen Sie eine pip.conf und fügen Sie gegebenenfalls die folgenden Informationen in die Datei ein:

    • IP-Adresse des Repositorys 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/
    
  2. (Optional) In einigen Fällen möchten Sie möglicherweise Pakete aus mehreren Repositorys abrufen, z. B. wenn das private Repository bestimmte Pakete enthält, die Sie installieren möchten, und Sie alle anderen Pakete aus PyPI installieren möchten:

    1. Konfigurieren Sie ein virtuelles Artifact Registry-Repository.
    2. Fügen Sie die Konfiguration für mehrere Repositories hinzu (einschließlich PyPI, falls erforderlich) und definieren Sie die Reihenfolge, in der pip die Repositories durchsucht.
    3. Geben Sie die URL des virtuellen Repositorys im Parameter index-url an.
  3. (Optional) Sie können ein benutzerdefiniertes Zertifikat verwenden, wenn Sie Pakete aus Ihrem privaten Repository installieren. Anleitung:

    1. Laden Sie die Zertifikatsdatei in den /config/pip/-Ordner im Bucket Ihrer Umgebung hoch.

    2. Geben Sie in pip.conf den Namen der Zertifikatsdatei im Parameter cert an. Ändern Sie den Ordner /etc/pip/ nicht.

      Beispiel:

      [global]
      cert =/etc/pip/example-certificate.pem
      
  4. Laden Sie die Datei „pip.conf“ in den Ordner /config/pip/ im Bucket Ihrer Umgebung hoch. Beispiel: gs://us-central1-example-bucket/config/pip/pip.conf.

  5. Installieren Sie Pakete mit einer der verfügbaren Methoden.

Lokale Python-Bibliothek installieren

So installieren Sie eine interne oder lokale Python-Bibliothek:

  1. Platzieren Sie die Abhängigkeiten in einem Unterverzeichnis im Ordner dags/ 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
    
  2. Importieren Sie die Abhängigkeit aus der DAG-Definitionsdatei.

    Beispiel:

from dependencies import coin_module

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. Verwenden Sie diese Option, wenn Ihre PyPI-Pakete erfolgreich installiert wurden, aber zur Laufzeit fehlschlagen.

    1. Suchen Sie manuell nach den gemeinsam genutzten Objektbibliotheken für die PyPI-Abhängigkeit (eine .so-Datei).
    2. Laden Sie die gemeinsam genutzten Objektbibliotheken in den /plugins-Ordner im Bucket Ihrer Umgebung hoch.
    3. Legen Sie die folgende Umgebungsvariable fest: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/airflow/gcs/plugins

Pakete in privaten IP-Umgebungen installieren

Je nachdem, wie Sie Ihr Projekt konfigurieren, hat Ihre Umgebung möglicherweise keinen Zugriff auf das öffentliche Internet.

Standardmäßig kann Ihre Cloud Composer 3-Umgebung beim Installieren von PyPI-Paketen auf das Internet zugreifen. Dies funktioniert in allen Netzwerktypen der Umgebung (private und öffentliche IP). Sie können beispielsweise Pakete aus dem Python-Paketindex in einer Umgebung mit privater IP-Adresse installieren.

Weitere Informationen finden Sie unter Internetzugriff beim Installieren von PyPI-Paketen konfigurieren.

Private IP-Umgebung mit öffentlichem Internetzugriff

Wenn Ihre Umgebung mit privaten IP-Adressen auf das öffentliche Internet zugreifen kann, können Sie Pakete mit Optionen für Umgebungen mit öffentlichen IP-Adressen installieren:

Private IP-Umgebung ohne Internetzugriff

Wenn Ihre private IP-Umgebung keinen Zugriff auf das öffentliche Internet hat, können Sie Pakete auf eine der folgenden Arten installieren:

  • Verwenden Sie ein privates PyPI-Repository, das im Netzwerk Ihres Projekts gehostet wird.
  • Stellen Sie mit einer Proxyserver-VM im Netzwerk Ihres Projekts eine Verbindung zu einem PyPI-Repository im öffentlichen Internet her. Geben Sie die Proxyadresse in der Datei /config/pip/pip.conf im Bucket Ihrer Umgebung an.
  • Verwenden Sie ein Artifact Registry-Repository als einzige Quelle für Pakete. Definieren Sie dazu den Parameter index-url wie beschrieben neu.
  • Wenn Ihre Sicherheitsrichtlinie den Zugriff auf externe IP-Adressen aus Ihrem VPC-Netzwerk zulässt, können Sie die Installation von Paketen aus Repositories im öffentlichen Internet durch Konfigurieren von Cloud NAT aktivieren.
  • Legen Sie Python-Abhängigkeiten im Ordner /dags im Bucket Ihrer Umgebung ab, um sie als lokale Bibliotheken zu installieren. Dies ist möglicherweise keine gute Option, wenn die Abhängigkeitsstruktur groß ist.

In einer privaten IP-Umgebung mit Einschränkungen für Ressourcenstandorte installieren

Wenn Sie Ihr Projekt an den Anforderungen für Ressourcenstandorte ausrichten, ist die Verwendung einiger Tools untersagt. Insbesondere kann Cloud Build nicht für die Paketinstallation verwendet werden, was den direkten Zugriff auf Repositories im öffentlichen Internet verhindert.

Wenn Sie Python-Abhängigkeiten in einer solchen Umgebung installieren möchten, folgen Sie der Anleitung für private IP-Umgebungen ohne Internetzugriff.

Python-Abhängigkeit in einer privaten 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.

Wenn Sie Python-Abhängigkeiten für eine private IP-Umgebung in einem Perimeter installieren möchten, folgen Sie der Anleitung für private IP-Umgebungen ohne Internetzugriff.

Nächste Schritte