Prima di iniziare
Il seguente elenco descrive i requisiti per l'utilizzo di Workflows per il deployment e l'esecuzione di un workflow dei pool di worker Cloud Run:
-
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.
Abilita l'API Cloud Run Admin e le API Workflows.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore di Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per eseguire il deployment e l'esecuzione dei pool di worker Cloud Run con Workflows, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Amministratore di Cloud Run (
roles/run.admin) sul pool di worker Cloud Run - Workflows Editor (
roles/workflows.editor) sul progetto - Utente account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
Per consentire a Workflows di aggiornare il pool di worker Cloud Run, il account di servizio utilizzato per il deployment del workflow deve avere il seguente ruolo:
- Cloud Run Admin (
roles/run.admin)
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo pool di worker Cloud Run interagisce con Google Cloud API, come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.
Crea un pool di worker Cloud Run
Crea un pool di worker Cloud Run se non l'hai già fatto. Quando esegui il workflow in un secondo momento, farai riferimento al nome del pool di worker Cloud Run.
Crea, esegui il deployment ed esegui il workflow
Il seguente workflow aggiorna il conteggio delle istanze del pool di worker Cloud Run.
Nella directory home, crea un nuovo file YAML per il workflow, ad esempio
update-cr-worker-pool.yaml, quindi copia e incolla i seguenti contenuti nel file: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}Esegui il deployment del workflow e associalo a un account di servizio specificato:
gcloud workflows deploy WORKFLOW_NAME \ --source=WORKFLOW_NAME.yaml \ --location=REGION \ --service-account=SERVICE_ACCOUNT
Sostituisci quanto segue:
- WORKFLOW_NAME: il nome del workflow, ad esempio
update-worker-pool. Il nome del workflow deve corrispondere al nome del file YAML creato in precedenza. - REGION: la regione in cui è stato eseguito il deployment del pool di worker Cloud Run, ad esempio
europe-west1. - SERVICE_ACCOUNT: l'indirizzo email del account di servizio a cui sono stati
concessi i ruoli richiesti, ad esempio:
SERVICE_ACCOUNT_NAME@PROJECT_ID.PROJECT_NUMBER-compute@
- WORKFLOW_NAME: il nome del workflow, ad esempio
Esegui il workflow con i dettagli del pool di worker e il conteggio delle istanze:
gcloud workflows execute WORKFLOW_NAME \ --location=REGION \ --data='{"region":"REGION", "workerPool":"WORKER_POOL_NAME", "instanceCount":INSTANCE_COUNT}'
Sostituisci quanto segue:
- WORKFLOW_NAME: il nome del workflow.
- REGION: la regione in cui è stato eseguito il deployment del pool di worker Cloud Run, ad esempio
europe-west1. - WORKER_POOL_NAME: il nome del pool di worker.
- INSTANCE_COUNT: il numero modificato di istanze per il pool di worker, ad esempio
3.
Verifica gli aggiornamenti
Dopo aver eseguito il workflow, puoi visualizzare gli aggiornamenti nei seguenti punti della Google Cloud console:
Per visualizzare lo stato di esecuzione e i risultati, vai alla pagina dei dettagli di Workflows e seleziona il workflow:
Verifica che il campo
manualInstanceCountsia stato modificato nell'esecuzione più recente del workflow.Per verificare che l'aggiornamento sia andato a buon fine in Cloud Run, vai alla pagina dei pool di worker:
Verifica che il conteggio dello scaling manuale per il pool di worker sia stato modificato.