Sandboxes für Worker-Pools konfigurieren

Cloud Run-Sandboxes bieten eine schnelle, sichere und isolierte Umgebung zum Ausführen von Agent-Workflows in Ihrem Worker-Pool, zum Ausführen nicht vertrauenswürdiger Nutzlasten und zum isolierten Verarbeiten von Ereignissen. Sandboxes sind stark auf Latenz optimiert und werden in derselben Instanz wie Ihr Container ausgeführt. Dabei werden die zugewiesene CPU und der zugewiesene Arbeitsspeicher gemeinsam genutzt.

Auf dieser Seite wird beschrieben, wie Sie Sandboxes in Ihrem Container konfigurieren. Weitere Informationen zum Schreiben von Code für die Interaktion mit der Sandbox über die CLI finden Sie unter Code-Ausführung in Cloud Run.

Hinweis

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Installieren und initialisieren Sie die gcloud CLI.
  4. Stellen Sie einen Cloud Run-Worker-Pool bereit.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren und Bereitstellen von Cloud Run-Worker-Pools benötigen:

Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Worker-Pool mit Google Cloud APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.

Sandboxes aktivieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Verwenden Sie die Google Cloud CLI oder eine YAML-Konfiguration, um Sandboxes in Cloud Run-Worker-Pools zu aktivieren:

gcloud

Geben Sie das Flag --sandbox-launcher an, um den Worker-Pool bereitzustellen oder zu aktualisieren:

  • Führen Sie folgenden Befehl aus, um einen neuen Worker-Pool bereitzustellen:

    gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL --sandbox-launcher

    Ersetzen Sie Folgendes:

    • WORKER_POOL: Der Name Ihres Cloud Run-Worker-Pools.
    • IMAGE_URL: Ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • Führen Sie folgenden Befehl aus, um einen vorhandenen Worker-Pool zu aktualisieren:

    gcloud beta run worker-pools update WORKER_POOL --sandbox-launcher

YAML

  1. Wenn Sie einen neuen Worker-Pool erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Worker-Pool aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. Aktualisieren Sie die YAML-Datei, um das Attribut sandboxLauncher mit dem Wert true in die Containerkonfiguration aufzunehmen:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER
            image: IMAGE_URL
            sandboxLauncher: true
    

    Ersetzen Sie Folgendes:

    • WORKER_POOL: Der Name Ihres Cloud Run-Worker-Pools.
    • CONTAINER: Der Name Ihres Containers.
    • IMAGE_URL: Ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  3. Erstellen oder aktualisieren Sie den Worker-Pool mit dem folgenden Befehl:

    gcloud run worker-pools replace worker-pool.yaml

    Der Befehl gcloud run worker-pools replace verwendet standardmäßig die Datei worker-pool.yaml, falls vorhanden.

Sandboxes verwenden die CPU und den Arbeitsspeicher, die dem Hostcontainer zugewiesen sind. Achten Sie darauf, dass die CPU- und Arbeitsspeicherlimits Ihres Hauptcontainers sowohl Ihre Anwendung als auch alle aktiven Sandboxes aufnehmen können, die Sie gleichzeitig ausführen.

Sandboxes deaktivieren

Verwenden Sie die Google Cloud CLI oder eine YAML-Konfiguration, um die Möglichkeit zu deaktivieren, eine Sandbox in Ihrem Worker-Pool zu starten:

gcloud

Aktualisieren Sie den Worker-Pool mit dem Flag --no-sandbox-launcher, indem Sie den folgenden Befehl ausführen:

gcloud beta run worker-pools update WORKER_POOL --no-sandbox-launcher

Ersetzen Sie WORKER_POOL durch den Namen Ihres Worker-Pools.

YAML

  1. Wenn Sie einen neuen Worker-Pool erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Worker-Pool aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. Entfernen Sie das Attribut sandboxLauncher in der Containerkonfiguration aus der YAML-Datei:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER
            image: IMAGE_URL
    

    Ersetzen Sie Folgendes:

    • WORKER_POOL: Der Name Ihres Cloud Run-Worker-Pools.
    • CONTAINER: Der Name Ihres Containers.
    • IMAGE_URL: Ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  3. Erstellen oder aktualisieren Sie den Worker-Pool mit dem folgenden Befehl:

    gcloud run worker-pools replace worker-pool.yaml

    Der Befehl gcloud run worker-pools replace verwendet standardmäßig die Datei worker-pool.yaml, falls vorhanden.

Sandbox-Einstellungen ansehen

So rufen Sie die aktuellen Sandbox-Einstellungen für Ihren Cloud Run-Worker-Pool auf:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Worker-Pools von Cloud Run auf:

    Zu Cloud Run-Worker-Pools

  2. Klicken Sie auf den Worker-Pool, um die Seite Details zu Worker-Pools zu öffnen.

  3. Klicken Sie auf den Tab Überarbeitungen.

  4. Suchen Sie auf dem Tab Container nach der Einstellung Sandbox-Launcher , um zu sehen, ob Sandboxed-Container aktiviert oder deaktiviert sind.

gcloud

  1. Verwenden Sie den folgenden Befehl:

    gcloud run worker-pools describe WORKER_POOL

    Ersetzen Sie WORKER_POOL durch den Namen Ihres Worker-Pools.

  2. Suchen Sie in der zurückgegebenen Konfiguration nach dem Attribut sandboxLauncher: true, um zu prüfen, ob Sandboxed-Container aktiviert sind.

Informationen zum Ausführen von nicht vertrauenswürdigem Code in einer Sandbox aus Ihrem Worker-Pool finden Sie unter Code-Ausführung in Cloud Run.