Déployer des fonctions Cloud Run

Cette page explique comment déployer des applications sur des fonctions Cloud Run à l'aide de Cloud Build. Si vous débutez avec Cloud Build, commencez par lire les Guides de démarrage rapide et la Présentation de la configuration des compilations.

Cloud Run Functions est un environnement d'exécution sans serveur permettant de créer et de connecter des services cloud. Avec Cloud Run Functions, vous pouvez écrire des fonctions à application unique qui sont associées à des événements émis par votre infrastructure et vos services cloud. Une fonction est déclenchée quand un événement surveillé est lancé. Pour en savoir plus sur les fonctions Cloud Run, consultez la documentation sur Cloud Run Functions.

Avant de commencer

  • Activez l'API Cloud Run Functions :

    Activer l'API Cloud Run Functions

  • Préparez le code source de votre application. Votre code source doit être stocké dans un dépôt tel que GitHub ou Bitbucket.

  • Pour exécuter les commandes gcloud sur cette page, installez Google Cloud CLI.

Autorisations requises pour la gestion de l'authentification et des accès

  1. Dans la console Google Cloud , accédez à la page Autorisations Cloud Build :

    Accéder à Autorisations

  2. Pour le compte de service Cloud Build spécifié ou le compte de service Cloud Build par défaut, définissez l'état des rôles suivants sur Activé :

    • Développeur Cloud Functions (roles/cloudfunctions.developer) : pour déployer et gérer des fonctions.
    • Administrateur Cloud Run (roles/run.admin) : permet à votre compte de service Cloud Build de déployer de nouvelles versions sur Cloud Run.
    • Administrateur de l'espace de stockage (roles/storage.admin) : permet de lire et d'écrire des données dans Cloud Storage.
    • Rédacteur Artifact Registry (roles/artifactregistry.writer) : permet d'extraire des images d'Artifact Registry et d'y écrire des données.
    • Rédacteur de journaux (roles/logging.logWriter) : permet d'écrire des entrées de journal dans Cloud Logging.
    • Éditeur Cloud Build (roles/cloudbuild.builds.editor) : permet à votre compte de service d'exécuter des builds.

Configurer le déploiement

Cloud Build vous permet d'exécuter vos tâches à l'aide de n'importe quelle image de conteneur disponible publiquement. Pour ce faire, spécifiez l'image dans une version step du fichier de configuration de Cloud Build.

Cloud Run Functions fournit la commande gcloud functions deploy, qui déploie votre fonction à partir du répertoire contenant son code. Vous pouvez utiliser l'image cloud-sdk en tant qu'étape de compilation dans votre fichier de configuration pour appeler des commandes gcloud dans cette image. Les arguments transmis à cette étape de compilation sont directement transmis à Google Cloud CLI, ce qui vous permet d'exécuter n'importe quelle commande gcloud dans cette image.

Pour déployer une application sur les fonctions Cloud Run, procédez comme suit :

  1. Dans le répertoire racine de votre projet, créez le fichier de configuration Cloud Build, nommé cloudbuild.yaml ou cloudbuild.json.
  2. Dans le fichier de configuration :

    • Ajoutez un champ name et spécifiez l'étape de compilation gcloud.
    • Ajoutez functions deploy au champ args pour appeler la commande gcloud functions deploy. Pour connaître les options de configuration disponibles, consultez la documentation de référence sur gcloud functions deploy.
    • --source=. indique que le code source se trouve dans le répertoire de travail actuel.

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    Remplacez les valeurs d'espace réservé dans le fichier de configuration ci-dessus par les éléments suivants :

    • FUNCTION_NAME est le nom de la fonction Cloud Run que vous déployez. Si vous mettez à jour une fonction existante, cette valeur doit correspondre au nom de la fonction que vous mettez à jour.
    • FUNCTION_REGION est la région dans laquelle vous déployez les fonctions Cloud Run. Pour obtenir la liste des régions disponibles, consultez la page Emplacements Cloud Run Functions.
    • --trigger-http est le type de déclencheur pour cette fonction, dans ce cas une requête HTTP (webhook).
    • RUNTIME correspond à l'environnement d'exécution dans lequel exécuter la fonction.

    Pour en savoir plus sur l'utilisation de gcloud functions deploy, consultez la documentation sur les fonctions Cloud Run.

  3. Commencez la compilation à l'aide du fichier de configuration créé à l'étape précédente :

     gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

    Remplacez les valeurs d'espace réservé dans le fichier de configuration ci-dessus par les éléments suivants :

    • CONFIG_FILE_PATH est le chemin d'accès du fichier de configuration de compilation
    • SOURCE_DIRECTORY est le chemin d'accès ou l'URL du code source.
    • REGION désigne l'une des régions de compilation compatibles.

    Si vous ne spécifiez pas les éléments CONFIG_FILE_PATH et SOURCE_DIRECTORY dans la commande gcloud builds submit, Cloud Build considère que le fichier de configuration et le code source se trouvent dans le répertoire de travail actuel.

Déploiement continu

Vous pouvez automatiser le déploiement de votre logiciel dans les fonctions Cloud Run en créant des déclencheurs Cloud Build. Vous pouvez configurer vos déclencheurs pour créer et déployer des images chaque fois que vous mettez à jour votre code source.

Pour automatiser votre déploiement dans Cloud Run Functions :

  1. Dans la racine de votre dépôt, ajoutez un fichier de configuration contenant des étapes permettant d'appeler la commande gcloud functions deploy :

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    Remplacez les valeurs d'espace réservé dans le fichier de configuration ci-dessus par les éléments suivants :

    • FUNCTION_NAME est le nom de la fonction Cloud Run que vous déployez. Si vous mettez à jour une fonction existante, cette valeur doit correspondre au nom de la fonction que vous mettez à jour.
    • FUNCTION_REGION est la région dans laquelle vous déployez Cloud Run Functions. Pour obtenir la liste des régions disponibles, consultez la page Emplacements Cloud Run Functions.
    • --trigger-http est le type de déclencheur pour cette fonction, dans ce cas une requête HTTP (webhook).
    • RUNTIME correspond à l'environnement d'exécution dans lequel exécuter la fonction.
  2. Créez un déclencheur de compilation à l'aide du fichier de configuration créé à l'étape précédente :

    1. Ouvrez la page Déclencheurs dans la console Google Cloud  :

      Ouvrir la page Déclencheurs

    2. Sélectionnez votre projet dans le menu déroulant du sélecteur de projet, en haut de la page.

    3. Cliquez sur Créer un déclencheur.

    4. Dans le champ Nom, saisissez le nom du déclencheur.

    5. Sous Région, sélectionnez la région de votre déclencheur.

    6. Sous Événement, sélectionnez l'événement du dépôt pour démarrer le déclencheur.

    7. Sous Source, sélectionnez le dépôt et le nom de la branche ou du tag qui lancera votre déclencheur. Pour en savoir plus sur la spécification des branches à compiler automatiquement, consultez la page Créer un déclencheur de compilation.

    8. Sous Configuration, sélectionnez Fichier de configuration Cloud Build (YAML ou JSON).

    9. Dans le champ Emplacement du fichier de configuration Cloud Build, saisissez cloudbuild.yaml après la barre oblique (/).

    10. Cliquez sur Créer pour enregistrer le déclencheur de compilation.

Chaque fois que vous transmettez du nouveau code dans votre dépôt, vous déclenchez automatiquement une compilation et un déploiement sur les fonctions Cloud Run.

Pour en savoir plus sur la création de déclencheurs Cloud Build, consultez la page Créer et gérer des déclencheurs de compilation.

Étapes suivantes