Sandboxes für Jobs konfigurieren

Cloud Run-Sandboxes bieten eine schnelle, sichere und isolierte Umgebung zum Ausführen von Agent-Code, zum Durchführen von Datentransformationen und zum sicheren Ausführen von Skripts in Ihrem vorhandenen Job. Sandboxes sind für die 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. Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto haben Google Cloud, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. 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

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

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

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

  6. Installieren und initialisieren Sie die gcloud CLI.
  7. Erstellen Sie einen Cloud Run Job.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die zum Konfigurieren von Cloud Run-Jobs erforderlichen Berechtigungen zu erhalten:

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

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

gcloud

Geben Sie das Flag --sandbox-launcher an, um den Job zu erstellen oder zu aktualisieren:

  • Führen Sie den folgenden Befehl aus, um einen Job zu erstellen:

    gcloud beta run jobs create JOB --image IMAGE_URL --sandbox-launcher

    Ersetzen Sie Folgendes:

    • JOB: Der Name Ihres Cloud Run-Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest
  • Führen Sie den folgenden Befehl aus, um einen vorhandenen Job zu aktualisieren:

    gcloud beta run jobs update JOB --sandbox-launcher

YAML

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

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Aktualisieren Sie die YAML-Datei, um das Attribut sandboxLauncher mit dem Wert true in die Containerkonfiguration einzufügen:

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

    Ersetzen Sie Folgendes:

    • JOB: Der Name Ihres Cloud Run-Jobs.
    • CONTAINER: Der Name Ihres Containers.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest
  3. Erstellen oder aktualisieren Sie den Job mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

    Der Befehl gcloud run jobs replace verwendet standardmäßig die Datei job.yaml, falls vorhanden.

Sandboxes verwenden dieselbe CPU und denselben 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 Job zu starten:

gcloud

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

gcloud beta run jobs update JOB --no-sandbox-launcher

Ersetzen Sie JOB durch den Namen Ihres Jobs.

YAML

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

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Aktualisieren Sie die YAML-Datei, um das Attribut sandboxLauncher aus der Containerkonfiguration zu entfernen:

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

    Ersetzen Sie Folgendes:

    • JOB: Der Name Ihres Cloud Run-Jobs.
    • CONTAINER: Der Name Ihres Containers.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest
  3. Erstellen oder aktualisieren Sie den Job mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

    Der Befehl gcloud run jobs replace verwendet standardmäßig die Datei job.yaml, falls vorhanden.

Sandbox-Einstellungen ansehen

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

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Run-Jobs auf:

    Zu Cloud Run-Jobs

  2. Klicken Sie auf den Job, um die Seite Jobdetails zu öffnen.

  3. Klicken Sie auf dem Tab Verlauf in der Liste auf die ID des ausgeführten Jobs.

  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 jobs executions describe EXECUTION_NAME --format yaml

    Ersetzen Sie EXECUTION_NAME durch den Namen der Jobausführung.

  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 über Ihren Job finden Sie unter Code-Ausführung in Cloud Run.