En este sencillo tutorial se muestra cómo escribir, desplegar y activar una función HTTP de Cloud Run.
Objetivos
- Escribe, despliega y activa una función HTTP de Cloud Run.
Costes
En este documento, se utilizan los siguientes componentes facturables de Google Cloud:
- Cloud Run functions
Para generar una estimación de costes basada en el uso previsto,
utiliza la calculadora de precios.
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.
-
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 Functions 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. -
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 Functions 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. -
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
- Prepara tu entorno de desarrollo.
Clona el repositorio de aplicaciones de muestra en la máquina local:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Cambia al directorio que contiene el código de ejemplo de Cloud Run Functions:
Node.js
cd nodejs-docs-samples/functions/helloworld/
Python
cd python-docs-samples/functions/helloworld/
Go
cd golang-samples/functions/helloworld/
Java
cd java-docs-samples/functions/helloworld/helloworld/
Ruby
cd ruby-docs-samples/functions/helloworld/
Echa un vistazo al código de ejemplo:
Node.js
Python
Go
Java
Ruby
REGION
es la región en la que se despliega tu función. Esto se muestra en tu terminal cuando la función termina de implementarse.PROJECT_ID
es el ID de tu proyecto de Cloud. Esto se muestra en tu terminal cuando la función termina de implementarse.- 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.
Si ya tienes instalada la CLI de gcloud, actualízala ejecutando el siguiente comando:
gcloud components update
Preparar la aplicación
Desplegar la función
Para desplegar la función con un activador HTTP, ejecuta el siguiente comando en el directorio que contiene el código de ejemplo (o, en el caso de Java, el archivo pom.xml
):
Node.js
gcloud functions deploy helloGET \ --runtime nodejs20 --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de una
versión compatible de Node.js para ejecutar
tu función.
Python
gcloud functions deploy hello_get \ --runtime python312 --trigger-http
Usa la marca --runtime
para especificar el ID de tiempo de ejecución de una
versión de Python compatible para ejecutar
tu función.
Go
gcloud functions deploy HelloGet \ --runtime go121 --trigger-http
Usa la marca --runtime
para especificar el ID de tiempo de ejecución de una versión de Go compatible para ejecutar tu función.
Java
gcloud functions deploy java-http-function \ --entry-point functions.HelloWorld \ --runtime java17 \ --memory 512MB --trigger-http
Usa la marca --runtime
para especificar el ID de tiempo de ejecución de una
versión de Java compatible para ejecutar
tu función.
Ruby
gcloud functions deploy hello_get --runtime ruby33 --trigger-http
Usa la marca --runtime
para especificar el ID de tiempo de ejecución de una
versión de Ruby compatible para ejecutar
tu función.
También puedes usar la marca --allow-unauthenticated
para acceder a la función sin autenticación.
Esto es útil para hacer pruebas, pero no recomendamos usar este ajuste en producción a menos que vayas a crear una API o un sitio web públicos. Además, es posible que no te funcione, en función de la configuración de las políticas de tu empresa. Consulta Autenticación para la invocación para obtener más información sobre cómo invocar una función que requiere autenticación.
Activar la función
Para hacer una solicitud HTTP a tu función, ejecuta el siguiente comando:
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/helloGET"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/hello_get"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloGet"
Java
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-http-function"
Ruby
curl "https://REGION-PROJECT_ID.cloudfunctions.net/hello_get"
donde
También puedes visitar el endpoint de la función implementada en tu navegador para ver el mensaje "Hello World!".
Limpieza
Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.
Eliminar el proyecto
La forma más fácil de evitar que te cobren es eliminar el proyecto que has creado para el tutorial.
Para ello, sigue las instrucciones que aparecen a continuación:
Eliminar la función
Si eliminas funciones de Cloud Run, no se eliminarán los recursos almacenados en Cloud Storage.
Para eliminar la función de Cloud Run que has creado en este tutorial, ejecuta el siguiente comando:
Node.js
gcloud functions delete helloGET
Python
gcloud functions delete hello_get
Go
gcloud functions delete HelloGet
Java
gcloud functions delete java-http-function
Ruby
gcloud functions delete hello_get
También puedes eliminar funciones de Cloud Run desde la Google Cloud consola.