Python-Abhängigkeiten für Cloud Composer installieren

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

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 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
Von 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
Von 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 und die Bibliothek können in PyPI nicht gefunden werden hat keine externen Abhängigkeiten wie dist-packages.
Plug-in installieren Das Paket bietet Plug-in-spezifische Funktionen, z. B. das Ändern von der Airflow-Weboberfläche angezeigt.
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 der PyPI-Abhängigkeiten zusätzliche Nutzeridentitäten für den Zugriff auf Dienste zu gewähren, Der Dienstperimeter schützt und ermöglicht die Unterstützung für ein privates PyPI. zu erstellen.
  • 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.

  • Projekte, bei denen Die Cloud Composer API wird ab dem 29. April 2024 aktiviert. Sofern Ihre Organisation die constraints/cloudbuild.disableCreateDefaultServiceAccount Richtlinie, neue Projekte das Legacy-Cloud Build-Dienstkonto nicht bereitstellt zum Aktivieren der API. Da Cloud Build standardmäßig verwendet wird, wenn Benutzerdefinierte PyPI-Pakete in Cloud Composer installieren kann die Installation der Pakete fehlschlagen. 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. Wenn Sie Ihre Builds mit einem anderen Konto ausgeführt werden soll, COMPOSER_AGENT_BUILD_SERVICE_ACCOUNT Umgebungsvariable mit dem ausgewählten Dienstkonto. Dieses Dienstkonto sollte konfiguriert sein zum Ausführen von Builds gemäß der Cloud Build-Dokumentation Das Dienstkonto der Umgebung sollte den iam.serviceAccounts.actAs.

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

  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. 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 aus PyPI installieren

Ein Paket kann über Python-Paketindex, wenn keine externen oder Konflikte mit vorinstallierten Paketen.

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. Rufen Sie den Tab PyPI-Pakete auf.

  4. Klicken Sie auf Bearbeiten.

  5. Klicken Sie auf Paket hinzufügen.

  6. Geben Sie im Abschnitt PyPI-Pakete Paketnamen an (optional). Versionsbezeichner und -extras.

    Beispiel:

    • scikit-learn
    • scipy, >=0.13.3
    • nltk, [machine_learning]
  7. Klicken Sie auf Speichern.

gcloud

Die gcloud CLI hat mehrere Vorteile für die Arbeit mit benutzerdefinierten PyPI Pakete:

  • --update-pypi-packages-from-file ersetzt alle vorhandenen benutzerdefinierten PyPI-Pakete mit den angegebenen Paketen. Pakete, die nicht von Ihnen stammen 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

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 in Das Argument --update-pypi-packages-from-file.

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. Bis Versionen und Extras auslassen, 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:

  1. Geben Sie im Parameter updateMask die Maske an:

    • Mit der Maske „config.softwareConfig.pypiPackages“ alle vorhandenen ersetzen Pakete mit den angegebenen Paketen. Pakete, die nicht von Ihnen stammen werden gelöscht.
    • Verwenden Sie config.softwareConfig.envVariables.PACKAGE_NAME zum Hinzufügen oder ein bestimmtes Paket zu aktualisieren. Wenn Sie mehrere Pakete hinzufügen oder aktualisieren möchten, mehrere Masken durch Kommas angeben.
  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 Bezeichner für Version und Extras. Bis Versionen und Extras auslassen, 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

Mit dem Block pypi_packages im Block software_config wird angegeben, Pakete.

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 dem optionalen Bezeichner für Version und Extras. Bis Versionen und Extras auslassen, 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 pypi_packages.

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:

  1. 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 Installationsoptionen für pip

    Beispiel:

    [global]
    index-url=https://example.com/
    
  2. (Optional) In einigen Fällen möchten Sie vielleicht Pakete von mehreren z. B. wenn das öffentliche Repository bestimmte Pakete, die Sie installieren möchten, und alle anderen Pakete aus PyPI:

    1. Konfigurieren Sie ein virtuelles Artifact Registry-Repository.
    2. Konfiguration für mehrere Repositories hinzufügen (falls erforderlich einschließlich PyPI) 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. Ermitteln Sie den URI des Buckets Ihrer Umgebung.

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

  5. Pakete können mit einer der verfügbaren Methoden installiert werden.

Pakete aus einem Artifact Registry-Repository installieren

Sie können Pakete in einem Artifact Registry-Repository speichern. in Ihrem Projekt erstellen und Ihre Umgebung für die Installation konfigurieren.

Konfigurieren Sie Rollen und Berechtigungen:

  1. Das Dienstkonto Ihrer Umgebung muss die Rolle iam.serviceAccountUser.

  2. Prüfen Sie, ob das Cloud Build-Dienstkonto Berechtigungen zum Lesen aus Ihrem Artifact Registry-Repository.

  3. Wenn in Ihrer Umgebung der Zugriff auf andere Dienste in der Wenn Sie beispielsweise VPC Service Controls verwenden, gilt Folgendes:

    1. Berechtigungen für den Zugriff auf Ihr Artifact Registry-Repository zuweisen das Dienstkonto der Umgebung anstelle des Cloud Build-Dienstkonto.

    2. Achten Sie darauf, dass die Verbindung zum Artifact Registry-Repository die in Ihrem Projekt konfiguriert sind.

