Déployer sur 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 simples à 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 plus d'informations sur les fonctions Cloud Run, consultez Documentation sur les fonctions Cloud Run

Avant de commencer

  • Activez l'API Cloud Run Functions :

    Activer l'API Cloud Run functions

  • Attribuez le rôle Développeur de fonctions Cloud Run à votre service de compilation. compte:

    1. Accédez à la page Paramètres de Cloud Build :

      Accéder à la page Paramètres de Cloud Build

    2. Définissez le rôle Développeur de fonctions Cloud Run sur l'état Activé.

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

  • Conserver le code source de l'application sur laquelle vous souhaitez créer et déployer les fonctions Cloud Run. Votre code source doit être stocké dans un dépôt, tel que Cloud Source Repositories, GitHub ou Bitbucket.

Configurer le déploiement

Cloud Build 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.

Les fonctions Cloud Run fournissent la commande gcloud functions deploy, qui déploie votre fonction à partir du répertoire contenant son code. Vous pouvez utiliser Image cloud-sdk en tant qu'étape de compilation dans votre fichier de configuration pour appeler des commandes gcloud dans l'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 des 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 des fonctions 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 vous trouvez déployer des fonctions Cloud Run. Pour obtenir la liste des régions disponibles, consultez Emplacements des fonctions Cloud Run
    • --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 est l'une des régions de compilation disponibles.

    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 des fonctions Cloud Run en créant 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 des fonctions Cloud Run :

  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 des fonctions 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 des fonctions Cloud Run. Pour obtenir la liste des régions disponibles, consultez la section Emplacements des fonctions Cloud Run.
    • --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 transférez du nouveau code dans votre dépôt, vous déclenchez automatiquement de compilation et de déploiement sur des 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.

Étape suivante