Agrega una tarea a una cola de Cloud Tasks
Esta guía de inicio rápido te permite probar operaciones básicas con las colas de Cloud Tasks a través de la API de Cloud Tasks.
Las muestras de esta guía de inicio rápido se orientan a los controladores de App Engine, por lo que debes implementar una aplicación de App Engine. Si no usas App Engine como destino, no es necesario que implementes una aplicación de App Engine y puedes inhabilitar cualquier aplicación existente de App Engine.
Por ejemplo, si usas un controlador de destino HTTP de forma exclusiva, no se necesita una aplicación de App Engine. En el caso de destinos HTTP genéricos, el servicio de Cloud Tasks reenvía la solicitud de tarea al trabajador, que se encuentra en cualquier extremo HTTP genérico, según la configuración de la tarea. Para obtener más información sobre cómo usar destinos de HTTP, consulta Crea tareas de destino HTTP.
Antes de comenzar
Para configurar tu entorno de Cloud para esta guía de inicio rápido, crea un proyecto de Google Cloud y agrega una aplicación de App Engine que tenga habilitada la facturación. Si ya tienes una cuenta de facturación cuando creas el proyecto de Google Cloud, la facturación se habilita de forma automática.Obtén más información sobre la administración de proyectos de Google Cloud, aplicaciones de App Engine y la facturación en general.
Crea o selecciona un proyecto de Google Cloud:
- Usa los botones de la esquina superior derecha para seleccionar el nombre de un proyecto existente o crear uno nuevo.
- Anota el ID del proyecto en el cuadro desplegable de la esquina superior izquierda. Servirá como parámetro para tus solicitudes de Cloud Tasks.
Agrega una aplicación de App Engine a tu proyecto:
En la página Bienvenido a App Engine, haz clic en Crear aplicación.
Selecciona una región para tu aplicación. Esta ubicación servirá como parámetro LOCATION_ID para tus solicitudes de Cloud Tasks, así que anótala. Ten en cuenta que hay dos ubicaciones, llamadas
europe-west
yus-central
en los comandos de App Engine, que se llamaneurope-west1
yus-central1
, respectivamente, en los comandos de Cloud Tasks.En la página Comenzar, haz clic en Siguiente. Te encargarás de esto más tarde. Si este es un proyecto nuevo, se compila el entorno de ejecución.
Si aparece la ventana emergente Habilitar la facturación, selecciona tu cuenta de facturación. Si no tienes una cuenta de facturación, haz clic en Crear cuenta de facturación y sigue los pasos del asistente.
En la página Próximos pasos, haz clic en Lo haré más tarde. Accederás a los ejemplos y descargarás el SDK más adelante.
Habilita la API de Cloud Tasks.
Configura la autenticación para la API.
Select the tab for how you plan to use the samples on this page:
C#
Para usar las muestras de .NET de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Go
Para usar las muestras de Go de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Node.js
Para usar las muestras de Node.js de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
PHP
Para usar las muestras de PHP de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Rita
Para usar las muestras de Ruby de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea credenciales de autenticación locales para tu Cuenta de Google:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Configura la muestra
Estas muestras proporcionan un framework para intentar agregar tareas a las colas de Cloud Tasks a través de la API de Cloud Tasks .
C#
La muestra de C# consta de dos apps, una (
CreateAppEngineTask
) que se ejecuta localmente como una herramienta de línea de comandos para crear y agregar tareas a la cola, y una (CloudTasks
) implementada en App Engine Flex como "proceso" la tarea.Para descargar y luego instalar la muestra, sigue estas instrucciones:
Asegúrate de tener instalado el SDK de .NET Core versión 2.0 o una versión más reciente.
Clona el repositorio de la aplicación de muestra en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
Navega al directorio que contiene el código de muestra de
CreateTask
:cd dotnet-docs-samples/cloudtasks/api/TasksSample/
Instala todas las dependencias:
dotnet restore
Navega al directorio (
dotnet-docs-samples/cloudtasks/appengine/
) que contiene el código de muestra deCloudTasks
y, luego, instala todas las dependencias:dotnet restore
Compila la aplicación y prepárala para la implementación:
dotnet publish
Implementa el servicio de trabajador (
CloudTasks
) en App Engine Flexible:gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml
Verifica que se esté entregando la página de índice:
gcloud app browse
Tu navegador se abre
https://{YOUR_PROJECT_ID}.appspot.com/
y muestraHello, World!
.
Go
La muestra de Golang consta de dos archivos, uno (
tasks/create_task/create_task.go
) que se ejecuta localmente como herramienta de línea de comandos para crear y agregar tareas a la cola y otro (tasks/handle_task/handle_task.go
) implementado en App Engine para "procesar" tarea.Para descargar y luego instalar la muestra, sigue estas instrucciones:
Asegúrate de haber instalado el componente
gcloud
de Go en App Engine:gcloud components install app-engine-go
Clona el repositorio de la aplicación de muestra en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Navega al directorio
tasks/handle_task
del código de muestra del trabajador.cd golang-samples/appengine/go11x/tasks/handle_task
Observa el archivo
app.yaml
, que contiene la información de configuración necesaria.Implementa el servicio de trabajador (
handle_task.go
) en App Engine:gcloud app deploy
Revisa para asegurarte de que se esté ejecutando la app que contiene el servicio:
gcloud app browse
Tu navegador se abre
https://{YOUR_PROJECT_ID}.appspot.com/
y muestraHello, World!
.
Java
En este ejemplo de Java 11, se usan dos aplicaciones:
- La app
tasks
se ejecuta de forma local como una herramienta de línea de comandos para crear y agregar tareas a la cola. - La app de Spring Boot
tasks-handler
procesa las solicitudes de Cloud Tasks como trabajador, ya que funciona como un extremo para recibir solicitudes de tareas. Esta es la aplicación principal de App Engine que implementas.
Implementa la app de ejemplo de la siguiente manera:
- Descarga e instala el kit de desarrollo de Java SE 11 (JDK).
- Completa las instrucciones de configuración de Cloud Tasks.
Descarga y, luego, instala Maven para compilar, implementar y administrar tu app.
Instala el componente
app-engine-java
de la CLI de gcloud:gcloud components install app-engine-java
Para descargar y luego instalar la muestra, sigue estas instrucciones:
Clona el repositorio de la aplicación de muestra en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
De manera opcional, puedes descargar la muestra como un archivo ZIP y extraerla.Navega al directorio de nivel superior de la app
tasks-handler
:cd java-docs-samples/appengine-java11/tasks-handler/
Implementa la app
tasks-handler
en App Engine:mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Si tu archivo
pom.xml
ya especifica tu ID del proyecto, no necesitas incluir la propiedad-Dapp.deploy.projectId
en el comando que ejecutas.
Node.js
La muestra de Node.js consta de dos archivos, uno (
createTask.js
) que se ejecuta localmente como herramienta de línea de comandos para crear y agregar tareas a la cola y otro (server.js
) implementado en App Engine para "procesar" tarea.Para descargar y luego instalar la muestra, sigue estas instrucciones:
Clona el repositorio de la aplicación de muestra en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Navega al directorio que contiene el código de muestra:
cd nodejs-docs-samples/cloud-tasks/snippets
Instala todas las dependencias.
Puedes usar npm:
npm install
O puedes usar yarn:yarn install
Implementa el servicio de trabajador (
server.js
) en el entorno estándar de App Engine:gcloud app deploy app.yaml
Revisa para asegurarte de que se esté ejecutando la app que contiene el servicio:
gcloud app browse
Tu navegador se abre
https://{YOUR_PROJECT_ID}.appspot.com/
y muestraHello, World!
.
PHP
La muestra de PHP consta de dos archivos, uno (
/snippets/src/create_task.php
) que se ejecuta localmente como herramienta de línea de comandos para crear y agregar tareas a la cola y otro (/apps/handler/index.php
) implementado en App Engine para "procesar" tarea.Para descargar y luego instalar la muestra, sigue estas instrucciones:
Clona el repositorio de la aplicación de muestra en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/php-docs-samples
Navega al directorio de nivel superior de la muestra de Tasks:
cd php-docs-samples/appengine/standard/tasks
En el directorio
tasks
, verás dos subdirectorios:apps/handler
: contiene el código para el servicio de trabajador que se implementará en App Engine.snippets
: Contiene el código de la herramienta de línea de comandos local.
Asegúrate de tener instalado Composer. Si lo deseas usar de manera local, asegúrate de que
composer.phar
se encuentre en los dos subdirectorios. Consulta la documentación de Composer para obtener información sobre cómo ejecutarlo local o globalmente.En el directorio
snippets
, instala todas las dependencias:composer install
Alternativamente, si vas a usar solo la versión local, ejecuta el siguiente comando:php composer.phar install
En el directorio
apps/handler
, instala todas las dependencias:composer install
Alternativamente, si vas a usar solo la versión local, ejecuta el siguiente comando:php composer.phar install
Desde el directorio
apps/handler
, implementa el servicio de trabajador en App Engine con el comandogcloud app deploy
:gcloud app deploy
Revisa para asegurarte de que se esté ejecutando la app que contiene el servicio:
gcloud app browse
Tu navegador se abre
https://{YOUR_PROJECT_ID}.appspot.com/
y muestraHello, World!
.
Python
La aplicación de muestra de Python consta de dos archivos, uno (
create_app_engine_queue_tasks.py
) que se ejecuta localmente como una herramienta de línea de comandos para crear y agregar tareas a la cola y otro (main.py
) implementado en App Engine para "procesar" la tarea.Para descargar y luego instalar la muestra, sigue estas instrucciones:
Clona el repositorio de la aplicación de muestra en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Navega al directorio que contiene el código de muestra:
cd python-docs-samples/appengine/flexible_python37_and_earlier/tasks/
Instala todas las dependencias:
pip install -r requirements.txt
Implementa el servicio de trabajador (
main.py
) en App Engine:gcloud app deploy
Verifica que se esté entregando la página de índice:
gcloud app browse
Tu navegador se abre
https://{YOUR_PROJECT_ID}.appspot.com/
y muestraHello, World!
.
Rita
La muestra de Ruby consta de dos archivos, uno (
create_Task.rb
) que se ejecuta localmente como herramienta de línea de comandos para crear y agregar tareas a la cola y otro (app.rb
) implementado en App Engine para "procesar" tarea.Para descargar y luego instalar la muestra, sigue estas instrucciones:
Clona el repositorio de la aplicación de muestra en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
Navega al directorio que contiene el código de muestra:
cd ruby-docs-samples/appengine/cloud-tasks
Instala las dependencias:
bundle install
Implementa el servicio de trabajador (
app.rb
) en el entorno flexible de App Engine:gcloud app deploy app.yaml
Revisa para asegurarte de que se esté ejecutando la app que contiene el servicio:
gcloud app browse
Tu navegador se abre
https://{YOUR_PROJECT_ID}.appspot.com/
y muestraHello, World!
.
Si necesitas más información sobre cómo crear controladores de tareas de App Engine, consulta Crea controladores de tareas de App Engine.
Crea una cola de Cloud Tasks
Usa la función de administración de colas
gcloud
de gcloud CLI para crear la cola en el entorno que preparaste anteriormente.En la línea de comandos, ingresa lo siguiente:
gcloud tasks queues create my-queue --location=LOCATION
Reemplaza
LOCATION
por tu ubicación preferida para la cola, por ejemplo,us-west2
. Si no especificas la ubicación, gcloud CLI elige la predeterminada.Espera un poco a que se inicialice la cola y, luego, usa
describe
para verificar que se haya creado correctamente:gcloud tasks queues describe my-queue --location=LOCATION
Reemplaza
LOCATION
por la ubicación de la cola.Verifica que el resultado sea similar a lo siguiente:
name: projects/
PROJECT_ID
/locations/LOCATION_ID
queues/QUEUE_NAME
# Note these ids rateLimits: maxBurstSize: 100 maxConcurrentDispatches: 1000 maxDispatchesPerSecond: 500.0 retryConfig: maxAttempts: 100 maxBackoff: 3600s maxDoublings: 16 minBackoff: 0.100s state: RUNNING
Agrega una tarea a la cola de Cloud Tasks
C#
Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:
Configura las siguientes variables de entorno en tu máquina, ya sea de forma manual, en el código de la app de muestra o con un alias. La app de muestra las usa para crear la solicitud que agrega tareas a tu cola:
export GOOGLE_PROJECT_ID=my-project-id # The project ID you set up above export GCP_QUEUE=my-queue # the queue you created above export LOCATION_ID=my-location-id # The region in which your queue is running
Para encontrar el ID de ubicación de la aplicación de App Engine, usa el siguiente comando
gcloud
:gcloud tasks locations list
Navega a la carpeta
TasksSample
:cd ../api/TasksSample
Crea una tarea y agrega una carga útil, la string "hello", mediante
test
. La aplicaciónCloudTasks
que implementaste antes tiene un extremolog_payload
, que procesa la carga útil para registrarla.dotnet test
Verifica el registro para asegurarte de que la tarea haya llegado al extremo:
gcloud app logs read
Go
Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:
Si todavía estás en el directorio
tasks/handle_task
, navega al directoriotasks/create_task
.Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de la app de muestra o con un alias. El cliente usa esta información para crear la solicitud:
export PROJECT_ID=PROJECT_ID # The project ID from above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Nota: Para encontrar el ID de ubicación, usa el siguiente comandogcloud
:gcloud tasks locations list
Crea una tarea con la carga útil
hello
y agrégala a tu cola. La carga útil puede ser cualquier conjunto de datos de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:go run . $PROJECT_ID $LOCATION_ID $QUEUE_ID hello
Para verificar que se haya recibido la carga útil, muestra los registros del servicio trabajador:
gcloud app logs read
Java
Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:
Ve al directorio
appengine-java11/tasks
y compila la app:cd ../tasks mvn package
Configura las siguientes variables de entorno en tu máquina. La app de muestra las usa para crear la solicitud que agrega tareas a tu cola:
export GOOGLE_CLOUD_PROJECT=PROJECT_ID // The project ID you set up above export LOCATION_ID=LOCATION_ID // The region in which your queue is running export QUEUE_ID=MY_QUEUE // The queue you created above
Nota: Para encontrar el ID de ubicación, usa el siguiente comandogcloud
:gcloud tasks locations list
Crea una tarea con una carga útil específica que esté dirigida al extremo
/tasks/create
del controlador del controlador de tareas que implementaste. La carga útil puede ser cualquier dato de la solicitud que el trabajador necesite para completar el procesamiento de la tarea. En este ejemplo, está hard-coded en la muestra y no es necesario especificarlo:mvn exec:java -Dexec.mainClass="com.example.task.CreateTask"
Una vez que la tarea se pasa al trabajador y este la procesa, este mostrará un código de estado de éxito 2xx al servicio de Cloud Tasks y borrará la tarea de la cola automáticamente.Verifica que se haya recibido la tarea con los registros del servicio de trabajador:
gcloud app logs read
Node.js
Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:
Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de la app de muestra o con un alias. El cliente usa esta información para crear la solicitud:
export PROJECT_ID=PROJECT_ID # The project ID from above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Nota: Para encontrar el ID de ubicación, usa el siguiente comandogcloud
:gcloud tasks locations list
Crea una tarea con la carga útil
hello
y agrégala a tu cola. La carga útil puede ser cualquier conjunto de datos de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello
Para verificar que se haya recibido la carga útil, muestra los registros del servicio trabajador:
gcloud app logs read
PHP
Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:
Navega al directorio
snippets
.Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de la app de muestra o con un alias. La app de muestra las usa para crear la solicitud que agrega la tarea a tu cola:
export PROJECT_ID=PROJECT_ID # The project ID from above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Nota: Para encontrar el ID de ubicación, usa el siguiente comandogcloud
:gcloud tasks locations list
Usa el
create_task.php
local para crear una tarea y agregar una carga útil dehello
. La carga útil puede ser cualquier conjunto de datos de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:php src/create_task.php $PROJECT_ID $LOCATION_ID $QUEUE_ID hello
Revisa los registros para verificar que se haya recibido la carga útil.
gcloud app logs read
Python
Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:
Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de la app de muestra o con un alias. La app de muestra las usa para crear la solicitud que agrega tareas a tu cola:
export PROJECT_ID=PROJECT_ID # The project ID you set up above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Nota: Para encontrar el ID de ubicación, usa el siguiente comandogcloud
:gcloud tasks locations list
Usa el
create_app_engine_queue_task.py
local para crear una tarea y agregar una carga útil dehello
. La carga útil puede ser cualquier conjunto de datos de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:python create_app_engine_queue_task.py --project=$PROJECT_ID \ --location=$LOCATION_ID --queue=$QUEUE_ID --payload=hello
Verifica que se haya recibido la carga útil:
gcloud app logs read
Rita
Crea una tarea localmente, agrégala a la cola que configuraste y entrégala a un trabajador asíncrono:
Configura las siguientes variables de entorno en tu máquina de forma manual, en el código de la app de muestra o con un alias. El cliente usa esta información para crear la solicitud:
export GOOGLE_CLOUD_PROJECT=my-project-id # The project ID from above export LOCATION_ID=my-location-id # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Nota: Para encontrar el ID de ubicación, usa el siguiente comandogcloud
:gcloud tasks locations list
Crea una tarea con la carga útil
hello
y agrégala a tu cola. La carga útil puede ser cualquier conjunto de datos de la solicitud que el trabajador necesite para completar el procesamiento de la tarea:ruby create_task.rb $GOOGLE_CLOUD_PROJECT_ID $LOCATION_ID $QUEUE_ID hello
Para verificar que se haya recibido la carga útil, muestra los registros del servicio trabajador:
gcloud app logs read
Limpia
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página.
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
¿Qué sigue?
Ahora que terminaste de agregar una tarea a una cola de Cloud Tasks, continúa explorando Cloud Tasks en las siguientes páginas:
- Administra tareas y colas existentes, incluida la eliminación mediante Administra colas y tareas.
- Crea y configura colas de Cloud Tasks con la guía Crea colas de Cloud Tasks.
- Obtén más información sobre la administración de colas con gRPC en la referencia de la API de gRPC.
- Obtén más información sobre la administración de colas con REST en la referencia de la API de REST.
- Obtén más información sobre las colas de Cloud Tasks con la Descripción general de Cloud Tasks.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-07-05 (UTC)