Déployer sur Cloud Functions

Cette page explique comment déployer des applications sur Cloud Functions à 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 Functions est un environnement d'exécution sans serveur permettant de créer et de connecter des services cloud. Avec Cloud 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 en savoir plus, consultez la documentation sur Cloud Functions.

Avant de commencer

  • Activez l'API Cloud Functions :

    Activer l'API Cloud Functions

  • Attribuez le rôle de développeur Cloud Functions au compte de service Cloud Build :

    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 Cloud Functions sur l'état Activé.

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

  • Conservez le code source de l'application que vous souhaitez créer et déployer sur Cloud Functions. 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.

Cloud 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 Cloud Functions, 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 Functions 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 Functions. Pour obtenir la liste des régions disponibles, consultez la page Emplacements Cloud 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 la commande gcloud functions deploy, consultez la documentation sur Cloud Functions.

  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 acceptées.

    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 Cloud Functions 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 Functions, procédez comme suit :

  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 Functions 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 Functions. Pour obtenir la liste des régions compatibles, consultez la section Emplacements Cloud 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 pour 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 Cloud Functions.

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