Overview
Puede configurar y habilitar la Sincronización de Dispositivos Atlas mediante la interfaz de usuario de App Services, la CLI de App Services o la API de administración de Atlas App Services. Puede actualizar una configuración existente de la misma manera. Si es la primera vez que habilita la Sincronización de Dispositivos, la interfaz de usuario es una excelente opción, ya que le guía por los pasos necesarios.
Es posible que desee modificar la configuración de Sincronización de Dispositivos Atlas después de haberla habilitado. Puede actualizar una configuración siguiendo el mismo procedimiento que para habilitarla inicialmente. Si utiliza el modo de Sincronización Flexible, puede actualizar la configuración sin necesidad de cerrar y volver a habilitar la sincronización.
Si desea volver a habilitar la sincronización del dispositivo después de pausarla o finalizarla, consulte Reanudar o volver a habilitar la sincronización del dispositivo.
Tip
Device Sync se pausa automáticamente después de 30 días de inactividad.
Requisitos previos
Si aún no ha decidido cómo desea configurar su modelo de datos, consulte Descripción general del modelo de datos de sincronización.
A menos que utilice el modo de desarrollo, debe especificar al menos un esquema válido para una colección en el clúster sincronizado antes de habilitar la sincronización. Como mínimo, el esquema debe definir
_id como clave principal. También debe incluir los campos que desea utilizar como campos de consulta.
Para obtener más detalles sobre cómo definir un esquema, consulte Definir y aplicar un esquema.
Procedimiento
Nota
Requisitos de la fuente de datos para la sincronización del dispositivo
Para habilitar la sincronización de dispositivos, su aplicación de Servicios de aplicaciones debe tener al menos una fuente de datos vinculada que cumpla con los siguientes requisitos:
Un clúster de MongoDB Atlas no fragmentado en ejecución MongoDB 5.0 o posterior.
El clúster no puede ser una instancia sin servidor ni una instancia de base de datos federada. Consulte las limitaciones de las fuentes de datos.
Especifica tu configuración de sincronización
Sigue las instrucciones para configurar la sincronización de dispositivos. Para obtener más información sobre las opciones de configuración disponibles, consulta Ajustes de sincronización.
Obtenga la última versión de su aplicación
Obtén una copia local de los archivos de configuración de tu aplicación. Para obtener la última versión, ejecuta el siguiente comando:
appservices pull --remote="<Your App ID>"
También puedes exportar una copia de los archivos de configuración de tu aplicación desde la interfaz de usuario o con la API de administración. Para saber cómo, consulta Exportar una aplicación.
Agregar una configuración de sincronización
Puede habilitar la sincronización para un solo clúster vinculado en su aplicación. Si aún no ha vinculado el clúster a su aplicación, siga primero la guía Vincular una fuente de datos.
La aplicación Servicios de aplicaciones tiene un sync directorio donde se encuentra el archivo de configuración de sincronización. Si aún no ha habilitado la sincronización, este directorio está vacío.
Añade un config.json similar a:
{ "type": "flexible", "development_mode_enabled": <Boolean>, "service_name": "<Data Source Name>", "database_name": "<Development Mode Database Name>", "state": <"enabled" | "disabled">, "client_max_offline_days": <Number>, "is_recovery_mode_disabled": <Boolean>, "indexed_queryable_fields_names": <Array of String Field Names>, "queryable_fields_names": <Array of String Field Names>, "collection_queryable_fields_names": <Map[String][]String> }
Para obtener más detalles, consulte la Referencia del archivo de configuración de sincronización.
Seleccione un clúster para sincronizar
Puede habilitar la Sincronización de Dispositivos para un solo clúster vinculado en su aplicación. Si aún no has vinculado el clúster a tu aplicación, siga la guía Vincular una fuente de datos.
Nota
Autenticando Tu Solicitud con un Token de Acceso
Para autenticar su solicitud a la API de administración de App Services, necesita un token de autorización válido y vigente de la API de MongoDB Cloud. Consulte la documentación de autenticación de la API para saber cómo obtener un token de acceso válido.
Necesitará el archivo de configuración del servicio del clúster para configurar la sincronización. Puede encontrarlo enumerando todos los servicios a través de la API de administración:
curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{GROUP_ID}/apps/{APP_ID}/services \ -X GET \ -h 'Authorization: Bearer <Valid Access Token>'
Identifique el clúster cuya configuración necesita actualizar para habilitar la sincronización. Si aceptó los nombres predeterminados al configurar su aplicación, este debería ser un clúster cuyo name sea mongodb-atlas y type sea mongodb-atlas. Necesita el _id de este clúster.
Ahora puede obtener el archivo de configuración de servicio para este clúster:
curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{GROUP_ID}/apps/{APP_ID}/services/{MongoDB_Service_ID}/config \ -X GET \ -h 'Authorization: Bearer <Valid Access Token>'
Para configurar Sync, agregaremos un objeto flexible_sync a esta configuración en el siguiente paso.
Habilitar el modo de desarrollo (opcional)
Si desea habilitar el modo de desarrollo para optimizar la producción, utilice el siguiente comando:
curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{GROUP_ID}/apps/{APP_ID}/sync/config \ -X PUT \ -h 'Authorization: Bearer <Valid Access Token>' \ -h "Content-Type: application/json" \ -d '{"development_mode_enabled": true}'
Agregar e implementar la configuración de sincronización
Para implementar sus cambios y comenzar a sincronizar datos, envíe una solicitud de API de administración que actualice la configuración del clúster con un flexible_sync objeto utilizando la siguiente configuración de plantilla:
curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{GROUP_ID}/apps/{APP_ID}/services/{MongoDB_Service_ID}/config \ -X PATCH \ -h 'Authorization: Bearer <Valid Access Token>' \ -h "Content-Type: application/json" \ -d '<Flexible Sync Configuration>'
{ "flexible_sync": { "state": "enabled", "database_name": "<Name of Database>", "client_max_offline_days": <Number>, "is_recovery_mode_disabled": <Boolean>, "indexed_queryable_fields_names": <Array of String Field Names>, "queryable_fields_names": <Array of String Field Names>, "collection_queryable_fields_names": <Map[String][]String> } }
Para obtener detalles sobre la configuración de sincronización, consulte la Referencia del archivo de configuración de sincronización.
Puede confirmar que se agregó la configuración de sincronización obteniendo nuevamente la configuración del servicio, como se describe en el Paso 1.