Назначьте CosmosClientOptions.ApplicationRegion на основе местоположения пользователя в проекте веб-сборки Blazor - PullRequest
0 голосов
/ 09 июля 2020

Я использую Microsoft. Azure .Cosmos.Client для подключения базы данных космоса из проекта веб-сборки Blazor. Моя база данных Cosmos имеет несколько регионов чтения, т.е. Южная Корея (базовое местоположение) и Восточная Япония (область чтения).

Я хочу, чтобы мое клиентское приложение Blazor загружало данные из ближайшего местоположения базы данных Cosmos. Для этого я надеялся, что база данных космоса автоматически перенаправит запрос на ближайший сервер, но всегда загружала данные из Южной Кореи. Чтобы решить эту проблему, я попытался указать свойство CosmosClientOptions.ApplicationRegion с фиксированным значением, как в приведенном ниже коде:

            CosmosClientOptions clientOptions = new CosmosClientOptions()
            {
                ConnectionMode = ConnectionMode.Gateway,
                ApplicationRegion = Regions.JapanEast // need to set this property dynamically based on users location
                
                //ApplicationPreferredRegions = new List<string>() { Regions.JapanEast, Regions.KoreaSouth } //Also tried this, but always loading from Japan east even if accessed from South Korea
            };

            client = new CosmosClient(Credentials.EndPoint, Credentials.ResourceToken, clientOptions);

В этом случае данные всегда загружаются с сервера Japan East. Я также попытался установить свойство LimitToEndpoint = true, но не смог прояснить его.

Есть предложения?

1 Ответ

0 голосов
/ 10 июля 2020

Клиент Cosmos не имеет никаких сетевых показателей, которые автоматически сообщают ему, к какому региону нужно подключиться ближе всего. Вы должны указать это значение. Предпочтительные регионы - это просто массив регионов, к которым необходимо подключиться, если регион станет недоступным.

Заказчики часто указывают значение для имени региона в региональном развертывании приложения. Поэтому вам следует обратиться к своим сценариям развертывания, чтобы передать это значение.

...