Codeausführung in Cloud Run

Ein wichtiger Vorteil der Verwendung von Cloud Run zum Hosten von KI-Agents ist, dass Code durch die sichere Ausführungsumgebung isoliert wird. Wenn Sie ein Code-Sandbox-Tool in Cloud Run erstellen und in Ihrem Container ausführen, können Sie Anwendungscode in einer beliebigen Programmiersprache ausführen.

Sichere zweischichtige Sandbox

Cloud Run isoliert alle Instanzen mithilfe einer zweischichtigen Sandbox, die aus einer hardwaregestützten Ebene besteht, die einzelnen VMs entspricht (x86-Virtualisierung), und einer Software-Kernel-Ebene. Weitere Informationen finden Sie unter Übersicht über das Sicherheitsdesign.

Wenn Sie Ihren Code bereitstellen, wird er von Cloud Run in der Sandbox-Umgebung ausgeführt. Durch diese Isolation können Sie nicht vertrauenswürdigen Code, z. B. Code, der von einem Large Language Model (LLM) generiert wurde, sicherer ausführen. Wenn Sie nicht vertrauenswürdigen Code ausführen, beschränken Sie die IAM-Berechtigungen für Ihren Cloud Run-Dienst und verwenden Sie VPC-Firewallregeln, um zu verhindern, dass Ihr Code Aufrufe an das Internet sendet.

Codeausführungsmodi

Cloud Run bietet die folgenden Modi für die Codeausführung:

  • Asynchrone Ausführung: Um den Hauptanwendungsablauf nicht zu unterbrechen, sollten Sie Aufgaben asynchron ausführen. Verwenden Sie dazu einen Cloud Run-Job für länger laufende oder Hintergrundaufgaben. Sie können beispielsweise einen Cloud Run-Job ausführen, der Code in Cloud Storage hochlädt, die erforderlichen Abhängigkeiten installiert und dann die Ergebnisse verarbeitet und wieder in Cloud Storage speichert.

  • Synchrone Ausführung: Verwenden Sie für Prozesse, die eine sofortige Antwort erfordern, einen Cloud Run-Dienst. Ein Cloud Run-Dienst hat ein maximales Zeitlimit von einer Stunde, was ausreichend Zeit für die Ausführung Ihres Codes bietet. Wenn Instanzen jeweils nur eine Anfrage gleichzeitig verarbeiten sollen, setzen Sie den Wert für die Nebenläufigkeit auf 1. Sie können den auszuführenden Code auch als Teil des Anfragetexts abrufen, das Ergebnis in der Antwort zurückgeben und die Containerinstanz dann beenden.

    Das folgende Bild zeigt die beiden Modi der Codeausführung:

    Für die asynchrone Ausführung wird Code in Cloud Storage hochgeladen, der als Cloud Run-Job ausgeführt wird. Der Job sendet die Ergebnisse der Ausführung zur Speicherung an Cloud Storage. Bei der synchronen Ausführung sendet der Agent eine Anfrage an den Cloud Run-Dienst mit Code im Anfragetext. Der Dienst hat ein Zeitlimit von einer Stunde und eine Parallelität von „1“. Der Cloud Run-Dienst verarbeitet den Code und sendet ihn an die Dienstinstanz, die eine Antwort an den Agent zurückgibt.
    Abbildung 1. Codeausführungsmodi in Cloud Run

Nächste Schritte