Mettre à l'échelle des pools de nœuds de calcul Cloud Run avec Workflows

Une fois que vous avez créé un pool de nœuds de calcul Cloud Run, vous pouvez utiliser Workflows pour automatiser son scaling. Cela vous permet d'ajuster le nombre d'instances en fonction d'événements externes, d'une logique personnalisée ou de planifications.

Avant de commencer

La liste suivante décrit les exigences à respecter lorsque vous utilisez Workflows pour déployer et exécuter un workflow de pool de nœuds de calcul Cloud Run :

  1. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Activez l'API Cloud Run Admin et les API Workflows.

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer les API

Rôles requis

Pour obtenir les autorisations nécessaires pour déployer et exécuter des pools de nœuds de calcul Cloud Run avec Workflows, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour autoriser Workflows à mettre à jour le pool de nœuds de calcul Cloud Run, le compte de service utilisé pour déployer votre workflow doit disposer du rôle suivant :

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre pool de nœuds de calcul Cloud Run communique avec Google Cloud des API, telles que des bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.

Créer un pool de nœuds de calcul Cloud Run

Créez un pool de nœuds de calcul Cloud Run si ce n'est pas déjà fait. Vous ferez référence au nom du pool de nœuds de calcul Cloud Run lorsque vous exécuterez votre workflow ultérieurement.

Créer, déployer et exécuter le workflow

Le workflow suivant met à jour le nombre d'instances de votre pool de nœuds de calcul Cloud Run.

  1. Dans votre répertoire d'accueil, créez un fichier YAML pour votre workflow, par exemple update-cr-worker-pool.yaml, puis copiez-collez le contenu suivant dans votre fichier :

    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}
    
  2. Déployez le workflow et associez-le à un compte de service spécifié :

    gcloud workflows deploy WORKFLOW_NAME \
        --source=WORKFLOW_NAME.yaml \
        --location=REGION \
        --service-account=SERVICE_ACCOUNT

    Remplacez les éléments suivants :

  3. Exécutez le workflow avec les détails de votre pool de nœuds de calcul et le nombre d'instances :

    gcloud workflows execute WORKFLOW_NAME \
        --location=REGION \
        --data='{"region":"REGION", "workerPool":"WORKER_POOL_NAME", "instanceCount":INSTANCE_COUNT}'

    Remplacez les éléments suivants :

    • WORKFLOW_NAME : nom de votre workflow.
    • REGION : région dans laquelle votre pool de nœuds de calcul Cloud Run est déployé, par exemple europe-west1.
    • WORKER_POOL_NAME : nom de votre pool de nœuds de calcul.
    • INSTANCE_COUNT : nombre modifié d'instances pour le pool de nœuds de calcul, par exemple 3.

Vérifier les mises à jour

Une fois le workflow exécuté, vous pouvez afficher les mises à jour aux emplacements suivants dans la console Google Cloud :

  • Pour afficher l'état et les résultats de l'exécution, accédez à la page d'informations Workflows et sélectionnez votre workflow :

    Accéder à "Workflows"

    Vérifiez que le champ manualInstanceCount a été modifié lors de la dernière exécution du workflow.

  • Pour vérifier que la mise à jour a réussi dans Cloud Run, accédez à la page des pools de nœuds de calcul :

    Accédez à Cloud Run

    Vérifiez que le nombre de scaling manuel de votre pool de nœuds de calcul a changé.