Nachdem Sie einen Cloud Run-Worker-Pool erstellt haben, können Sie Workflows verwenden, um die Skalierung zu automatisieren. So können Sie die Anzahl der Instanzen basierend auf externen Ereignissen, benutzerdefinierter Logik oder Zeitplänen anpassen.
Hinweis
In der folgenden Liste sind die Anforderungen für die Bereitstellung und Ausführung eines Cloud Run-Worker-Pool-Workflows mit Workflows beschrieben:
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Aktivieren Sie die Cloud Run Admin API und die Workflows APIs.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die you need to deploy and execute Cloud Run worker pools with Workflows, benötigen:
-
Rolle „Cloud Run-Administrator“ (
roles/run.admin) für den Cloud Run-Worker-Pool -
Rolle „Workflow-Bearbeiter“ (
roles/workflows.editor) für das Projekt -
Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser) für die Dienstidentität
Damit Workflows den Cloud Run-Worker-Pool aktualisieren kann, muss das Dienstkonto, mit dem Sie Ihren Workflow bereitstellen, die folgende Rolle haben:
- Rolle „Cloud Run-Administrator“ (
roles/run.admin)
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.
Cloud Run-Worker-Pool erstellen
Erstellen Sie einen Cloud Run-Worker-Pool falls noch nicht geschehen. Sie verweisen später beim Ausführen des Workflows auf den Namen des Cloud Run-Worker-Pools.
Workflow erstellen, bereitstellen und ausführen
Der folgende Workflow aktualisiert die Anzahl der Instanzen Ihres Cloud Run-Worker-Pools.
Erstellen Sie in Ihrem Home-Verzeichnis eine neue YAML-Datei für Ihren Workflow, z. B.
update-cr-worker-pool.yaml, und kopieren Sie den folgenden Inhalt in die Datei:main: params: [args] steps: - init: assign: - project: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} - region: ${args.region} - workerPoolName: ${args.workerPool} - instanceCount: ${args.instanceCount} - workerPoolUrl: ${"https://run.googleapis.com/v2/projects/" + project + "/locations/" + region + "/workerPools/" + workerPoolName} - updateWorkerPool: call: http.patch args: url: ${workerPoolUrl} query: updateMask: "scaling.manualInstanceCount" auth: type: OAuth2 body: scaling: manualInstanceCount: ${int(instanceCount)} result: updateResult - returnOutput: return: ${updateResult.body}Stellen Sie den Workflow bereit und verknüpfen Sie ihn mit einem angegebenen Dienstkonto:
gcloud workflows deploy WORKFLOW_NAME \ --source=WORKFLOW_NAME.yaml \ --location=REGION \ --service-account=SERVICE_ACCOUNT
Ersetzen Sie Folgendes:
- WORKFLOW_NAME: der Name Ihres Workflows, z. B.
update-worker-pool. Der Workflow-Name muss mit dem Namen der zuvor erstellten YAML-Datei übereinstimmen. - REGION: die Region, in der Ihr Cloud Run-Worker-Pool
bereitgestellt wird, z. B.
europe-west1. - SERVICE_ACCOUNT: die E-Mail-Adresse des Dienstkontos, dem die erforderlichen Rollen zugewiesen wurden, z. B.
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.comPROJECT_NUMBER-compute@developer.gserviceaccount.com
- WORKFLOW_NAME: der Name Ihres Workflows, z. B.
Führen Sie den Workflow mit den Details Ihres Worker-Pools und der Anzahl der Instanzen aus:
gcloud workflows execute WORKFLOW_NAME \ --location=REGION \ --data='{"region":"REGION", "workerPool":"WORKER_POOL_NAME", "instanceCount":INSTANCE_COUNT}'
Ersetzen Sie Folgendes:
- WORKFLOW_NAME: der Name Ihres Workflows.
- REGION: die Region, in der Ihr Cloud Run-Worker-Pool
bereitgestellt wird, z. B.
europe-west1. - WORKER_POOL_NAME: der Name Ihres Worker-Pools.
- INSTANCE_COUNT: die geänderte Anzahl der Instanzen für den Worker
Pool, z. B.
3.
Aktualisierungen prüfen
Nachdem Sie den Workflow ausgeführt haben, können Sie die Aktualisierungen an den folgenden Stellen in der Google Cloud Konsole ansehen:
Rufen Sie die Detailseite „Workflows“ auf und wählen Sie Ihren Workflow aus, um den Ausführungsstatus und die Ergebnisse aufzurufen:
Prüfen Sie, ob sich das Feld
manualInstanceCountin der letzten Ausführung des Workflows geändert hat.Rufen Sie die Seite „Worker-Pools“ auf, um zu prüfen, ob die Aktualisierung in Cloud Run erfolgreich war:
Prüfen Sie, ob sich die Anzahl der manuellen Skalierung für Ihren Worker-Pool geändert hat.