El Persistent Disk regional y la alta disponibilidad balanceada de Hyperdisk son opciones de almacenamiento que proporcionan replicación síncrona de datos entre dos zonas de una región. Puedes usar discos persistentes regionales o alta disponibilidad balanceada de Hyperdisk como un componente básico cuando implementas servicios de alta disponibilidad (HA) en Compute Engine.
En este documento, se explican los diversos casos que pueden interrumpir el funcionamiento de tus discos replicados de forma síncrona y cómo puedes administrar estos casos.
Antes de comenzar
- Revisa los conceptos básicos sobre los discos replicados de forma síncrona y la conmutación por error. Para obtener más información, consulta Acerca de la replicación de disco síncrona.
-
Configura la autenticación si aún no lo hiciste.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Para migrar datos de disco replicados de forma síncrona con un punto de control de recuperación de réplicas, debes tener el rol de Administrador de instancias de Compute (v1) (
roles/compute.instanceAdmin.v1
) en el proyecto. -
Para ver las métricas de los discos replicados (una de las siguientes), haz lo siguiente:
-
Visualizador de supervisión (
roles/monitoring.viewer
) en el proyecto -
Editor de Monitoring (
roles/monitoring.editor
) en el proyecto
-
Visualizador de supervisión (
-
Para crear una instantánea estándar a partir del punto de control de recuperación de réplicas, sigue estos pasos:
compute.snapshots.create
-
compute.disks.createSnapshot
-
Para crear un nuevo disco replicado de forma síncrona a partir de la instantánea estándar, usa
compute.disks.create
-
Para migrar las VMs al disco nuevo, sigue estos pasos:
-
compute.instances.attachDisk
-
compute.disks.use permission
-
- Hay una interrupción zonal.
- La réplica experimenta una lentitud excesiva en las operaciones de escritura.
- La réplica en la zona secundaria se mantiene en buen estado y tiene los últimos datos de disco.
- La réplica en la zona principal está en mal estado y no se garantiza que tenga todos los datos del disco.
- La réplica en la zona principal se mantiene en buen estado y tiene los últimos datos de disco.
- La réplica en la zona secundaria está en mal estado y no se garantiza que tenga todos los datos del disco.
- Ambas réplicas zonales no están disponibles y no pueden entregar tráfico. El disco deja de estar disponible.
- Si la interrupción zonal o la réplica de falla son temporales, no se pierde ningún dato.
- Si la interrupción zonal o la réplica de falla son permanentes, todos los datos escritos en la réplica en buen estado mientras el disco se degrada se pierden de forma permanente.
- Ambas réplicas zonales no pueden entregar tráfico. El disco deja de estar disponible.
- Si la interrupción zonal o la réplica de falla son temporales, el disco reanuda las operaciones después de que la réplica principal vuelva a estar disponible.
- Si la interrupción zonal o la falla de réplica son permanentes, el disco se volverá inutilizable.
- Google recomienda que uses una instantánea estándar existente y crees un disco nuevo para recuperar los datos. Como práctica recomendada, crea una copia de seguridad del disco replicado con regularidad mediante instantáneas estándar.
- Si no tienes instantáneas estándar existentes del disco, puedes recuperar tus datos de la réplica no sincronizada mediante el punto de control de recuperación de réplicas.
- Ambas réplicas zonales no pueden entregar tráfico. El disco deja de estar disponible.
- Si la interrupción zonal o la réplica de falla son temporales, el disco reanuda las operaciones después de que la réplica principal vuelva a estar disponible.
- Si la interrupción zonal o la falla de réplica son permanentes, el disco se volverá inutilizable.
- Google recomienda que uses una instantánea estándar existente y crees un disco nuevo para recuperar los datos. Como práctica recomendada, crea una copia de seguridad del disco replicado con regularidad mediante instantáneas estándar.
- Si no tienes instantáneas estándar existentes del disco, puedes recuperar tus datos de la réplica no sincronizada mediante el punto de control de recuperación de réplicas.
- Aplicaciones que no responden
- Falla debido a acciones administrativas de la aplicación (por ejemplo, actualización)
- Error humano (por ejemplo, configuración incorrecta de parámetros como un certificado SSL o LCA)
- Falla de infraestructura o hardware
- La VM no responde debido a la contención de la CPU o la interrupción de red intermedia
- Prueba las herramientas de recuperación específicas de la aplicación si están disponibles. Por ejemplo, la corrupción en la página de la base de datos MySQL.
- Restablece desde el archivo de replicación lógica. Por ejemplo, una réplica de lectura o un archivo de registro lógico como el archivo continuo PostgreSQL.
Ve a la página Instancias de VM.
Elige tu proyecto.
Haz clic en el nombre de la instancia que deseas cambiar.
En la página de detalles, haz clic en Editar.
En la sección Discos adicionales, haz clic en Conectar disco adicional.
Selecciona el disco replicado regional del menú desplegable.
Para forzar la conexión del disco, elige la casilla de verificación Conectar disco a la fuerza.
Haz clic en Listo y, luego, en Guardar.
VM_NAME
: Es el nombre de la nueva instancia de procesamiento en la región.DISK_NAME
: Es el nombre del disco replicado.PROJECT_ID
: El ID de tu proyectoZONE
: Es la ubicación de tu instancia de procesamiento.VM_NAME
: Es el nombre de la instancia de procesamiento en la que agregas el disco replicado.REGION
: Es la región en la que se encuentra el disco replicado.DISK_NAME
: Es el nombre del disco replicado.Si no tienes una VM en espera activa, crea una instancia nueva en la zona secundaria. Cuando crees la segunda instancia, usa el disco replicado para el disco de arranque, como se describe en Crea una VM nueva con un disco de arranque replicado.
Si tienes una VM en espera en la zona secundaria, reemplaza el disco de arranque de la VM en espera por el disco de arranque replicado, como se describe en Conecta un disco de arranque replicado a una VM.
Crea una instantánea estándar del volumen dePersistent Disk regional o de alta disponibilidad balanceada de Hyperdisk (versión preliminar) afectado desde su punto de control de recuperación de réplicas.
Puedes crear la instantánea estándar para un disco desde su punto de control de recuperación de réplicas solo con gcloud CLI o REST.
gcloud
Para crear una instantánea con el punto de control de recuperación de réplicas, usa el comando
gcloud compute snapshots create
. Incluye la marca--source-disk-for-recovery-checkpoint
para especificar que deseas crear la instantánea con un punto de control de recuperación de réplicas. Excluye los parámetros--source-disk
y--source-disk-region
.gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-for-recovery-checkpoint=SOURCE_DISK \ --source-disk-for-recovery-checkpoint-region=SOURCE_REGION \ --storage-location=STORAGE_LOCATION \ --snapshot-type=SNAPSHOT_TYPE
Reemplaza lo siguiente:
DESTINATION_PROJECT_ID
: Es el ID del proyecto en el que deseas crear la instantánea.SNAPSHOT_NAME
: Es un nombre para la instantánea.SOURCE_DISK
: Es el nombre o la ruta de acceso completa del disco de origen que deseas usar para crear la instantánea. Para especificar la ruta de acceso completa de un disco de origen, usa la siguiente sintaxis:projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
Si especificas la ruta de acceso completa al disco de origen, puedes excluir la marca
--source-disk-for-recovery-checkpoint-region
. Si solo especificas el nombre del disco, debes incluir esta marca.Para crear una instantánea desde el punto de control de recuperación de un disco de origen en un proyecto diferente, debes especificar la ruta de acceso completa al disco de origen.
SOURCE_PROJECT_ID
: Es el ID del proyecto del disco de origen cuyo punto de control deseas usar para crear la instantánea.SOURCE_REGION
: el nombre del disco de origen cuyo punto de control quieres usar para crear la instantánea.SOURCE_DISK_NAME
: el nombre del disco de origen cuyo punto de control quieres usar para crear la instantánea.STORAGE_LOCATION
: Opcional: la multirregión de Cloud Storage o la región de Cloud Storage en la que quieres almacenar la instantánea. Solo puedes especificar una ubicación de almacenamiento.
Usa la marca--storage-location
solo cuando quieras anular la ubicación de almacenamiento predeterminada o personalizada establecida en tu configuración de instantáneas.SNAPSHOT_TYPE
: Es el tipo de instantánea, ya sea ESTANDARD o ARCHIVO. Si no se especifica un tipo de instantánea, se crea una instantánea STANDARD.
Puedes usar el punto de control de recuperación de réplicas para crear una instantánea solo en discos degradados. Si intentas crear una instantánea desde un punto de control de recuperación de réplicas cuando el dispositivo está completamente replicado, verás el siguiente mensaje de error:
The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please create regular snapshots instead.
REST
Para crear una instantánea con el punto de control de recuperación de réplicas, realiza una solicitud
POST
al métodosnapshots.insert
. Excluye el parámetrosourceDisk
y, en su lugar, incluye el parámetrosourceDiskForRecoveryCheckpoint
para especificar que deseas crear la instantánea con el punto de control.POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": "SNAPSHOT_NAME", "sourceDiskForRecoveryCheckpoint": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME", "storageLocations": "STORAGE_LOCATION", "snapshotType": "SNAPSHOT_TYPE" }
Reemplaza lo siguiente:
DESTINATION_PROJECT_ID
: Es el ID del proyecto en el que deseas crear la instantánea.SNAPSHOT_NAME
: Es un nombre para la instantánea.SOURCE_DISK
: Es el nombre o la ruta de acceso completa del disco de origen que deseas usar para crear la instantánea. Para especificar la ruta de acceso completa de un disco de origen, usa la siguiente sintaxis:projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
Si especificas la ruta de acceso completa al disco de origen, puedes excluir la marca
--source-disk-for-recovery-checkpoint-region
. Si solo especificas el nombre del disco, debes incluir esta marca.Para crear una instantánea desde el punto de control de recuperación de un disco de origen en un proyecto diferente, debes especificar la ruta de acceso completa al disco de origen.
SOURCE_PROJECT_ID
: Es el ID del proyecto del disco de origen cuyo punto de control deseas usar para crear la instantánea.SOURCE_REGION
: el nombre del disco de origen cuyo punto de control quieres usar para crear la instantánea.SOURCE_DISK_NAME
: el nombre del disco de origen cuyo punto de control quieres usar para crear la instantánea.STORAGE_LOCATION
: Opcional: la multirregión de Cloud Storage o la región de Cloud Storage en la que quieres almacenar la instantánea. Solo puedes especificar una ubicación de almacenamiento.
Usa el parámetrostorageLocations
solo cuando quieras anular la ubicación de almacenamiento predeterminada o personalizada establecida en tu configuración de instantáneas.SNAPSHOT_TYPE
: Es el tipo de instantánea, ya sea ESTANDARD o ARCHIVO. Si no se especifica un tipo de instantánea, se crea una instantánea STANDARD.
Puedes usar el punto de control de recuperación de réplicas para crear una instantánea solo en discos degradados. Si intentas crear una instantánea desde un punto de control de recuperación de réplicas cuando el dispositivo está completamente replicado, verás el siguiente mensaje de error:
The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please create regular snapshots instead.
Crea un nuevo disco Persistent Disk regional o disco de alta disponibilidad balanceada de Hyperdisk con esta instantánea. Cuando creas el disco nuevo, recuperas todos los datos del punto de control de recuperación de réplicas más reciente restableciéndolos en el disco nuevo a partir de la instantánea. Para obtener pasos detallados, consulta Crea una VM nueva con un disco de arranque replicado.
Migra todas las cargas de trabajo de la VM al disco creado recientemente y valida que estas cargas de trabajo de la VM se ejecuten correctamente. Para obtener más información, consulta Cómo mover una VM entre zonas o regiones.
- La marca de tiempo más reciente del estado del disco replicado por completo: Puedes obtener esta información con los datos de Cloud Monitoring para la métrica
replica_state
del disco replicado. Verifica los datos de la métricareplica_state
de la réplica desincronizada para determinar cuándo se desincronizó. Debido a que Compute Engine actualiza el punto de control del disco cada 10 minutos, la actualización más reciente del punto de control podría haber ocurrido aproximadamente 10 minutos antes de esta marca de tiempo. - La marca de tiempo de la operación de escritura más reciente: Puedes obtener esta información con los datos de Cloud Monitoring para la métrica
write_ops_count
del disco replicado. Verifica los datos de la métricawrite_ops_count
para determinar la operación de escritura más reciente del disco. - Obtén información para supervisar los estados de las réplicas y el estado de la replicación de los discos replicados de forma síncrona.
- Obtén información para determinar el estado exacto de la replicación del disco.
- Obtén más información para crear una instantánea de un disco.
- Obtén información para compilar servicios de alta disponibilidad con discos replicados de forma síncrona.
- Aprende a compilar aplicaciones web escalables y resilientes en Google Cloud.
- Revisa la guía de planificación para la recuperación ante desastres.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Roles obligatorios
Para obtener los permisos que necesitas para migrar datos de discos replicados de forma síncrona con un punto de control de recuperación de réplicas, pídele a tu administrador que te otorgue los siguientes roles de IAM:
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para migrar datos de disco replicados de forma síncrona mediante un punto de control de recuperación de réplicas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para migrar datos de discos replicados de forma síncrona mediante un punto de control de recuperación de réplicas:
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Situaciones de falla
Con los discos replicados de forma síncrona, cuando el dispositivo está completamente replicado, los datos se replican automáticamente en dos zonas de una región. Una operación de escritura se confirma en una instancia de procesamiento cuando persiste de manera duradera en ambas réplicas.
Si la replicación a una zona falla o es muy lenta durante un tiempo, el estado de replicación del disco cambia a degradado. En este modo, la escritura se confirma después de que persiste de manera duradera en una réplica.
Si Compute Engine detecta que la replicación se puede reanudar, los datos que se escribieron en una réplica después de que la otra réplica entró en el estado degradado se sincronizan con ambas zonas y el disco vuelve a un estado completamente replicado. Esta transición está completamente automatizada.
RPO y RTO no están definidos mientras un dispositivo está en estado degradado. Para minimizar la pérdida de disponibilidad y de datos en caso de que falle un disco que funciona en un estado degradado, te recomendamos que hagas una copia de seguridad de tus discos replicados de forma síncrona con regularidad mediante instantáneas estándar. Para recuperar un disco, restablece la instantánea.
Fallas zonales
Un disco replicado, o regional, se replica de forma síncrona en las réplicas de disco en las zonas principal y secundaria. Las fallas zonales ocurren cuando una réplica zonal deja de estar disponible. Las fallas zonales pueden ocurrir en la zona principal o secundaria por uno de los siguientes motivos:
En la siguiente tabla, se proporcionan las diversas situaciones de falla zonales que puedes encontrar en los discos replicados de forma síncrona y la acción recomendada para cada situación. En cada una de estas situaciones, se supone que tu réplica zonal principal está en buen estado y sincronizada durante el estado inicial.
Estado inicial del disco Error en Nuevo estado del disco Consecuencias de la falla Acción que se debe realizar Réplica principal: Sincronizada
Réplica secundaria: Sincronizada
Estado del disco: Replicado por completo
Disco conectado en: zona principal
Zona principal Réplica principal: Sin sincronizar o no disponible
Réplica secundaria: Sincronizada
Estado del disco: Degradado
Disco conectado en: zona principal
Realiza la conmutación por error del disco forzando su conexión a una VM en la zona secundaria en buen estado. Réplica principal: Sincronizada
Réplica secundaria: Sincronizada
Estado del disco: Replicado por completo
Disco conectado en: zona principal
Zona secundaria Réplica principal: Sincronizada
Réplica secundaria: Sin sincronizar o no disponible
Estado del disco: Degradado
Disco conectado en: zona principal
No se requiere ninguna acción. Compute Engine vuelve a sincronizar la réplica en mal estado en la zona secundaria después de que vuelve a estar disponible. Réplica principal: Sincronizada
Réplica secundaria: Sin sincronizar y no disponible
Estado del disco: Degradado
Disco conectado en: zona principal
Zona principal Réplica principal: Sincronizada, pero no disponible
Réplica secundaria: Sin sincronizar
Estado del disco: No disponible
Disco conectado en: zona principal
Google recomienda que uses una instantánea estándar existente y crees un disco nuevo para recuperar los datos. Como práctica recomendada, crea una copia de seguridad de los discos replicados con regularidad mediante instantáneas estándar. Réplica principal: Sincronizada
Réplica secundaria: Se está actualizando, pero está disponible
Estado del disco: Se está actualizando
Disco conectado en: zona principal
Zona principal Réplica principal: No disponible
Réplica secundaria: Se está actualizando, pero está disponible
Estado del disco: No disponible
Disco conectado en: zona principal
Réplica principal: Sincronizada
Réplica secundaria: Sin sincronizar, pero disponible
Estado del disco: Degradado
Disco conectado en: zona principal
Zona principal Réplica principal: No disponible
Réplica secundaria: Sin sincronizar, pero disponible
Estado del disco: No disponible
Disco conectado en: zona principal
Fallas de aplicaciones y VM
Si se producen interrupciones debido a una configuración incorrecta de la VM, una actualización incorrecta del SO o alguna falla en la aplicación, puedes
force-attach
el disco replicado a una instancia de procesamiento en la misma zona que la réplica en buen estado.Categoría de fallas y (probabilidad) Tipos de fallas Acción Falla de la aplicación (alta) El plano de control de la aplicación puede activar la conmutación por error en función de los umbrales de la verificación de estado. Falla de VM (media) Por lo general, las VM se reparan de forma automática. El plano de control de la aplicación puede activar la conmutación por error en función de los umbrales de la verificación de estado. Corrupción de la aplicación (baja-media) Corrupción de los datos de aplicación
(por ejemplo, debido a errores de la aplicación o a una actualización incorrecta del SO)Recuperación de la aplicación:
Realiza una conmutación por error de un disco replicado con
force-attach
En caso de que la zona principal falle, puedes conmutar por error el Persistent Disk regional o el volumen de alta disponibilidad balanceada de Hyperdisk (versión preliminar) a una instancia de procesamiento en otra zona mediante una operación de conexión forzada.
Cuando hay una falla en la zona principal, es posible que no puedas desconectar el disco de la instancia porque no se puede acceder a ella para realizar la operación de desconexión. La conexión forzada te permite conectar undisco persistente regional o un volumen de alta disponibilidad balanceada de Hyperdisk a una instancia de procesamiento, incluso si ese volumen está conectado a otra instancia.
Una vez que completes la operación de conexión forzada, Compute Engine evita que la instancia original escriba en el disco replicado. La operación de conexión forzada te permite volver a acceder de forma segura a los datos y recuperar el servicio. También tienes la opción de desactivar la instancia de VM de forma manual después de realizar la operación de conexión forzada.
Para forzar la conexión de un disco existente a una instancia de procesamiento, selecciona una de las siguientes tareas:
Console
Puedes realizar los mismos pasos para
force-attach
un disco a la instancia de procesamiento original después de que se resuelva la falla.gcloud
En la gcloud CLI, usa el comando
instances attach-disk
para conectar el disco de réplica a una instancia de procesamiento. Incluye la marca--disk-scope
y configúrala comoregional
.gcloud compute instances attach-disk VM_NAME \ --disk DISK_NAME --disk-scope regional \ --force-attach
Reemplaza lo siguiente:
Después de
force-attach
el disco, activa los sistemas de archivos en el disco, si es necesario. La instancia de procesamiento puede usar el disco con conexión forzada para continuar con las operaciones de lectura y escritura en el disco.REST
Realiza una solicitud
POST
para el métodocompute.instances.attachDisk
e incluye en ella la URL del disco replicado que acabas de crear. Para conectar el disco a la instancia de procesamiento nueva, se necesita el parámetro de consultaforceAttach=true
si la instancia de procesamiento principal todavía tiene el disco conectado.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk?forceAttach=true { "source": "projects/PROJECT_ID/regions/REGION/disks/DISK_NAME" }
Reemplaza lo siguiente:
Una vez conectado el disco replicado, activa los sistemas de archivos en los discos si es necesario. La instancia de procesamiento puede usar el disco de réplica para continuar con las operaciones de lectura y escritura en el disco.
Conmuta por error un disco de arranque a una instancia secundaria
Solo puedes tener un disco de arranque conectado a una instancia de procesamiento. Cuando se produzca un error en un disco de arranque replicado, usa uno de los siguientes métodos, según si la instancia de procesamiento secundaria ya existe:
Usa el punto de control de recuperación de réplicas para recuperar discos replicados
Un punto de control de recuperación de réplicas representa el momento más coherente frente a fallas en el tiempo de un volumen dePersistent Disk regional o de alta disponibilidad balanceada de Hyperdisk (versión preliminar) completamente replicado. Compute Engine te permite crear instantáneas estándar desde el punto de control de recuperación de réplicas para discos regionales degradados.
En raras ocasiones, cuando tu disco se degrada, la réplica zonal que se sincroniza con los datos del disco más reciente también puede fallar antes de que la réplica desincronizada se actualice. No podrás forzar la conexión del disco a las instancias de procesamiento de ninguna zona. El disco replicado deja de estar disponible y debes migrar los datos a un disco nuevo. En esas situaciones, si no tienes ninguna instantánea estándar disponible para tu disco, es posible que puedas recuperar los datos del disco desde la réplica incompleta mediante una instantánea estándar creada a partir de una instantánea estándar. punto de control de recuperación de réplicas. Consulta el Procedimiento para migrar y recuperar datos de disco para obtener pasos detallados.
Procedimiento para migrar y recuperar datos de disco
Para recuperar y migrar los datos de un disco replicado mediante el punto de control de recuperación de réplicas, sigue estos pasos:
Después de recuperar y migrar los datos y las VMs del disco al discoPersistent Disk regional o de alta disponibilidad balanceada de Hyperdisk que se acaba de crear, puedes reanudar las operaciones.
Determina el RPO que proporciona el punto de control de recuperación de réplicas
En esta sección, se explica cómo determinar el RPO que proporciona el punto de control de recuperación de la réplica más reciente de un volumen de Persistent Disk regional o alta disponibilidad balanceada de Hyperdisk (versión preliminar).
Las réplicas zonales están completamente sincronizadas
Compute Engine actualiza el punto de control de recuperación de réplica de tu disco Persistent Disk regional o volumen de alta disponibilidad balanceada de Hyperdisk aproximadamente cada 10 minutos. Como resultado, cuando tus réplicas zonales están completamente sincronizadas, el RPO es de aproximadamente 10 minutos.
Las réplicas zonales no están sincronizadas
No puedes ver las marcas de tiempo de creación y actualización exactas de un punto de control de recuperación de réplicas. Sin embargo, puedes estimar el RPO aproximado que proporciona tu punto de control más reciente con los siguientes datos:
Después de determinar estas marcas de tiempo, usa la siguiente fórmula para calcular el RPO aproximado que proporciona el punto de control de recuperación de réplicas de tu disco. Si el valor calculado es menor que cero, el RPO es, en efecto, cero.
Approximate RPO provided by the latest checkpoint = (Most recent write operation timestamp - (Most recent timestamp of the fully replicated disk state - 10 minutes))
¿Qué sigue?
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-11-25 (UTC)
-