Auf dieser Seite wird beschrieben, wie Sie den Einstiegspunktbefehl und die Argumente für eine Cloud Run Instanz 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.
Pro Container und Instanz können maximal 1.000 Argumente verwendet werden.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die zum Konfigurieren und Bereitstellen von Cloud Run-Instanzen erforderlichen Berechtigungen zu erhalten:
- Cloud Run-Entwickler (
roles/run.developer) für die Cloud Run-Instanz - 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 Ihre Cloud Run-Instanz 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
Wenn Sie die Standardeinstellungen ENTRYPOINT und CMD des Images überschreiben möchten, können Sie den Einstiegspunktbefehl und die Argumente für eine Cloud Run-Instanz mit der Google Cloud CLI oder YAML festlegen:
gcloud
So aktualisieren Sie den Startbefehl und die Argumente für eine vorhandene Instanz:
gcloud beta run instances update INSTANCE --command COMMAND --args ARG1,ARG-N
Ersetzen Sie Folgendes:
- INSTANCE: der Name der Instanz.
- COMMAND: der Befehl, mit dem der Container gestartet wird, wenn Sie nicht den Standardbefehl 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 einer neuen oder vorhandenen Instanz an:
gcloud beta run instances deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest.
Wenn Sie die Containerstandardeinstellungen für die Einstiegspunktbefehle und -argumente wiederherstellen möchten, geben Sie leere Strings so an:
gcloud beta run instances --image IMAGE_URL --command "" --args ""
YAML
Wenn Sie eine neue Instanz erstellen, überspringen Sie diesen Schritt. Wenn Sie eine vorhandene Instanz aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Das folgende Beispiel enthält die YAML-Konfiguration:
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL command: - COMMAND args: - ARG1 - ARG-N
Ersetzen Sie Folgendes:
- INSTANCE: der Name Ihrer Cloud Run-Instanz.
- CONTAINER_NAME: der Name des Containers.
IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello:latest.- COMMAND: der Befehl, mit dem der Container gestartet werden soll, wenn Sie nicht den Standardbefehl verwenden.
- ARG1: das Argument, das Sie an den Containerbefehl senden. Wenn Sie mehrere Argumente verwenden, geben Sie jedes Argument in einer eigenen Zeile an, z. B. ARG-N.
Erstellen oder aktualisieren Sie die Instanz mit dem folgenden Befehl:
gcloud beta run instances replace instance.yaml
Container-Startreihenfolge für Sidecar-Bereitstellungen konfigurieren
Verwenden Sie die Funktion für Containerabhängigkeiten, um die Startreihenfolge für Container in einer Sidecar-Bereitstellung anzugeben. Geben Sie alle Container mit Abhängigkeiten an und listen Sie die Container auf, von denen sie abhängig sind. Diese Container werden zuerst gestartet. 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 auch dann gestartet, wenn die Container, von denen sie abhängen, nicht gestartet werden können.
Für Instanzen gibt es keine standardmäßige Startprüfung für Systemdiagnosen.
Sie können die Google Cloud Console, die Google Cloud CLI oder YAML verwenden, um die Startreihenfolge anzugeben:
gcloud
Bevor Sie die Google Cloud CLI zum Angeben der Startreihenfolge verwenden, müssen Sie eine Startprüfung für Systemdiagnosen konfigurieren.
-
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 eine Instanz bereitzustellen:
gcloud beta run instances deploy INSTANCE \ --container CONTAINER_1_NAME --image='INSTANCE_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:
- INSTANCE: der Name der Instanz.
IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello: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
container-Parametern an.
YAML
Wenn Sie eine neue Instanz erstellen, überspringen Sie diesen Schritt. Wenn Sie eine vorhandene Instanz aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Das folgende Beispiel enthält die YAML-Konfiguration:
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
Ersetzen Sie Folgendes:
- INSTANCE: der Name Ihrer Cloud Run-Instanz.
- 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 die Instanz mit dem folgenden Befehl:
gcloud beta run instances replace instance.yaml