Hinweis
In der folgenden Liste werden die Anforderungen für die Verwendung von Workflows zum Bereitstellen und Ausführen eines Cloud Run-Worker-Pools-Workflows beschrieben:
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit 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 API, falls sie noch nicht aktiviert sind.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Bereitstellen und Ausführen von Cloud Run-Worker-Pools mit Workflows benötigen:
- Rolle Cloud Run Admin (
roles/run.admin) im Cloud Run-Worker-Pool - Workflow-Bearbeiter (
roles/workflows.editor) für das Projekt - Dienstkontonutzer (
roles/iam.serviceAccountUser) für die Dienstidentität
Damit Workflows den Cloud Run-Worker-Pool aktualisieren können, muss das Dienstkonto, das zum Bereitstellen Ihres Workflows verwendet wird, die folgende Rolle haben:
- 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-Workerpool mitGoogle 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
Im folgenden Workflow wird die Anzahl der Instanzen Ihres Cloud Run-Worker-Pools aktualisiert.
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 Ihre 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 Workflowname muss mit dem Namen der YAML-Datei übereinstimmen, die Sie zuvor erstellt haben. - REGION: Die Region, in der Ihr Cloud Run-Workerpool 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-Workerpool bereitgestellt wird, z. B.
europe-west1. - WORKER_POOL_NAME: der Name des Worker-Pools.
- INSTANCE_COUNT: Die geänderte Anzahl von Instanzen für den Worker-Pool, z. B.
3.
Aktualisierungen überprüfen
Nachdem Sie den Workflow ausgeführt haben, können Sie die Aktualisierungen an den folgenden Stellen in der Google Cloud -Konsole ansehen:
Um den Ausführungsstatus und die Ergebnisse anzuzeigen, rufen Sie die Detailseite der Workflows auf und wählen Sie Ihren Workflow aus:
Prüfen Sie, ob sich das Feld
manualInstanceCountin der letzten Ausführung des Workflows geändert hat.So prüfen Sie, ob das Update in Cloud Run erfolgreich war:
Prüfen Sie, ob sich die Anzahl der manuellen Skalierung für Ihren Worker-Pool geändert hat.