Guía de inicio rápido para Go

En esta página, se explica cómo usar Cloud Build para compilar y enviar un objeto binario Go a Google Cloud Storage. Crearás un archivo de configuración de compilación, en el que agregarás instrucciones para Cloud Build. Luego, usarás el archivo de configuración para iniciar la compilación.

Antes de comenzar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the GCP Console, go to the Manage resources page and select or create a project.

    Go to the Manage resources page

  3. Asegúrate de tener habilitada la facturación para tu proyecto.

    Aprende a habilitar la facturación

  4. Habilita las Cloud Build API necesarias.

    Habilita las API

  5. Install and initialize the Cloud SDK.

Accede a Google Cloud

  1. Autoriza a la herramienta de línea de comandos de gcloud para que acceda a tu proyecto.

    gcloud auth login
    
  2. Configura tu proyecto para la herramienta de gcloud, en la que [PROJECT_ID] es tu ID del proyecto de GCP que creaste o seleccionaste en la sección anterior.

    gcloud config set project [PROJECT_ID]
    

Prepara archivos de origen

Necesitarás algún código fuente de muestra para compilar. En esta sección, crearás un ejemplo simple de Hello World en Go.

  1. Crea un archivo llamado main.go con los contenidos siguientes:

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

Crea un depósito de Cloud Storage

Necesitarás un depósito de Google Cloud Storage para enviar el objeto binario Go después de compilarlo. En esta sección, crearás el depósito de Cloud Storage.

  1. Abre una ventana de terminal.

  2. Usa el comando gsutil mb y un nombre único para crear un depósito.

    gsutil mb gs://[BUCKET_NAME]/
    

    [BUCKET_NAME] es tu nombre de depósito único y propio a nivel global.

    Si tiene éxito, el comando mostrará lo siguiente:

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

    ¡Acabas de crear un depósito donde puedes almacenar tus elementos!

    En caso de que el nombre de tu depósito se encuentre en uso por parte tuya o de otra persona, el comando muestra esta información:

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

    Inténtalo de nuevo con un nombre de depósito diferente.

Configura la compilación

Especifica las acciones que deseas que Cloud Build realice en un archivo de configuración de compilación. Las acciones se especifican como pasos de compilación. El paso de compilación usa un generador para ejecutar tus tareas. Los generadores son imágenes de contenedor con lenguajes comunes y herramientas instaladas. Cloud Build proporciona un conjunto de generadores que mantiene Google. En esta sección, usarás estos generadores para compilar el objeto binario Go y almacenarlo en Google Cloud Storage.

  • En el mismo directorio que contiene main.go, crea un archivo con el nombre cloudbuild.yaml con los contenidos siguientes: Este archivo es tu archivo de configuración de compilación. A la hora de la compilación, Cloud Build reemplaza $PROJECT_ID con tu ID del proyecto de manera automática.

    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']
    

    El archivo de configuración anterior contiene dos pasos de compilación. El nombre de los pasos de compilación se refiere al generador que se usa para ejecutar tu tarea. El campo args toma una lista de argumentos y los pasa al generador. El campo env toma las variables de entorno que se usarán cuando ejecutas un paso. En el ejemplo anterior, especifica el proyecto raíz. En este archivo de configuración, se llevan a cabo estas acciones:

    • El primer paso de compilación llama al generador go para instalar dependencias.
    • El segundo paso llama al generador go para compilar el objeto binario.
    • El campo artifacts se usa para almacenar el objeto binario en un depósito de Cloud Storage.

Comienza la compilación

  • Comienza la compilación mediante la ejecución del comando gcloud builds submit:

    gcloud builds submit --config cloudbuild.yaml .
    

    Cuando se complete la compilación, verás un resultado similar al siguiente:

    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
    

    Acabas de crear el objeto binario Go con el archivo de configuración de compilación y almacenaste el objeto binario en el depósito de Cloud Storage.

Observa los detalles de compilación

  1. Abre la página Cloud Build en Google Cloud Platform Console.

    Abrir la página Cloud Build

  2. Selecciona tu proyecto y haz clic en Open (Abrir).

    Verás la página Build history (Historial de compilación):

    Captura de pantalla de la página build history

  3. Haz clic en una compilación.

    Verás la página Build details (Detalles de compilación), similar a la captura de pantalla siguiente:

    Captura de pantalla de la página build details

Limpieza

Para evitar que se apliquen cargos a tu cuenta de GCP por los recursos que se usan en esta guía de inicio rápido, realiza los siguientes pasos:

  1. Abre una ventana de terminal (si no está abierta).

  2. Usa el rm command de gsutil con la marca -r para borrar el depósito y todo lo que haya adentro. A fin de llevar a cabo esta tarea, reemplaza [BUCKET_NAME] con tu nombre del depósito:

    gsutil rm -r gs://[BUCKET_NAME]
    

    Si tiene éxito, el comando mostrará un mensaje similar a este:

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

    Los artefactos que creaste como parte de esta guía de inicio rápido se borran de tu proyecto.

¡Eso es todo, completaste esta guía de inicio rápido!

Pasos siguientes

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…