Guía de inicio rápido: Implementa una función en Cloud Run con gcloud CLI
En esta página, se muestra cómo usar Cloud Run para implementar una función HTTP con gcloud CLI.
Antes de comenzar
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Para configurar el proyecto predeterminado para tu servicio de Cloud Run:
gcloud config set project PROJECT_ID
reemplaza PROJECT_ID por el nombre del proyecto que creaste para esta guía de inicio rápido. Si estás bajo una política de la organización de restricción de dominios que restringe las invocaciones no autenticadas para tu proyecto, deberás acceder al servicio implementado como se describe en Prueba servicios privados.
- Para que Cloud Build pueda compilar tus fuentes, otorga el rol de cuenta de servicio de Cloud Build a la cuenta de servicio predeterminada de Compute Engine mediante la ejecución de lo siguiente:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
Reemplaza
PROJECT_NUMBER
por el número de tu proyecto de Google Cloud yPROJECT_ID
por el ID de tu proyecto de Google Cloud.Puedes encontrar el número y el ID del proyecto en la página de bienvenida de la consola de Google Cloud.
Escribe la función de muestra
Para escribir una aplicación, sigue estos pasos:
Node.js
Crea un directorio nuevo llamado
helloworld
y usa el comando de cambio de directorio en él:mkdir helloworld cd helloworld
Crea un archivo
package.json
en el directoriohelloworld
para especificar las dependencias de Node.js:Crea un archivo
index.js
en el directoriohelloworld
con la siguiente muestra de Node.js:
Python
Crea un directorio nuevo llamado
helloworld
y usa el comando de cambio de directorio en él:mkdir helloworld cd helloworld
Crea un archivo
requirements.txt
en el directoriohelloworld
para especificar las dependencias de Python:Esto agrega los paquetes que necesita la muestra.
Crea un archivo
main.py
en el directoriohelloworld
con la siguiente muestra de Python:
Go
Crea un directorio nuevo llamado
helloworld
y usa el comando de cambio de directorio en él:mkdir helloworld cd helloworld
Crea un archivo
go.mod
para declarar el módulo de go:Puedes crear el archivo
go.mod
directamente en el formato como se muestra arriba, o puedes inicializarlo desde el directorio del proyecto con lo siguiente:go mod init github.com/GoogleCloudPlatform/golang-samples/functions/functionsv2/helloworld/go.mod
Crea un archivo
hello_http.go
en el directoriohelloworld
con la siguiente muestra de código Go:
Java
Crea un directorio nuevo llamado
helloworld
y usa el comando de cambio de directorio en él:mkdir helloworld cd helloworld
Crea la siguiente estructura de proyecto a fin de que contenga el directorio fuente y el archivo de origen:
mkdir -p ~/helloworld/src/main/java/functions touch ~/helloworld/src/main/java/functions/HelloWorld.java
Actualiza el archivo
HelloWorld.java
con la siguiente muestra de código de Java:Crea un archivo
pom.xml
en el directoriohelloworld
y agrega las siguientes dependencias de Java:
.NET
Instala el SDK de .NET 6.0. Esta guía de inicio rápido solo funciona para la versión 6 de .NET.
Desde la consola, crea un proyecto web vacío nuevo con el comando de dotnet:
dotnet new web -o helloworld-csharp
Cambia el directorio a
helloworld-csharp
:Reemplaza el código de muestra en el archivo del proyecto
helloworld-csharp.csproj
por lo siguiente:Reemplaza el código de muestra del archivo
Program.cs
por lo siguiente:
Implementa la función
Importante: En esta guía de inicio rápido, se supone que tienes roles de propietario o de editor en el proyecto que usas para la guía de inicio rápido. De lo contrario, consulta el rol del desarrollador de fuente de Cloud Run para conocer los permisos necesarios para implementar un recurso de Cloud Run desde la fuente.
Para implementar tu función de Cloud Run, sigue estos pasos:
Para implementar la función, ejecuta el siguiente comando en el directorio que contiene el código de muestra:
Node.js
gcloud beta run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/nodejs20 \ --region REGION \ --allow-unauthenticated
Reemplaza REGION por la región de Google Cloud del servicio en el que deseas implementar tu función. Por ejemplo,
us-central1
.Python
gcloud beta run deploy python-http-function \ --source . \ --function hello_get \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/python312 \ --region REGION \ --allow-unauthenticated
Reemplaza REGION por la región de Google Cloud del servicio en la que deseas implementar tu función. Por ejemplo,
us-central1
.Go
gcloud beta run deploy go-http-function \ --source . \ --function HelloGet \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/go122 \ --region REGION \ --allow-unauthenticated
Reemplaza REGION por la región de Google Cloud del servicio en el que deseas implementar tu función. Por ejemplo,
us-central1
.Java
Ejecuta el siguiente comando en el directorio que contiene el archivo
pom.xml
:gcloud beta run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/java21 \ --region REGION \ --allow-unauthenticated
Reemplaza REGION por la región de Google Cloud del servicio en la que deseas implementar tu función. Por ejemplo,
us-central1
..NET
gcloud beta run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/dotnet6 \ --region REGION \ --allow-unauthenticated
Reemplaza REGION por la región de Google Cloud del servicio en el que deseas implementar tu función. Por ejemplo,
us-central1
.Cuando se complete la implementación, Google Cloud CLI mostrará una URL en la que se ejecuta el servicio. Abre la URL en tu navegador para ver el resultado de la función.
Para obtener instrucciones sobre cómo agregar activadores de Eventarc a tu función, consulta la guía para implementar una función.
Limpia
Si bien Cloud Run no cobra cuando el servicio no se usa, es posible que se te cobre por el almacenamiento de la imagen de contenedor en Artifact Registry. Puedes borrar la imagen de contenedor o borrar el proyecto de Google Cloud para evitar que se apliquen cargos. Si borras tu proyecto de Google Cloud, se dejan de facturar todos los recursos que usaste en ese proyecto.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
¿Qué sigue?
Para implementar una función de muestra en Cloud Run mediante la consola de Google Cloud, consulta la Guía de inicio rápido: Implementa una función en Cloud Run mediante la consola de Google Cloud.
Para implementar funciones y crear activadores con la consola de Google Cloud y Google Cloud CLI, consulta Implementa funciones.
Para ver y borrar funciones existentes, consulta Administra revisiones de servicios.
Para compilar contenedores de funciones en tu propia cadena de herramientas y, luego, implementarlos en Cloud Run, consulta Compila funciones.