Démarrage rapide pour Go

Cette page explique comment utiliser Cloud Build pour compiler un fichier binaire Go et le transférer vers Google Cloud Storage. Vous allez créer un fichier de configuration de compilation dans lequel vous allez ajouter des instructions pour Cloud Build. Vous utiliserez ensuite le fichier de configuration pour démarrer la compilation.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans la page de sélection du projet de la console GCP, sélectionnez ou créez un projet GCP.

    Accéder à la page de sélection du projet

  3. Assurez-vous que la facturation est activée pour votre projet Google Cloud Platform. Découvrez comment confirmer que la facturation est activée pour votre projet.

  4. Activez les Cloud Build requises.

    Activer les API

  5. Installez et initialisez le SDK Cloud.

Se connecter à Google Cloud Platform

  1. Autorisez l'outil de ligne de commande gcloud à accéder au projet :

    gcloud auth login
    
  2. Configurez le projet pour l'outil gcloud, où [PROJECT_ID] est l'ID du projet GCP que vous avez créé ou sélectionné dans la section précédente :

    gcloud config set project [PROJECT_ID]
    

Préparer les fichiers source

Vous aurez besoin d'un exemple de code source pour compiler. Dans cette section, vous allez créer un exemple "Hello World" simple dans Go.

  1. Créez un fichier nommé main.go avec le contenu suivant :

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        fmt.Println("Hello, world!")
    }
    

Créer un bucket Cloud Storage

Vous aurez besoin d'un bucket Cloud Storage pour y transférer le fichier binaire Go après sa compilation. Dans cette section, vous allez créer le bucket Cloud Storage.

  1. Ouvrez une fenêtre de terminal.

  2. Utilisez la commande gsutil mb et un nom unique pour créer un bucket.

    gsutil mb gs://[BUCKET_NAME]/
    

    [BUCKET_NAME] est votre propre nom de bucket unique.

    Si l'opération réussit, la commande affiche les éléments suivants :

    Creating gs://[BUCKET_NAME]/...
    

    Vous venez de créer un bucket dans lequel vous pouvez stocker vos contenus.

    Si le nom du bucket est déjà utilisé, par vous ou une tierce personne, la commande affiche les éléments suivants :

    Creating gs://[BUCKET_NAME]/...
    ServiceException: 409 Bucket [BUCKET_NAME] already exists.
    

    Veuillez réessayer en donnant un autre nom au bucket.

Configurer la compilation

Indiquez les actions que vous souhaitez que Cloud Build exécute dans un fichier de configuration de compilation. Les actions sont spécifiées sous forme d'étapes de compilation. L'étape de compilation utilise un compilateur pour exécuter les tâches. Les compilateurs sont des images de conteneurs dans lesquelles sont installés des outils et langages communs. Cloud Build fournit un ensemble de compilateurs conservés par Google. Dans cette section, vous allez utiliser ces compilateurs pour compiler le fichier binaire Go et le stocker dans Google Cloud Storage.

  • Dans le même répertoire que main.go, créez un fichier nommé cloudbuild.yaml avec le contenu suivant. Ce fichier est votre fichier de configuration de compilation. Au moment de la compilation, Cloud Build remplace automatiquement $PROJECT_ID par l'ID de votre projet.

    steps:
    - name: 'gcr.io/cloud-builders/go'
      args: ['install', '.']
      env: ['PROJECT_ROOT=hello']
    - name: 'gcr.io/cloud-builders/go'
      args: ['build', 'hello']
      env: ['PROJECT_ROOT=hello']
    artifacts:
      objects:
        location: 'gs://[BUCKET_NAME]/'
        paths: ['hello']
    

    Le fichier de configuration ci-dessus contient deux étapes de compilation. Le nom des étapes de compilation fait référence au compilateur utilisé pour exécuter la tâche. Le champ args prend une liste d'arguments et la transmet au compilateur. Le champ env prend les variables d'environnement à utiliser lors de l'exécution d'une étape. Dans l'exemple ci-dessus, il spécifie le projet racine. Dans ce fichier de configuration :

    • la première étape de compilation appelle le compilateur go pour installer des dépendances.
    • la deuxième étape de compilation appelle le compilateur go pour compiler le fichier binaire.
    • le champ artifacts est utilisé pour stocker le fichier binaire dans un bucket Cloud Storage.

Démarrer la compilation

  • Démarrez la compilation en exécutant la commande gcloud builds submit :

    gcloud builds submit --config cloudbuild.yaml .
    

    Une fois la compilation terminée, un résultat semblable aux lignes suivantes doit s'afficher :

    PUSH
    DONE
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    ID                                    CREATE_TIME                DURATION  SOURCE                                                                                  IMAGES  STATUS
    $BUILD_ID                             2018-01-25T15:36:40+00:00  10S       gs://[PROJECT_ID]_cloudbuild/source/1516894599.15-25da391996554cdf81fb7786f914d7f1.tgz  -       SUCCESS
    

    Vous venez de compiler le fichier binaire Go à l'aide du fichier de configuration de compilation et de le stocker dans le bucket Cloud Storage.

Afficher les informations sur la compilation

  1. Ouvrez la page Cloud Build dans la console Google Cloud Platform.

    Ouvrir la page Cloud Build

  2. Sélectionnez votre projet et cliquez sur Ouvrir.

    La page Build history (Historique de compilation) s'affiche :

    Capture d'écran de la page Historique de compilation

  3. Cliquez sur une compilation.

    La page Build details (Informations sur la compilation) s'affiche. Elle doit ressembler à la capture d'écran suivante :

    Capture d'écran de la page Informations sur la compilation

Nettoyer

Afin d'éviter que des frais ne soient facturés sur votre compte GCP pour les ressources utilisées dans ce démarrage rapide, procédez comme suit :

  1. Ouvrez une fenêtre de terminal (si aucune n'est déjà ouverte).

  2. Utilisez la commande rm command gsutil avec l'indicateur -r pour supprimer le bucket et les éléments qu'il contient, en remplaçant [BUCKET_NAME] par le nom de votre bucket :

    gsutil rm -r gs://[BUCKET_NAME]
    

    Si l'opération réussit, la commande renvoie un message semblable à celui indiqué ci-dessous :

    Removing gs://[BUCKET_NAME]/just-a-folder/cloud-storage.logo.png#1456530077282000...
    Removing gs://[BUCKET_NAME]/...
    

    Les artefacts que vous avez créés dans le cadre de ce démarrage rapide sont supprimés de votre projet.

Voilà ! Vous avez terminé le guide de démarrage rapide.

Étapes suivantes