问题标签 [krakend]

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 投票
1 回答
1308 浏览

javascript - KrakenD 的跨域读取阻塞 (CORB) 问题 - 来自 POST 的“应用程序/json”响应被 Chrome 拒绝

auth.js:84 跨域读取阻止 (CORB) 阻止了具有 MIME 类型 application/json的跨域响应http://myserver/auth 。

这也不适用于 Firefox,尽管 Firefox 错误消息更通用。奇怪的是,Firefox 的网络面板显示我想要的响应实际上得到了传递,浏览器只是不接受响应将其传递给我的 JavaScript 代码。

这是我krakend.json文件中的 CORS 设置:

这是被调用的特定端点:

我的 JavaScript 请求如下所示:

我想尝试将响应的内容类型更改为text/plain以防万一,但我目前无法访问生成该响应的代码,我也不知道这是否会有所帮助。

当我从 node.js 服务器或 Postman 之类的应用程序发出相同的请求时,一切都会正确返回,并且我想看到的标题应该足以让 CORS 开心(access-control-allow-credentials: true, access-control-allow-origin: *

0 投票
2 回答
3327 浏览

azure - 如何在 Azure Web App 中为容器装载 docker 卷?

我正在尝试在 Azure 应用服务中运行 KrakenD 映像。

KrakenD 需要将 json 配置文件 krakend.json 放入 /etc/krakend/ (KrakenD 镜像基于 Linux Alpine

我使用以下 docker-compose 文件为容器创建了 Web 应用程序:

添加了带有 blob 容器的存储帐户,其中上传了示例 kraken.json 文件 在此处输入图像描述

在应用程序配置中,我添加了一个路径映射,如下所示:

在此处输入图像描述

但看起来卷没有正确安装

2019-11-15 12:46:29.368 错误 - krakend_krakend_0_3032a936 的容器创建失败,出现 System.AggregateException,出现一个或多个错误。(Docker API 响应状态码=InternalServerError, response={"message":"invalid volume specification: ':/etc/krakend'"})(Docker API 响应状态码=InternalServerError, response={"message":"无效的卷规范:':/etc/krakend'"}) InnerException:Docker.DotNet.DockerApiException,Docker API 响应状态码=InternalServerError, response={"message":"无效的卷规范:':/etc/krakend' "}

2019-11-15 12:46:29.369 错误 - 多容器单元未成功启动

附加问题

  1. 存储挂载中的挂载路径是什么意思?- 我把值/krankend放在那里

  2. 卷定义在他们指定为的文档中以 ${WEBAPP_STORAGE_HOME} 开头

    卷: - ${WEBAPP_STORAGE_HOME}/site/wwwroot:/var/www/html

所以我以此类推并尝试了所有3种可能的路径

但没有运气 - 仍然收到错误

解析配置文件时出错:'/etc/krakend/krakend.json'(打开):没有这样的文件或目录

0 投票
2 回答
9211 浏览

microservices - 与Kong相比,Krakend有多好?

我被困在从下面提到的三个 API 网关中选择一个 API 网关:

  1. KrakenD ( https://www.krakend.io/ )
  2. 孔 ( https://konghq.com/kong/ )
  3. Spring Cloud 网关 ( https://cloud.spring.io/spring-cloud-gateway/reference/html/ )

我的要求是:

  1. 良好的性能,必须具备大部分 API 网关功能。
  2. 支持聚合来自两个不同微服务 API 的数据。

从功能列表和性能方面来看,它们三个看起来都不错。我正在考虑放宽第二个要求,因为我不确定这是否是一个好习惯。

0 投票
2 回答
1252 浏览

api-gateway - krakend api 网关恐慌:“新路径中的 X 与现有前缀 Z 中的现有通配符 Y 冲突”

我有两个 Web 服务,我想使用 krakend API 网关管理两个由前缀分隔的端点。

下面是我的配置:

当我运行它时,会发生错误:

据我了解,{entityID}第一个端点上的似乎与第二个端点上的冲突/member/。此错误是预期行为还是我的配置文件有任何问题?

0 投票
1 回答
1141 浏览

api - 如何配置 Krakend 使其按原样返回 http 重定向响应而不是遵循 http 重定向?

我目前正在使用 Krakend ( https://krakend.io ) API Gateway 将请求代理到我的后端服务。我的后端服务 API 响应之一是带有 http 303 的重定向响应。重定向响应如下所示:

问题是,Krakend 并没有按原样返回 http 303 响应给客户端(带有位置响应标头) ,而是遵循 http 重定向并返回重定向 Url 的响应,即https://的 html 响应www.detik.com/

我当前的 krakend 配置如下所示:

那么如何让 krakend 将原始的 http 303 响应从我的后端服务返回到客户端?

谢谢你

0 投票
1 回答
68 浏览

krakend - 是否可以使用 KrakenDAPI 网关发布 API?KrakenDAPI 网关如何支持 API 密钥?

是否可以使用 krakenD API 网关发布 API?KrakenD API 网关如何支持 API 密钥?

0 投票
1 回答
357 浏览

go - KrakenD 插件读取配置设置

我用 GO 语言为 KrakenD Gateway 编写了一个简单的服务器插件。它在路由开始之前注入代码。
我正在尝试从我的配置中读取配置设置,krakend.json以便在启动时将设置传递给我的插件。下面我以设置mysetting为例(请看注释之间的代码HERE THE READ OF MY SETTING STARTS/ENDS)。

如何使用mysetting插件内部配置的值?

这是我在启动时krakend.json用作-c参数的配置文件:

这是 registerHandlers 函数的代码:

0 投票
1 回答
444 浏览

swagger - 有人将 Swagger UI 与 Kraken D 集成了吗?在社区版本中没有这样的选项可用

由于 krakend.json 不是 swagger 理解的类型。发生以下错误:

错误:文档必须是有效的 OpenAPI 3.0.0 定义

有没有其他方法可以为 krakenD 生成文档

0 投票
1 回答
824 浏览

go - 用作 go 库时如何启用 krakenD 的灵活配置

我使用了以下代码,但无法弄清楚如何启用https://www.krakend.io/docs/configuration/flexible-config/文档中提到的 krakenD 灵活配置。通过在运行代码之前设置环境变量并直接导入 github.com/devopsfaith/krakend-flexibleconfig 尝试了几种方法。但没有什么对我有用。谁能帮我解决这个问题?

错误消息是:'configuration.json': invalid character '{' looking for beginning of object key string, offset: 55, row: 3, col: 12 exit status 1 configuration.json 在下面。并且设置的环境变量是FC_ENABLE=1 \ FC_SETTINGS="$PWD/config/settings"

0 投票
0 回答
187 浏览

architecture - 如何在 krakend-amqp 中实现 rpc,或者如何通过 krakend 中的队列根据请求向客户端返回响应?

谁能帮我在 krakend 中设置 rabbitmq,当我尝试从队列中获取 kraken 中的消息并将其传递给客户端时,我遇到了一个大问题?

方案如下:

  1. 客户端-> API 网关(krakend)-> 队列(rabbitmq)-> 服务

回答时反之亦然:

  1. 服务 -> 队列 (rabbitmq) -> API 网关 (krakend) -> 客户端

例如,我们收到一个来自客户端的请求—— “从某个服务获取产品列表”api 网关krakend)接受它并将其发送到队列rabbitmq),最后,监听的服务queue接收消息并发送产品列表以响应另一个queue,并且kraken应该将这些数据传输到客户端(这里我不知道kraken应该如何将数据传输到我们的客户端)。

链接到文档https://www.krakend.io/docs/backends/amqp/

我尝试通过两种方式实现这一点,但没有得到我需要的结果

第一种方式

  1. 我的生产者(在这里我得到带有 url 参数的请求帖子。Reply_to 参数是新队列的名称,我将在其中等待 krakend 的答案)在这里我将请求放在队列中。
  1. 我的消费者在这里我想为一个新队列提供一个名称和路由,以便创建它并开始监听(消费)并根据请求向客户端提供数据

第二种方式


使用 amqp(rabbitMQ) 在 krakend 中实现客户端和服务器之间交换的正确方法是什么?

谢谢您的帮助。