Auf dieser Seite wird beschrieben, wie Sie den Einstiegspunktbefehl und die Argumente für einen Cloud Run Worker-Pool konfigurieren.
Wenn Cloud Run einen Container startet, werden der Standardeinstiegspunktbefehl und die Standardbefehlsargumente des Images ausgeführt. Wenn Sie den Standardeinstiegspunkt und die Befehlsargumente des Images überschreiben möchten, können Sie die Felder command und args in der Containerkonfiguration verwenden. Das Feld command gibt den tatsächlichen Befehl an, der vom Container ausgeführt wird. Das Feld args gibt die Argumente an, die an diesen Befehl übergeben werden.
Beachten Sie, dass Sie maximal 1.000 Argumente pro Container für jeden Worker-Pool verwenden können.
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:
-
Cloud Run-Entwickler (
roles/run.developer) für den Cloud Run-Worker-Pool -
Dienstkontonutzer (
roles/iam.serviceAccountUser) für die Dienstidentität
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.
Einstiegspunkt und Argumente konfigurieren
Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.
Der angegebene Containerbefehl und die angegebenen Argumente überschreiben das Standard-Image ENTRYPOINT und CMD.
Sie können den Einstiegspunktbefehl und die Argumente für einen Cloud Run-Worker-Pool über die Google Cloud Console, die Google Cloud CLI, YAML oder Terraform festlegen:
Console
Rufen Sie in der Google Cloud Console Cloud Run auf:
Wählen Sie im Menü Worker-Pools aus und klicken Sie auf Container bereitstellen, um einen neuen Worker-Pool zu konfigurieren. Wenn Sie einen vorhandenen Worker-Pool konfigurieren möchten, klicken Sie auf den Worker-Pool und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Wenn Sie einen neuen Worker-Pool konfigurieren, füllen Sie die Seite mit den anfänglichen Einstellungen für den Worker-Pool aus und klicken Sie dann auf Container, Volumes, Netzwerk, Sicherheit, um die Seite zur Konfiguration des Worker-Pools zu maximieren.
Klicken Sie auf den Tab Container.
- Geben Sie den Befehl an, den der Container ausführen soll, wenn Sie den im Container-Image definierten Einstiegspunktbefehl nicht verwenden möchten. Optional können Sie die Argumente für den Einstiegspunktbefehl angeben.
Klicken Sie auf Erstellen oder Bereitstellen.
gcloud
So aktualisieren Sie den Startbefehl und die Argumente für einen vorhandenen Dienst:
gcloud beta run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N
Ersetzen Sie Folgendes:
- WORKER_POOL: Der Name des Worker-Pools.
- COMMAND: Der Befehl, mit dem der Container gestartet wird, wenn Sie den Standardbefehl nicht verwenden.
- ARG1: Das Argument, das Sie an den Containerbefehl senden. Verwenden Sie eine durch Kommas getrennte Liste für mehrere Argumente.
So geben Sie Einstiegspunkt und Argumente während der Bereitstellung eines neuen oder vorhandenen Worker-Pools an:
gcloud beta run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, das
den Worker-Pool enthält, z. B. us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
Wenn Sie die Containerstandardeinstellungen für die Einstiegspunktbefehle und -argumente wiederherstellen möchten, geben Sie leere Strings so an:
gcloud beta run worker-pools deploy --image IMAGE_URL --command "" --args ""
YAML
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 beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
Das folgende Beispiel enthält die YAML-Konfiguration:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: containers: - name: CONTAINER_NAME image: IMAGE_URL command: - COMMAND args: - ARG1 - ARG-N
Ersetzen Sie Folgendes:
- WORKER_POOL: Der Name Ihres Cloud Run-Worker-Pools.
- CONTAINER_NAME: Der Name des 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 - COMMAND: Der Befehl, mit dem der Container gestartet werden soll, wenn Sie den Standardbefehl nicht verwenden.
- ARG1: Das Argument, das Sie an den Containerbefehl senden. Wenn Sie mehrere Argumente verwenden, geben Sie jedes in einer eigenen Zeile an, z. B. wie gezeigt ARG-N.
Erstellen oder aktualisieren Sie den Worker-Pool mit dem folgenden Befehl:
gcloud beta run worker-pools replace workerpool.yaml
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
launch_stage = "BETA"
template {
containers {
image = "IMAGE_URL"
command = ["COMMAND"]
args = ["ARG1", "ARG2"]
}
}
}
Ersetzen Sie Folgendes:
- WORKER_POOL: Der Name des Worker-Pools.
- REGION: die Google Cloud Region, z. B.
europe-west1. - 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. - COMMAND: Der Befehl, mit dem der Container gestartet wird, wenn Sie den Standardbefehl nicht verwenden.
- ARG1, ARG2: Das/die Argument(e), das/die Sie an den Containerbefehl senden.
Container-Startreihenfolge für Sidecar-Bereitstellungen konfigurieren
Verwenden Sie die Funktion für Containerabhängigkeiten, um die Startreihenfolge für Container in einer Sidecar-Bereitstellunganzugeben. Geben Sie alle Container mit Abhängigkeiten an und listen Sie die Container auf, von denen sie abhängen, damit diese Container zuerst gestartet werden. Die Container, die keine Abhängigkeiten haben, werden immer zuerst und gleichzeitig gestartet.
Sie müssen Systemdiagnose-Starttests verwenden, wenn Sie dieses Feature erfolgreich verwenden möchten. Mit der Startprüfung kann Cloud Run den Status eines abhängigen Containers prüfen. So wird sichergestellt, dass dieser erfolgreich durchlaufen wird, bevor er den nächsten Container startet. Wenn Sie keine Systemdiagnosen verwenden, werden Container in der angegebenen Reihenfolge gestartet, auch wenn Container, von denen sie abhängen, nicht gestartet werden können.
Für Worker-Pools gibt es keine standardmäßige Systemdiagnose für den Start.
Sie können die Google Cloud Console, die Google Cloud CLI oder YAML verwenden, um die Startreihenfolge anzugeben:
Console
Rufen Sie in der Google Cloud Console die Seite Cloud Run auf:
- Wählen Sie im Menü Worker-Pools aus.
- Klicken Sie für einen vorhandenen Worker-Pool auf den Worker-Pool in der Liste und wählen Sie Neue Überarbeitung bearbeiten und bereitstellen aus, um das Formular für die Bereitstellung der Überarbeitung aufzurufen.
- Klicken Sie für einen neuen Worker-Pool auf Container bereitstellen, um das Formular Worker-Pool erstellen aufzurufen.
Geben Sie für einen neuen Worker-Pool den Namen des Worker-Pools, die URL des eingehenden Containers, die CPU-Zuordnung, die Steuerung des eingehenden Traffics und die Authentifizierung an. Führen Sie auf dem Tab Container, Volumes, Netzwerk, Sicherheit die folgenden Schritte aus:
- Konfigurieren Sie den Container für eingehenden Traffic.
- Klicken Sie auf Container hinzufügen , um alle anderen Container hinzuzufügen, die Sie bereitstellen.
- Konfigurieren Sie für alle Container mit Ausnahme des Containers mit eingehendem Traffic eine Systemdiagnose für den Start.
- Wenn ein Container nach bestimmten anderen Containern gestartet werden muss, wählen Sie diese Container im Menü Container-Startreihenfolge aus.
Gehen Sie für einen vorhandenen Worker-Pool so vor:
- Konfigurieren Sie für alle Container mit Ausnahme des Containers mit eingehendem Traffic eine Systemdiagnose für den Start.
- Jeder Container hat ein eigenes Menü für die Container-Startreihenfolge. Wenn ein Container zuerst andere Container starten muss, bevor er gestartet werden kann, wählen Sie im Menü Container-Startreihenfolge die Container aus, die zuerst gestartet werden müssen.
Nehmen Sie alle anderen erforderlichen Konfigurationen vor und klicken Sie dann für einen neuen Worker-Pool auf Erstellen oder für einen vorhandenen Worker-Pool auf Bereitstellen. Warten Sie, bis die Bereitstellung abgeschlossen ist.
gcloud
Bevor Sie die Google Cloud CLI zum Angeben der Startreihenfolge verwenden, konfigurieren Sie eine Systemdiagnose für den Start.
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Führen Sie den folgenden Befehl aus, um mehrere Container mit einer angegebenen Startreihenfolge für einen Dienst bereitzustellen:
gcloud beta run worker-pools deploy WORKER_POOL \ --container CONTAINER_1_NAME --image='WORKER_POOL_IMAGE' --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME
Ersetzen Sie Folgendes:
- WORKER_POOL: Der Name des 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. SIDECAR_IMAGE: Ein Verweis auf das Sidecar-Container-Image.
Wenn Sie jeden Container im Bereitstellungsbefehl konfigurieren möchten, geben Sie die Konfiguration jedes Containers nach den Parametern
containeran.
YAML
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 beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
Das folgende Beispiel enthält die YAML-Konfiguration:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
Ersetzen Sie Folgendes:
- WORKER_POOL: Der Name Ihres Cloud Run-Worker-Pools.
- CONTAINER1: Der Name des ersten Containers, der von einem oder mehreren Containern abhängt. Sie können den Containernamen in der YAML-Datei festlegen. Cloud Run generiert automatisch einen Namen, wenn keiner angegeben wird.
- CONTAINER2: der Name des Containers, der vor CONTAINER1 gestartet werden muss.
- CONTAINER3: Der Name des zweiten Containers, der von einem oder mehreren Containern abhängt.
Im Beispiel im YAML-Snippet wird CONTAINER2 als erstes, CONTAINER1 als zweites, und CONTAINER3 als letztes gestartet.
Erstellen oder aktualisieren Sie den Worker-Pool mit dem folgenden Befehl:
gcloud beta run worker-pools replace workerpool.yaml
Containerkonfiguration für den Worker-Pool ansehen
Rufen Sie in der Google Cloud Console Cloud Run auf:
Klicken Sie auf Worker-Pools , um die Liste der bereitgestellten Worker-Pools aufzurufen.
Klicken Sie auf den Worker-Pool, den Sie untersuchen möchten, um den zugehörigen Detailbereich aufzurufen.
Klicken Sie auf den Tab Container , um die Containerkonfiguration des Worker-Pools aufzurufen.