Gerencie servidores de borda no Atlas - Visualizar
Nesta página
Um serviço compatível com o Edge Server é o destino do Atlas para criar, excluir ou monitorar suas instâncias do Edge Server.
Existem dois tipos de serviços que permitem que você use o Edge Server:
Serviço deEdge Server : use essa opção se quiser que os clientes se conectem a uma instância do Edge Server com drivers e ferramentas do MongoDB . Ele infere e atualiza o esquema a partir dos documentos que você insere e fornece uma experiência de desenvolvimento familiar aos desenvolvedores do MongoDB . Este serviço é incompatível com Atlas Device SDK; ele rejeita as conexões de entrada do Atlas Device SDK .
Device Sync Service (com Edge Server): use esta opção se desejar desenvolver aplicativos cliente usando Atlas Device SDK e drivers e ferramentas MongoDB. Essa opção envolve uma imposição de esquema mais rigorosa, que os SDKs usam para sincronizar automaticamente objetos entre dispositivos e lidar com a resolução de conflitos.
Independentemente do tipo de serviço escolhido, os servidores de borda usam o Device Sync para sincronizar dados entre a instância do Edge Server e o Atlas.
Importante
Não é possível adicionar o Atlas Device SDK posteriormente a Edge Server Service
Você sempre pode adicionar servidores de borda a um serviço do Device Sync . Mas você não pode usar conexões do Atlas Device SDK com um serviço de Edge Server .
Os usuários não são móveis entre serviços. Se você começar com um serviço de Edge Server , mas depois quiser desenvolver aplicativos usando o Atlas Device SDK, não haverá como transferir nenhum usuário em seu serviço de borda para um novo serviço de Device Sync .
Antes de começar
Você precisa do seguinte para gerenciar servidores de borda na UI do Atlas :
Uma conta do MongoDB Atlas com permissões de Proprietário do Projeto. Para saber como se inscrever em uma conta gratuita, consulte Comece a usar o Atlas.
Você precisa do seguinte para gerenciar servidores de borda com a API de administrador:
Uma conta do MongoDB Atlas com permissões de Proprietário do Projeto. Para saber como criar uma conta gratuita, consulte Comece a usar o Atlas .
Uma admin API do MongoDB Atlas par de chaves pública/privada. A chave da API deve ter permissões do Proprietário do projeto para trabalhar com o App Services Admin API.
A string hexadecimal ObjectId interna do seu aplicativo e o ID do Projeto do Projeto Atlas que contém seu aplicativo. Para saber como encontrá-los, consulte Obter metadados do aplicativo.
Criar um serviço para o Edge Server
Você pode criar um serviço compatível com o Edge Server no Data Services ou no App Services.
Você pode selecionar Serviços de dados quando quiser apenas começar a criar com o Edge Server ou o Device Sync e o Edge Server e não precisar de outros Serviços de aplicativos. Você pode criar um serviço de Edge Server a partir de serviços de dados.
É possível selecionar o App Services quando se deseja adicionar autenticação, funções, triggers, HTTPS endpoints ou Values e Secrets a um serviço. Você pode criar um Serviço de Sincronização de Dispositivos no App Services e adicionar o Edge Server a ele.
Criar um serviço
Selecione o tipo de serviço que deseja criar e siga as instruções para criar um Edge Server Service ou Device Sync Service.
Depois de criar um serviço de Edge Server , você pode adicionar imediatamente instâncias de Edge Server .
Se você criar um Device Sync Service, clique em Edge Server na navegação à esquerda. Isso abre uma lista onde você pode adicionar e visualizar instâncias Edge Server .
Clique no botão Add a server e siga as instruções para nomear e criar sua nova instância do Edge Server.
Criar um aplicativo de Device Sync
Consulte a documentação para Criar um App Services App.
Ao escolher o tipo de aplicativo, selecione Device Sync
. Você pode adicionar servidores de borda ao seu aplicativo Device Sync depois de configurar o Device Sync.
Adicionar instâncias de Edge Server ao seu serviço de Device Sync
Enquanto visualiza seu Device Sync Service, clique em Edge Server na navegação à esquerda. Isso abre uma lista onde você pode adicionar e visualizar instâncias Edge Server .
Clique no botão Add a server e siga as instruções para nomear e criar sua nova instância do Edge Server.
Importante
Campo obrigatório
Os documentos que você deseja sincronizar com um Edge Server devem conter um campo _id
cujo tipo varia dependendo do tipo de serviço:
Serviço do Edge Server : Tipo
ObjectId
Serviço de Device Sync : Digite
ObjectId
,String
,Long
,Int
,UUID
Quaisquer documentos sem este campo não podem ser sincronizados com um Edge Server.
Provedores de autenticação compatíveis
O Edge Server é compatível com um subconjunto de provedores de autenticação. Os provedores de autenticação compatíveis variam de acordo com o fato de você estar se conectando com o Atlas Device SDK ou utilizando um URI do MongoDB para se conectar a um driver ou uma ferramenta do MongoDB.
Você deve habilitar pelo menos um desses provedores para permitir que os clientes se conectem a uma instância do Edge Server.
Provedores de autenticação do Atlas Device SDK compatíveis
Provedores de autenticação de driver MongoDB compatíveis
Crie uma instância do Edge Server
Depois de criar um serviço compatível com o Edge Server, você pode adicionar Edge Servers a ele. O serviço pode lidar com vários Edge Servers, cada um deles com sua própria chave de registro.
Adicionar um servidor
Clique em Add a server. Você será solicitado a nomear seu Edge Server.
A UI fornece um script de instalação, que você pode copiar e colar no terminal do dispositivo em que deseja instalar o código do Edge Server. Você também recebe um token, que usará ao configurar a instância do Edge Server .
Instalar e configurar o código do Edge Server
Copie e cole o script de instalação no terminal do dispositivo em que você deseja instalar o código do Edge Server. Para obter mais detalhes, consulte Instalar e configurar a instância do Edge Server .
Após configurar e iniciar a instância do Edge Server , seu status Health no painel do Edge Server muda de Pending para Active.
Autenticar um usuário do MongoDB Atlas
Chame o endpoint de autenticação do usuário administrador com seu par de chaves da API do MongoDB Atlas:
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
Se a autenticação for bem-sucedida, o corpo da resposta conterá um objeto JSON com um valor access_token
:
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
O access_token
concede acesso à App Services Admin API. Você deve incluí-lo como um token do portador no cabeçalho Authorization
para todas as solicitações de API Admin.
Chame o endpoint de criação de instância do Edge Server
Ligue para a API Admin Criar um endpoint de instância do Edge Server para adicionar uma instância do Edge Server ao seu serviço.
Sua solicitação deve incluir:
Um
Authorization
cabeçalho com seu token de acesso à API Admin como um token do portador.Um
name
para a nova instância do Edge Server
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>' \ -d '{ "name": "YOUR-EDGE-SERVER-INSTANCE-NAME" }'
Uma solicitação bem-sucedida retorna um código 201
, bem como um objeto JSON com informações sobre a instância do Edge Server recém-criada:
{ "id": "6622b8f5118368b943d228a9", "user_id": "6622b8f5118368b943d2288a", "registration_key": "Qi4GgpvVduwwt4k1w77ZzaQ1n4SdTWC8rLBD9vyTib1w9G3CX2ta8WrJvt3giEK7" }
id
: o identificador exclusivo da instância do Edge Server , do tipo ObjectId, como uma string. Você pode usar esse identificador para excluir ou atualizar a instância do Edge Server .user_id
: o próprio Edge Server é um usuário. Este é o identificador exclusivo do usuário do Edge Server , do tipo ObjectId, como uma string. Você pode usar esse identificador ao configurar permissões.registration_key
: Salve estas informações. Ao instalar o código do Edge Server no host, insira este token de registro. O Edge Server troca isso por uma chave de API que ele usa para autenticar com o Atlas. Você só pode usar este token de registro uma vez.
Instale o código do Edge Server
Copie e cole o script de instalação no terminal do dispositivo em que você deseja instalar o código do Edge Server. Para obter mais detalhes, consulte Instalar e configurar a instância do Edge Server .
Listar instâncias do Edge Server
Você pode obter uma lista de suas instâncias de Edge Server na UI do Atlas ou na API de administração.
O dashboard do Edge Server lista um breve resumo para cada instância do Edge Server , incluindo a data e a hora da última conexão e um instantâneo de seu status. Opcionalmente, você pode visualizar detalhes ou registros de cada instância.
Para visualizar o dashboard do Edge Server , escolha Edge Server na barra lateral de navegação à esquerda.
Para visualizar os detalhes de uma instância específica do Edge Server , clique em View Details para esta instância do Edge Server . Alternativamente, clique em App Logs para procurar registros associados à instância.
Autenticar um usuário do MongoDB Atlas
Chame o endpoint de autenticação do usuário administrador com seu par de chaves da API do MongoDB Atlas:
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
Se a autenticação for bem-sucedida, o corpo da resposta conterá um objeto JSON com um valor access_token
:
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
O access_token
concede acesso à App Services Admin API. Você deve incluí-lo como um token do portador no cabeçalho Authorization
para todas as solicitações de API Admin.
Obtenha a lista de instâncias do Edge Server
Ligue para o endpoint List Edge Servers da API Admin para obter uma lista de todas as instâncias de servidores de borda.
Sua solicitação deve incluir um Authorization
cabeçalho com seu token de acesso à API Admin como um token de portador.
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
Uma solicitação bem-sucedida retorna um código 200
e uma chave edge_servers
cujos valores são uma array de objetos contendo detalhes resumidos para cada instância do Edge Server associada ao appId
.
{ "edge_servers": [ { "id": "6622b8f5118368b943d228a9", "created": "2024-04-19T08:51:00Z", "name": "Edge-Store-42", "user_id": "6622b8f5118368b943d2288a", "status": "active", "hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com", "last_connection": "2024-04-19T09:51:00Z" } ] }
Para obter informações mais detalhadas, encontre o id
da instância cujos detalhes você deseja visualizar.
Ligue para o endpoint de informações do Edge Server
Ligue para o API Edge Server endpoint de informações do Obter de Administração para obter informações detalhadas sobre uma Edge Server instância do .
Sua solicitação deve incluir um Authorization
cabeçalho com seu token de acesso à API Admin como um token de portador.
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge/{edgeServerId} \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
Uma solicitação bem-sucedida retorna um código 200
, bem como um objeto JSON com informações detalhadas sobre a instância do Edge Server :
{ "id": "6622b8f5118368b943d228a9", "created": "2024-04-19T08:51:00Z", "name": "Edge-Store-42", "user_id": "6622b8f5118368b943d2288a", "status": "active", "hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com", "last_connection": "2024-04-19T09:51:00Z", "query": { "Item": "(store_id == \"641cb3d99e425c794ef69315\")" }, "package_version": "v0.21.2", "latest_package_version": "v0.22.2", "metrics": [ { "key": "edge_host_memory_percent", "name": "Memory Usage", "category": "host", "detail": "Percentage of memory used by the edge container", "value": 15, "unit": "%" }, ...additional Edge Server metrics... ] }
Para obter mais informações sobre esse corpo de resposta, consulte a especificação da API.
Detalhes da instância Edge Server
As informações disponíveis nos detalhes do Edge Server variam dependendo do fato de o Edge Server ter sido configurado e conectado ao Atlas ou se a configuração e a conexão ainda estão pendentes.
Instâncias de Edge Server pendentes
Quando uma instância do Edge Server ainda não foi conectada ao Atlas pela primeira vez, o status Health da instância é Pending.
Enquanto uma instância do Edge Server estiver no estado Pending, você pode executar as seguintes ações na exibição detalhada:
Renomeie a instância.
Revise os alertas sobre o status da instância.
Obter o ID da instância. É possível usar o ID da instância para definir permissões para esta instância específica.
Visualize o comando Instalar que você pode usar no terminal para instalar o código do Edge Server .
Regenerar o token de registro.
Exclua a instância do Edge Server .
Depois de configurar e conectar com êxito uma instância do Edge Server , a visualização detalhada será alterada para fornecer informações adicionais.
Instâncias de Edge Server ativas ou com falha
Após conectar uma instância de Edge Server ao Atlas pela primeira vez, o status Health da instância muda para Active.
Se a instância do Edge Server se deparar com um erro fatal, o status Health mudará para Failed.
Você pode executar as seguintes ações para instâncias ativas ou com falha:
Renomeie a instância.
Revise os alertas sobre o status da instância.
Exibir a data e a hora da última conexão.
Obter o ID da instância. É possível usar o ID da instância para definir permissões para esta instância específica.
Visualize a consulta da instância. Isso determina quais dados são sincronizados entre a instância e o Atlas e quais dados os clientes podem gravar na instância. Os clientes só podem gravar dados que estejam dentro de suas permissões e da query da instância. Para mais informações, consulte Especificar a query do Edge Server.
Visualize métricas sobre a instância do Edge Server . Para obter mais informações, consulte Métricas doEdge Server .
Visualize os registros de instâncias. Para obter mais informações, consulte Registros doEdge Server .
Visualizar informações da versão. Esta página lista a versão atual e a versão mais recente disponível. Se a instância ficar mais de uma versão principal atrás da mais recente disponível, ela entrará em um estado Failed e não poderá sincronizar com o Atlas até que seja atualizada. Para obter mais informações, consulte Atualizar a versão do Edge Server .
Visualize o comando Instalar que você pode usar no terminal para instalar o código do Edge Server .
Regenerar o token de registro.
Exclua a instância do Edge Server .
Excluir uma instância do Edge Server
Você pode excluir uma instância individual do Edge Server do Atlas.
Autenticar um usuário do MongoDB Atlas
Chame o endpoint de autenticação do usuário administrador com seu par de chaves da API do MongoDB Atlas:
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
Se a autenticação for bem-sucedida, o corpo da resposta conterá um objeto JSON com um valor access_token
:
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
O access_token
concede acesso à App Services Admin API. Você deve incluí-lo como um token do portador no cabeçalho Authorization
para todas as solicitações de API Admin.
Obtenha o ID do Edge Server a ser excluído
Ligue para o endpoint List Edge Servers da API Admin para obter uma lista de todas as instâncias do Edge Server .
Sua solicitação deve incluir um Authorization
cabeçalho com seu token de acesso à API Admin como um token de portador.
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
Uma solicitação bem-sucedida retorna um código 200
e uma chave edge_servers
cujos valores são uma array de objetos contendo detalhes resumidos para cada instância do Edge Server associada ao appId
.
{ "edge_servers": [ { "id": "6622b8f5118368b943d228a9", "created": "2024-04-19T08:51:00Z", "name": "Edge-Store-42", "user_id": "6622b8f5118368b943d2288a", "status": "active", "hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com", "last_connection": "2024-04-19T09:51:00Z" } ] }
Encontre o id
da instância do Edge Server que você deseja excluir na array.
Chame o endpoint de exclusão
Ligue para a API Admin Exclua um endpoint de instância do Edge Server com o ID da instância do Edge Server que você deseja excluir.
Sua solicitação deve incluir um Authorization
cabeçalho com seu token de acesso à API Admin como um token de portador.
curl -X DELETE \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge/{edgeServerId} \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
Uma solicitação bem-sucedida retorna um código 200
.
Atualizar o modelo de dados de um Edge Server
O processo para atualizar um modelo de dados varia dependendo se você está usando um serviço de Edge Server ou um serviço de Device Sync com Edge Server.
Serviço de Edge Server
Quando você está usando um Serviço de Edge Server , o serviço atualiza automaticamente os campos no esquema quando você faz alterações nos documentos sincronizados.
Se você atualizar seu esquema manualmente usando a interface do usuário, e essas alterações de esquema trigger uma alteração de versão do esquema, isso fará com que uma instância do Edge Server com o esquema antigo seja reiniciada e limpa a si mesma.
Se você estiver adicionando uma nova coleção que não tenha sincronizado antes, você deverá definir um novo esquema.
Adicionar uma coleção
Quando você deseja adicionar uma coleção a um Edge Server Service, você deve adicionar um esquema contendo:
O nome da collection.
Um campo
_id
do tipoObjectID
.
O Edge Server Service infere automaticamente os outros campos a partir da forma dos documentos que você sincroniza ou dos documentos na coleção.
Para obter informações sobre como adicionar um esquema, consulte Definir e aplicar um esquema.
Depois de adicionar uma coleção, você deve parar e iniciar a instância do Edge Server para obter os detalhes da nova coleção. Para obter mais informações, consulte Iniciar e parar o Edge Server.
Alterar campos em um documento
Quando você altera os campos em um documento usando um Edge Server Service, o serviço altera automaticamente o esquema para adicionar novos campos.
Algumas alterações que você pode fazer por meio da interface do usuário são consideradas alterações de esquema "significativas". Quando ocorre uma alteração de esquema "significativa", qualquer instância do Edge Server com o esquema antigo é reiniciada e limpa a si mesma. O processo de limpeza apaga todos os dados não sincronizados.
Importante
Limpar e reiniciar a instância apaga todos os dados locais não sincronizados na instância.
Se esses dados foram gravados por um cliente do Atlas Device SDK , o próprio cliente poderá lidar com a recuperação de dados. Isso permite que dados locais não sincronizados escritos pelo cliente acabem chegar ao Atlas.
Se os dados foram gravados por um driver ou ferramenta MongoDB usando o Protocolo de fio, os dados não sincronizados não poderão ser recuperados.
Antes de o Edge Server passar de Public Preview para General Availability, você terá a opção de recuperar dados locais quando esse erro ocorrer.
Para obter detalhes sobre quais tipos de alterações são consideradas alterações "significativas", consulte Referência rápida de alterações significativas versus não significativas .
Serviço de sincronização de dispositivos
Um Edge Server em execução em um serviço do Device Sync usa regras do Device Sync para atualizar um modelo de dados.
Quando ocorre uma alteração de esquema "significativa", qualquer instância do Edge Server com o esquema antigo é reiniciada e limpa a si mesma.
Importante
Limpar e reiniciar a instância apaga todos os dados locais não sincronizados na instância.
Se esses dados foram gravados por um cliente do Atlas Device SDK , o próprio cliente poderá lidar com a recuperação de dados. Isso permite que dados locais não sincronizados escritos pelo cliente acabem chegar ao Atlas.
Se os dados foram gravados por um driver ou ferramenta MongoDB usando o Protocolo de fio, os dados não sincronizados não poderão ser recuperados.
Antes de o Edge Server passar de Public Preview para General Availability, você terá a opção de recuperar dados locais quando esse erro ocorrer.
Para mais informações, consulte Atualizar seu Modelo de Dados.
Solucionar problemas de uma instância do Edge Server
Algumas condições podem fazer com que uma instância do Edge Server entre no estado Failed
:
Edge Server está offline por mais tempo do que o tempo máximo offline do cliente
A instância do Edge Server está mais de uma versão principal atrás
Edge Server está offline por mais tempo do que o tempo máximo offline do cliente
O Edge Server utiliza o Device Sync para sincronizar dados entre a instância do Edge Server e o Atlas. Device Sync tem uma configuração de tempo máximo off-line do cliente.
Esta configuração está habilitada por padrão. Ele corta o histórico para reduzir a quantidade de armazenamento necessária no cluster Atlas de suporte. Quanto maior o tempo máximo offline do cliente, mais armazenamento o Atlas exige para manter registros históricos que oferecem suporte ao Sync.
Se uma instância do Edge Server ficar off-line por mais tempo que essa configuração, esse será um erro irrecuperável. Você deve limpar e reiniciar a instância. Como alternativa, quando você colocar a instância on-line novamente, ela será apagada e reiniciada automaticamente.
Importante
Limpar e reiniciar a instância apaga todos os dados locais não sincronizados na instância.
Se esses dados foram gravados por um cliente do Atlas Device SDK , o próprio cliente poderá lidar com a recuperação de dados. Isso permite que dados locais não sincronizados escritos pelo cliente acabem chegar ao Atlas.
Se os dados foram gravados por um driver ou ferramenta MongoDB usando o Protocolo de fio, os dados não sincronizados não poderão ser recuperados.
Antes de o Edge Server passar de Public Preview para General Availability, você terá a opção de recuperar dados locais quando esse erro ocorrer.
Você pode alterar a duração do tempo offline máximo do cliente nas configurações de sincronização.
Importante
O limite offline do Edge Server é 60 dias
Uma instância do Edge Server não pode ficar off-line por mais de 60 dias, independentemente da configuração definida para o tempo máximo off-line do cliente. Se a configuração não for definida ou for maior que 60 dias, o limite offline do Edge Server será 60 dias.
A instância do Edge Server está mais de uma versão principal atrás
Edge Server não suporta instâncias que estejam mais de uma versão principal atrás da versão mais recente atual. Se a instância do Edge Server ficar ainda mais atrasada em versões, você deverá atualizá-la para resolver o estado Failed
.
Para obter informações sobre a atualização de uma instância do Edge Server , consulte Atualizar a versão do Edge Server .
O token do Edge Server é inválido
Se o token de instância do Edge Server for gerado novamente e você não atualizar a chave API na própria instância, ela poderá inserir um estado Failed
.
Para obter mais detalhes sobre como atualizar a chave de API na instância do Edge Server após regenerar o token do Edge Server, consulte Ciclar a chave de API do Edge Server.
Limitações do Edge Server
Embora o Edge Server esteja em prévia pública, ele ainda não é compatível com a gama completa de recursos e funcionalidades do MongoDB e do Atlas Device SDK.
Tipos de coleção
Atualmente, o Edge Server não oferece suporte a coleções de séries temporais.
Quando você cria um serviço de Edge Server , criamos esquemas automaticamente para cada coleção em seu banco de banco de dados vinculado. Tentando usar o Edge Server com um banco de dados de dados que contém uma coleção de séries temporais gera um erro.
Para resolver esse erro, remova manualmente o esquema da coleção de séries temporais. Para obter informações sobre como remover o esquema, consulte Remover um esquema.
Agregação e operações CRUD
Atualmente, o Edge Server permite apenas um subconjunto de agregação MongoDB e operações CRUD . Para obter uma lista de operações suportadas, consulte Edge Server MongoDB API Suporte à do - Visualização.
Recursos do Atlas Device SDK
Atualmente, o Edge Server não oferece suporte à ingestão de dados.