Guía de inicio rápido: Crea y despliega una aplicación web en Go en Cloud Run
Aprende a usar un solo comando para crear y desplegar una aplicación web de "Hola, mundo" a partir de un código de ejemplo en Google Cloud con Cloud Run.
Si sigues los pasos de esta guía de inicio rápido, Cloud Run creará automáticamente un Dockerfile cuando despliegues desde el código fuente.
Antes de empezar
- 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.
-
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
-
Create or select 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Si vas a usar un proyecto que ya tienes para seguir esta guía, verifica que tienes los permisos necesarios para completarla. Si has creado un proyecto, ya tienes los permisos necesarios.
-
Verify that billing is enabled for your Google Cloud project.
-
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
-
Create or select 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Si vas a usar un proyecto que ya tienes para seguir esta guía, verifica que tienes los permisos necesarios para completarla. Si has creado un proyecto, ya tienes los permisos necesarios.
-
Verify that billing is enabled for your Google Cloud project.
- Para definir el proyecto predeterminado de tu servicio de Cloud Run, sigue estos pasos:
Sustituye PROJECT_ID por el ID de tu proyecto. Google Cloudgcloud config set project PROJECT_ID
Si tu proyecto está sujeto a una política de organización de restricción de dominio que restringe las invocaciones no autenticadas, tendrás que acceder al servicio desplegado tal como se describe en la sección Probar servicios privados.
-
Enable the Cloud Run Admin API and Cloud Build APIs:
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.gcloud services enable run.googleapis.com
cloudbuild.googleapis.com Una vez que se haya habilitado la API Cloud Run Admin, se creará automáticamente la cuenta de servicio predeterminada de Compute Engine.
- Consulta los precios de Cloud Run o calcula los costes con la calculadora de precios.
-
Administrador de Cloud Run (
roles/run.admin
) en el proyecto -
Desarrollador de fuentes de Cloud Run (
roles/run.sourceDeveloper
) en el proyecto -
Visualizador de registros (
roles/logging.logsViewer
) en el proyecto -
Administrador de gestión de identidades y accesos de proyectos (
roles/resourcemanager.projectIamAdmin
) en el proyecto -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad de servicio (de forma predeterminada, es la cuenta de servicio predeterminada de Compute Engine) Crea un directorio llamado
helloworld
y cambia al directorio:mkdir helloworld cd helloworld
Inicializa un archivo
go.mod
desde el directorio del proyecto para declarar el módulo de Go:go mod init github.com/GoogleCloudPlatform/golang-samples/run/helloworld
Crea un archivo llamado
main.go
y pega el siguiente código en él:Este código crea un servidor web básico que escucha el puerto definido por la variable de entorno
PORT
.En el directorio de código fuente, despliega la carpeta actual con el siguiente comando:
gcloud run deploy --source .
Cuando se te pida el nombre del servicio, pulsa Intro para aceptar el nombre predeterminado, por ejemplo,
helloworld
.Si se te pide que habilites APIs adicionales en el proyecto, como la API de Artifact Registry, responde pulsando
y
.Cuando se te pida que elijas una región, selecciona la región que quieras, por ejemplo,
europe-west1
.Si se te pide que crees un repositorio en la región especificada, responde pulsando
y
.Si se te pide que permitas el acceso público: responde
y
. Es posible que no veas esta petición si hay una política de organización de restricción de dominio que lo impida. Para obtener más información, consulta la sección Antes de empezar.
A continuación, espera unos instantes hasta que se complete el despliegue. Si la operación se realiza correctamente, la línea de comandos mostrará la URL del servicio.
Visita el servicio implementado abriendo la URL del servicio en un navegador web.
asia-east1
(Taiwán)asia-northeast1
(Tokio)asia-northeast2
(Osaka)asia-south1
(Bombay, la India)europe-north1
(Finlandia)CO2 bajo
europe-north2
(Estocolmo)CO2 bajo
europe-southwest1
(Madrid)CO2 bajo
europe-west1
(Bélgica)CO2 bajo
europe-west4
(Países Bajos)CO2 bajo
europe-west8
(Milán)europe-west9
(París)CO2 bajo
me-west1
(Tel Aviv)northamerica-south1
(México)us-central1
(Iowa)CO2 bajo
us-east1
(Carolina del Sur)us-east4
(Norte de Virginia)us-east5
(Columbus)us-south1
(Dallas)CO2 bajo
us-west1
(Oregón)CO2 bajo
africa-south1
(Johannesburgo)asia-east2
(Hong Kong)asia-northeast3
(Seúl, Corea del Sur)asia-southeast1
(Singapur)asia-southeast2
(Yakarta)asia-south2
(Delhi, la India)australia-southeast1
(Sídney)australia-southeast2
(Melbourne)europe-central2
Varsovia (Polonia)europe-west10
(Berlín)CO2 bajo
europe-west12
(Turín)europe-west2
(Londres, Reino Unido)CO2 bajo
europe-west3
(Fráncfort, Alemania)europe-west6
(Zúrich, Suiza)CO2 bajo
me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal)CO2 bajo
northamerica-northeast2
(Toronto)CO2 bajo
southamerica-east1
(São Paulo, Brasil)CO2 bajo
southamerica-west1
(Santiago, Chile)CO2 bajo
us-west2
(Los Ángeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)En la Google Cloud consola, ve a Cloud Run:
Busca el servicio que quieras eliminar en la lista de servicios y marca la casilla correspondiente para seleccionarlo.
Haz clic en Eliminar. Se eliminarán todas las revisiones del servicio.
- SERVICE: nombre de tu servicio.
- REGION: Google Cloud región del servicio.
Roles obligatorios
Para obtener los permisos que necesitas para completar esta guía de inicio rápido, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Conceder acceso a la cuenta de servicio de Cloud Build a tu proyecto
Cloud Build usa automáticamente la cuenta de servicio predeterminada de Compute Engine como cuenta de servicio predeterminada de Cloud Build para compilar tu código fuente y tu recurso de Cloud Run, a menos que anules este comportamiento.
Para que Cloud Build compile tus fuentes, concede a la cuenta de servicio de Cloud Build el rol Cloud Run Builder (roles/run.builder
) en tu proyecto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Sustituye PROJECT_ID
por el ID de tu proyecto y SERVICE_ACCOUNT_EMAIL_ADDRESS
por la dirección de correo de la cuenta de servicio de Cloud Build. Google CloudSi usas la cuenta de servicio predeterminada de Compute Engine como cuenta de servicio de Cloud Build, utiliza el siguiente formato para la dirección de correo de la cuenta de servicio:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Sustituye PROJECT_NUMBER
por el número de tu proyecto. Google Cloud
Para obtener instrucciones detalladas sobre cómo encontrar el ID y el número de tu proyecto, consulta el artículo Crear y gestionar proyectos.
El proceso para conceder el rol de compilador de Cloud Run tarda un par de minutos en propagarse.
Escribir la aplicación de ejemplo
Para escribir una aplicación en Go, sigue estos pasos:
Tu aplicación está terminada y lista para desplegarse.
Desplegar en Cloud Run desde el código fuente
Importante: En esta guía de inicio rápido se da por hecho que tienes el rol de propietario o editor en el proyecto que vas a usar. De lo contrario, consulta los permisos necesarios para implementar un recurso de Cloud Run desde el origen.
La opción Desplegar desde la fuente compila automáticamente una imagen de contenedor a partir del código fuente y la despliega.
Para desplegar desde el código fuente, sigue estos pasos:
Ubicaciones de Cloud Run
Cloud Run es regional, lo que significa que la infraestructura que ejecuta tus servicios de Cloud Run se encuentra en una región específica y Google la gestiona para que esté disponible de forma redundante en todas las zonas de esa región.
Cumplir tus requisitos de latencia, disponibilidad o durabilidad son factores primordiales para seleccionar la región en la que se ejecutan tus servicios de Cloud Run.
Por lo general, puedes seleccionar la región más cercana a tus usuarios, pero debes tener en cuenta la ubicación de los otros Google Cloudproductos que utiliza tu servicio de Cloud Run.
Usar Google Cloud productos juntos en varias ubicaciones puede afectar a la latencia y al coste de tu servicio.
Cloud Run está disponible en las siguientes regiones:
Con sujeción a los precios del nivel 1
Con sujeción a los precios del nivel 2
Si ya has creado un servicio de Cloud Run, puedes ver la región en el panel de control de Cloud Run de la Google Cloud consola.
Limpieza
Para evitar que se apliquen cargos adicionales a tu cuenta de Google Cloud , elimina todos los recursos que hayas implementado con esta guía de inicio rápido.
Eliminar un repositorio
Cloud Run no te cobra cuando no se usa el servicio desplegado. Sin embargo, es posible que se te cobre por almacenar la imagen de contenedor en Artifact Registry. Para eliminar repositorios de Artifact Registry, sigue los pasos que se indican en el artículo Eliminar repositorios de la documentación de Artifact Registry.
Eliminar tu servicio
Los servicios de Cloud Run no generan costes hasta que reciben solicitudes. Para eliminar tu servicio de Cloud Run, sigue uno de estos pasos:
Consola
Para eliminar un servicio, sigue estos pasos:
gcloud
Para eliminar un servicio, ejecuta el siguiente comando:
gcloud run services delete SERVICE --region REGION
Haz los cambios siguientes:
Eliminar un proyecto de prueba
Si eliminas tu proyecto de Google Cloud , se detendrá la facturación de todos los recursos de ese proyecto. Para liberar todos los recursos de tu proyecto, sigue estos pasos: Google Cloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Siguientes pasos
Para obtener más información sobre cómo crear un contenedor a partir del código fuente y enviarlo a un repositorio, consulta los siguientes enlaces: