问题标签 [ocelot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
85 浏览

c# - Asp.net core Identity 不适用于微服务

我正在尝试使用微服务实现 Asp.net 核心身份。我为身份创建了一个微服务。迁移身份并创建表。我创建了另一个项目来显示来自微服务的值。我成功地使用微服务获取和发布值。但是在将值发布到身份微服务时,错误显示 StatusCode 404 Not found。

下面是Identity微服务中通过调用identity来消费Web API的代码

下面是身份 API 控制器的 Post 方法

下面是身份 API 的 ocelot.json API geteway 代码

0 投票
1 回答
448 浏览

c# - 使用高级 Ocelot 请求聚合时,聚合器得到空响应

我的 ocelot 配置如下所示(仅相关部分):

聚合器暂时定义如下:

现在,如果我在两个下游服务中都设置了断点,那么当我调用"/api/services/{partnerId}?pageNo={pageNo}&pageSize={pageSize}". 问题是两个响应都是 404(即使 api 网关控制台记录 200 OK 响应也是正确的,因为两个断点都被命中并且服务正在返回数据)。如果我检查HttpContexts 传递给我的聚合器,我可以看到请求对象包含完全错误的地址。看起来好像 Ocelot 正确地调用了我的端点,但同时调用了一些不存在的端点并将它们的结果传递给我的聚合器。有任何想法吗?

编辑:

我可以在 HttpContext 的 Items 属性中看到我的服务响应。该死,这看起来真的像是图书馆作者方面的一些严重错误,还是设计使然?

0 投票
2 回答
805 浏览

kubernetes - 微服务 API 网关和 Identity Server 4 kubernates

我有微服务和 SPA 应用程序。它们都使用 docker compose 在 docker 上运行。我有 ocelot api 网关。但是网关知道微服务的 IP 地址或容器名称,以便访问。我在 ocelot 应用程序中添加了一个聚合器服务。我可以使用 ips 从聚合器服务访问所有服务。

但我想移动 kubernates。我可以扩展服务。没有静态ip。我该如何配置 .

我有身份服务。此服务知道客户端 IP 地址。又是同样的问题。

我搜索了几个小时。我找到了一些关键词。特使、入口、领事、豹猫。有人可以解释这些事情吗?

0 投票
2 回答
198 浏览

c# - "Configuration config = new Configuration": 'Configuration' 是一个命名空间,但用作类型

.net 非常新,这似乎是一个简单的问题。

试图从 Jaeger 网站上获取此代码:https ://ocelot.readthedocs.io/en/latest/features/tracing.html

在 ConfigureServices 下的 startup.cs 文件中。我已经添加了正确的引用,但出现以下错误:

Visual Studio 一直在抱怨:

“配置”是一个命名空间,但用作类型

关于如何修复的任何想法。

到目前为止,这是我在启动时所拥有的:

0 投票
0 回答
170 浏览

azure-ad-b2c - 使用 Azure B2C 配置 Ocelot API 网关

尝试将身份验证添加到 Ocelot API 网关时遇到了一些问题。项目正在使用 Microsoft.Identity.Web 运行 .netcore 3.1,因为这应该是 MS auth 的新共同点。

Azure B2C 已设置,我能够根据身份验证代码检索身份验证代码和持有者令牌。

然后用 API 尝试了令牌,但 Ocelot 一直拒绝。

我发现 AzureAD 和 AzureAdB2C 与 Ocelot 结合使用了一些不同的配置,但不确定是 up2date。

据我所见,这个调用应该足以配置

关于组合 Ocelot 和 Azure B2C 的文档似乎最近没有更新。感谢所有帮助,谢谢。

0 投票
1 回答
1812 浏览

asp.net-core - ASP.NET Core 3.1 中的 Ocelot API Gateway 自定义聚合器问题

我在 ASP.NET 中使用 Ocelot 实现自定义聚合器,它在 Startup.cs Ocelot 中间件中引发错误。但是,这两个微服务都可以正常工作并独立获取数据。

当我从我的 API Gateway 调用它们时,它会抛出错误。

在此处输入图像描述

启动.cs

这是我的 ocelot.json 文件,用于不同微服务的路由。

豹猫.json

我的自定义聚合器类

MyAggregator.cs

0 投票
1 回答
236 浏览

asp.net-core - 如何使用 Ocelot 添加条件路由?

我有一个 Web API,它有两个端点:

  1. /租户1/xxx
  2. /租户2/xxx

Web API 为多个租户提供服务,并作为单个实例托管。现在我必须将这个 Web API 公开给外部使用,来自第三方,他们不需要知道他们应该调用哪个租户,相反,他们调用 /api/dosomething (另一个 Web API),并在那个 API 内部,我将查看参数并决定我应该重新路由哪个租户。我使用 Ocelot 作为 API 网关,但在文档上搜索我找不到条件路由。谁能帮我这个?

0 投票
0 回答
226 浏览

c# - 大摇大摆的 Ocelat api 网关文档

我开发了一个基于微服务(11 个微服务)的项目并用于Ocelatapi 网关,但我正在努力生成微服务 api 文档,Ocelat说使用这种方式通过在网关项目中创建 swagger json 文件并添加所有 api 端点来生成文档:

但是每次更改我的微服务 api 时,我都必须编辑此文件并再次部署网关项目,但我想自动生成 api 网关文档。

我已经阅读了这个存储库MMLib.SwaggerForOcelot但我认为应该有另一种更好的方法。

我正在使用 .net core 3.1 和 Swashbuckle.AspNetCore 5.4.1。

0 投票
0 回答
193 浏览

windows - 无法在 Windows 上的 dockerized 服务上分配请求的地址

我需要帮助。

我收到 SocketException:无法分配请求的地址。当我尝试通过改装通过 serviceB 访问 serviceA 时会发生这种情况。如果在 IIS 或 Visual Studio 调试器中运行其中一项服务,一切正常。但是当我在 docker 容器中运行它们时,系统会抛出该错误。

使用 Ocelot 时也会发生这种情况。如果网关服务在 IIS 上或在调试器中运行(与其他服务分开)它可以工作,但是当我将它与其他服务一起放入容器时,我得到了错误。

会是什么呢?

WIN 10
VS 2019/VS Code
Docker 桌面
WEB API CORE 3

改装 - https://github.com/reactiveui/refit
Ocelot - https://github.com/ThreeMammals/Ocelot

谢谢

0 投票
1 回答
250 浏览

.net-core - Ocelot Gateway Aggregation:当每个 API 有不同的 Query String 参数时

我正在研究微服务,我想聚合来自具有不同查询参数的多个 Get 调用的数据。例如

  1. /api/用户/客户?clientId =489842&& isClient =true
  2. /api/预订/预订?clientId =489842& FromDate =20201106& ToDate =20210106
  3. /api/帐户/薪水?clientId =489842&=03&=2020

这样做的解决方案是什么?我找到的唯一解决方案是所有 API 都需要单个/相同的查询参数。