So installieren Sie benutzerdefinierte PyPI-Pakete aus einem Artifact Registry-Repository:

  1. pip.conf erstellen und fügen Sie gegebenenfalls die folgenden Informationen hinzu:

    • 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/
    
  2. (Optional) In einigen Fällen möchten Sie vielleicht Pakete von mehreren Repositories, z. B. wenn Ihr Artifact Registry-Repository bestimmte Pakete, die Sie installieren möchten alle anderen Pakete aus PyPI:

    1. Konfigurieren Sie ein virtuelles Artifact Registry-Repository.
    2. Konfiguration für mehrere Repositories hinzufügen (falls erforderlich einschließlich PyPI) 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 /config/pip/ hoch. im Bucket Ihrer Umgebung. Beispiel: gs://us-central1-example-bucket/config/pip/pip.conf.

  4. Pakete können mit einer der verfügbaren Methoden installiert werden.

Pakete aus einem privaten Repository installieren

Sie können im Netzwerk Ihres Projekts ein privates Repository hosten und Ihr um Python-Pakete zu installieren.

Konfigurieren Sie Rollen und Berechtigungen:

  1. Das Dienstkonto für Ihre Cloud Composer-Umgebung muss haben die Rolle iam.serviceAccountUser.

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

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

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

  1. pip.conf erstellen und fügen Sie gegebenenfalls die folgenden Informationen hinzu:

    • IP-Adresse des Repositorys im Netzwerk Ihres Projekts
    • Anmeldedaten für den Zugriff auf das Repository
    • Nicht standardmäßige Installationsoptionen für pip

    Beispiel:

    [global]
    index-url=https://192.0.2.10/
    
  2. (Optional) In einigen Fällen möchten Sie vielleicht Pakete von mehreren z. B. wenn das private Repository bestimmte Pakete, die Sie installieren möchten, und alle anderen Pakete aus PyPI:

    1. Konfigurieren Sie ein virtuelles Artifact Registry-Repository.
    2. Konfiguration für mehrere Repositories hinzufügen (falls erforderlich einschließlich PyPI) 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) Ab Version 2.2.1 von Cloud Composer können Sie benutzerdefiniertes Zertifikat verwenden, wenn Sie Pakete aus Ihrer privaten zu erstellen. Anleitung:

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

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

      Beispiel:

      [global]
      cert =/etc/pip/example-certificate.pem
      
  4. 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.

  5. Pakete können mit einer der verfügbaren Methoden installiert werden.

Lokale Python-Bibliothek installieren

So installieren Sie eine interne oder lokale Python-Bibliothek:

  1. Platzieren Sie die Abhängigkeiten in einem Unterverzeichnis im dags/-Ordner im Bucket Ihrer Umgebung. Um ein Modul aus einem muss jedes Unterverzeichnis im Pfad des Moduls Eine __init__.py-Paketmarkierungsdatei.

    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ängig sind

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. Benutzerdefinierten Operatorbild festlegen Build-Image. Wenn während der Installation Pakete aufgrund mit einer nicht erfüllten Systemabhängigkeit verknüpft sind, verwenden Sie diese Option.

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

    1. Gemeinsam genutzte Objektbibliotheken für die PyPI-Abhängigkeit manuell finden (eine SO-Datei).
    2. Laden Sie die gemeinsam genutzten Objektbibliotheken in den Ordner /plugins Ihres im Bucket der Umgebung.
    3. 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 privaten IP-Umgebungen installieren.

Je nachdem, wie Sie Ihr Projekt konfigurieren, verfügt Ihre Umgebung möglicherweise nicht über Zugang zum öffentlichen Internet.

Private IP-Umgebung mit öffentlichem Internetzugang

Wenn Ihre private IP-Umgebung auf das öffentliche Internet zugreifen kann, Installieren Sie Pakete mithilfe von Optionen für öffentliche IP-Umgebungen:

Private IP-Umgebung ohne Internetzugang

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.
  • Verwenden Sie eine Proxyserver-VM im Netzwerk Ihres Projekts, um eine Verbindung herzustellen zu einem PyPI-Repository im öffentlichen Internet. Proxyadresse angeben in die Datei /config/pip/pip.conf im Bucket Ihrer Umgebung.
  • Artifact Registry-Repository verwenden als einzige Quelle von Paketen. Dazu müssen Sie den Parameter index-url wie beschrieben neu definieren.
  • Wenn Ihre Sicherheitsrichtlinie den Zugriff auf externe IP-Adressen von Ihrem VPC-Netzwerk können Sie die Installation von Paketen aus Repositories im öffentlichen Internet, indem Sie Cloud NAT konfigurieren.
  • Python-Abhängigkeiten im Ordner /dags des Buckets Ihrer Umgebung ablegen um sie als lokale Bibliotheken zu installieren. Dies ist möglicherweise kein wenn die Abhängigkeitsstruktur groß ist.

In einer privaten IP-Umgebung unter Einschränkungen des Ressourcenstandorts installieren

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

Schützen Sie Ihr Projekt mit einem VPC Service Controls-Perimeter führt zu weiteren Sicherheitseinschränkungen. Insbesondere Cloud Build kann nicht für die Paketinstallation verwendet werden, wodurch der direkte Zugriff auf im öffentlichen Internet.

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.

Nächste Schritte