ID de región
El REGION_ID
es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r
se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.
Esta guía te ayudará a empezar a usar App Engine y a familiarizarte con el desarrollo, el despliegue y la gestión de una aplicación Go.
Costes
No hay ningún coste asociado a esta guía. Si ejecutas esta aplicación de ejemplo por sí sola, no superarás tu cuota gratuita.
Configurar un entorno de desarrollo
Puedes usar tu máquina local y las herramientas que ya conoces o Cloud Shell. Cloud Shell ya tiene instalado Google Cloud CLI, tu entorno ya está configurado y ofrece muchas otras funciones.
Equipo local
Instala Go y configura gcloud CLI.
Cloud Shell
Inicia Cloud Shell, que tiene preinstaladas todas las herramientas que necesitas:
Crear un Google Cloud proyecto
Se necesita un proyecto para usar Google Cloud, que es la base para usar todos los servicios deGoogle Cloud .
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
- Crea tu aplicación de App Engine y los recursos asociados. Debes elegir una ubicación, que no se podrá cambiar más adelante.
disponibles.gcloud app create
go-app/
: directorio de tu servicio Go 1.11.app.yaml
: los ajustes de configuración de tu servicio.main.go
: el código de tu aplicación.
Crea una carpeta llamada
go-app
para tu servicio Go 1.11:mkdir go-app
En la carpeta
go-app/
, crea un archivo llamadoapp.yaml
y añade el siguiente contenido:Esta es la configuración más sencilla para una aplicación de App Engine. Indica a App Engine que estás usando el entorno de ejecución de Go 1.11. El archivo
app.yaml
también puede especificar ajustes de red, ajustes de escalado y más. Para obtener más información, consulta la referencia deapp.yaml
.En la carpeta
go-app/
, crea un archivomain.go
.Añade la instrucción
package main
para tratar tu código como un programa ejecutable:package main
Para desplegar correctamente un servicio en el tiempo de ejecución de Go 1.11, se debe definir una instrucción
package main
al principio de al menos uno de los archivos de origen de Go que se encuentren en el mismo directorio que el archivoapp.yaml
del servicio.Importa los siguientes paquetes:
Define tu controlador HTTP:
El objeto
http.ResponseWriter
ensambla la respuesta del servidor HTTP. Al escribir en él, se envían datos al navegador. El objetohttp.Request
es una estructura de datos que representa la solicitud HTTP entrante.Registra tu controlador HTTP:
La función
main
es el punto de entrada de tu programa ejecutable, por lo que inicia la aplicación. Empieza con una llamada a la funciónhttp.HandleFunc
que indica al paquetehttp
que gestione todas las solicitudes a la raíz web ("/"
) con la funciónindexHandler
.Si la variable de entorno
PORT
no está definida, se usa el puerto8080
de forma predeterminada. Cuando tu aplicación se ejecuta en App Engine, la variable de entornoPORT
se define automáticamente, pero, cuando pruebas tu aplicación de forma local, puedes asignar aPORT
el valor que prefieras.En el directorio
go-app
donde se encuentra el archivoapp.yaml
, despliega tu servicio web en App Engine con el siguiente comando:gcloud app deploy
Para iniciar el navegador y ver el servicio web en
https://PROJECT_ID.REGION_ID.r.appspot.com
, ejecuta el siguiente comando:gcloud app browse
Para ver tus servicios de App Engine en la consola de Google Cloud , sigue estos pasos:
Debería aparecer un servicio llamado
default
. El servicio predeterminado es accesible públicamente en la siguiente URL:https://PROJECT_ID.REGION_ID.r.appspot.com
Ver tus versiones:
Debería aparecer una versión con marca de tiempo correspondiente a tu implementación.
- Consulta más información sobre cómo escribir registros de aplicaciones e interpretar registros del sistema en Lectura y escritura de registros de aplicaciones.
- Para obtener más información sobre cómo funciona App Engine, consulta el artículo sobre el entorno de ejecución de Go.
- Consulta información sobre la gestión de solicitudes y el enrutamiento de solicitudes.
Escribir un servicio web básico para App Engine
Consulta cómo escribir un servicio web y declarar ajustes de tiempo de ejecución.
Estructurar los archivos
Tu servicio tendrá la siguiente estructura de archivos:
Crear el archivo app.yaml
Todos los proyectos de App Engine tienen un archivo de configuración app.yaml
que especifica los ajustes del entorno de ejecución de tu servicio. El servicio no se desplegará sin este archivo.
Crear el archivo main.go
En este ejemplo se usa el paquete net/http
para crear un servidor HTTP que muestre el mensaje "Hello world".
Para configurar el archivo main.go
, sigue estos pasos:
Desplegar un servicio web en App Engine
¡Enhorabuena! Acabas de crear y desplegar un servicio en App Engine.
Servicios y versiones
El primer servicio que implementes para tu aplicación será el servicio predeterminado.
Puedes especificar el nombre de tu servicio en el archivo app.yaml
, pero si se omite, se tratará como default
. Puedes desplegar varios servicios
además del servicio predeterminado.
Puedes actualizar tu servicio en cualquier momento ejecutando el comando gcloud app deploy
. Cada vez que implementas una versión, se crea una nueva y el tráfico se dirige automáticamente a la versión más reciente.
Para confirmar la creación del servicio y la implementación de la versión, sigue estos pasos:
Para saber cómo enviar solicitudes a servicios y versiones específicos, consulta la sección Cómo se dirigen las peticiones.
Pasos siguientes
¡Enhorabuena! Acabas de configurar y desplegar tu aplicación web en App Engine.
Consulta cómo añadir otras funciones a tu aplicación en las siguientes páginas: