根据用户在 Blazor Web 程序集项目中的位置分配 CosmosClientOptions.ApplicationRegion
Assign CosmosClientOptions.ApplicationRegion based on user's location in Blazor web assembly project
我正在使用 Microsoft.Azure.Cosmos.Client 从 blazor web assembly 项目连接 cosmos 数据库。我的 Cosmos 数据库有多个读取区域,即韩国(基准位置)和日本东部(读取区域)。
我希望我的 blazor 客户端应用程序从最近的 cosmos 数据库位置加载数据。为此,我希望 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);
在这种情况下,它总是从日本东部服务器加载数据。我也尝试设置 LimitToEndpoint = true 属性 但无法让自己清楚地了解它。
有什么建议吗?
Cosmos 客户端没有任何网络指标可以自动告诉它最近的连接区域。您必须指定该值。首选区域只是一组要连接的区域,以便在某个区域不可用时按顺序连接。
客户通常在应用程序的区域部署中指定区域名称的值。所以你应该看看你的部署脚本来传递这个值。
我正在使用 Microsoft.Azure.Cosmos.Client 从 blazor web assembly 项目连接 cosmos 数据库。我的 Cosmos 数据库有多个读取区域,即韩国(基准位置)和日本东部(读取区域)。
我希望我的 blazor 客户端应用程序从最近的 cosmos 数据库位置加载数据。为此,我希望 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);
在这种情况下,它总是从日本东部服务器加载数据。我也尝试设置 LimitToEndpoint = true 属性 但无法让自己清楚地了解它。
有什么建议吗?
Cosmos 客户端没有任何网络指标可以自动告诉它最近的连接区域。您必须指定该值。首选区域只是一组要连接的区域,以便在某个区域不可用时按顺序连接。
客户通常在应用程序的区域部署中指定区域名称的值。所以你应该看看你的部署脚本来传递这个值。