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 plannings.

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. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. 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

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

  4. 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

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

  6. Activez les API Cloud Run Admin et Workflows.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. 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 permettre à Workflows de 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 des APIGoogle Cloud , 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 vous ne l'avez 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 plus tard.

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 personnel, créez un fichier YAML pour votre workflow, par exemple update-cr-worker-pool.yaml, puis copiez et 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 :

    • WORKFLOW_NAME : nom de votre workflow, par exemple update-worker-pool. Le nom du workflow doit correspondre à celui du fichier YAML que vous avez créé précédemment.
    • REGION : région dans laquelle votre pool de nœuds de calcul Cloud Run est déployé (par exemple, europe-west1).
    • SERVICE_ACCOUNT : adresse e-mail du compte de service auquel les rôles requis ont été attribués, par exemple :
      • SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
      • PROJECT_NUMBER-compute@developer.gserviceaccount.com
  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 consulter les mises à jour aux emplacements suivants de la console Google Cloud  :

  • Pour afficher l'état et les résultats de l'exécution, accédez à la page d'informations sur les 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é.