问题标签 [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.
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: *
)
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 错误 - 多容器单元未成功启动
附加问题
存储挂载中的挂载路径是什么意思?- 我把值/krankend放在那里
卷定义在他们指定为的文档中以 ${WEBAPP_STORAGE_HOME} 开头
卷: - ${WEBAPP_STORAGE_HOME}/site/wwwroot:/var/www/html
所以我以此类推并尝试了所有3种可能的路径
但没有运气 - 仍然收到错误
解析配置文件时出错:'/etc/krakend/krakend.json'(打开):没有这样的文件或目录
microservices - 与Kong相比,Krakend有多好?
我被困在从下面提到的三个 API 网关中选择一个 API 网关:
- KrakenD ( https://www.krakend.io/ )
- 孔 ( https://konghq.com/kong/ )
- Spring Cloud 网关 ( https://cloud.spring.io/spring-cloud-gateway/reference/html/ )
我的要求是:
- 良好的性能,必须具备大部分 API 网关功能。
- 支持聚合来自两个不同微服务 API 的数据。
从功能列表和性能方面来看,它们三个看起来都不错。我正在考虑放宽第二个要求,因为我不确定这是否是一个好习惯。
api-gateway - krakend api 网关恐慌:“新路径中的 X 与现有前缀 Z 中的现有通配符 Y 冲突”
我有两个 Web 服务,我想使用 krakend API 网关管理两个由前缀分隔的端点。
下面是我的配置:
当我运行它时,会发生错误:
据我了解,{entityID}
第一个端点上的似乎与第二个端点上的冲突/member/
。此错误是预期行为还是我的配置文件有任何问题?
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 响应从我的后端服务返回到客户端?
谢谢你
krakend - 是否可以使用 KrakenDAPI 网关发布 API?KrakenDAPI 网关如何支持 API 密钥?
是否可以使用 krakenD API 网关发布 API?KrakenD API 网关如何支持 API 密钥?
go - KrakenD 插件读取配置设置
我用 GO 语言为 KrakenD Gateway 编写了一个简单的服务器插件。它在路由开始之前注入代码。
我正在尝试从我的配置中读取配置设置,krakend.json
以便在启动时将设置传递给我的插件。下面我以设置mysetting
为例(请看注释之间的代码HERE THE READ OF MY SETTING STARTS/ENDS
)。
如何使用mysetting
插件内部配置的值?
这是我在启动时krakend.json
用作-c
参数的配置文件:
这是 registerHandlers 函数的代码:
swagger - 有人将 Swagger UI 与 Kraken D 集成了吗?在社区版本中没有这样的选项可用
由于 krakend.json 不是 swagger 理解的类型。发生以下错误:
错误:文档必须是有效的 OpenAPI 3.0.0 定义
有没有其他方法可以为 krakenD 生成文档
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"
architecture - 如何在 krakend-amqp 中实现 rpc,或者如何通过 krakend 中的队列根据请求向客户端返回响应?
谁能帮我在 krakend 中设置 rabbitmq,当我尝试从队列中获取 kraken 中的消息并将其传递给客户端时,我遇到了一个大问题?
方案如下:
- 客户端-> API 网关(krakend)-> 队列(rabbitmq)-> 服务
回答时反之亦然:
- 服务 -> 队列 (rabbitmq) -> API 网关 (krakend) -> 客户端
例如,我们收到一个来自客户端的请求—— “从某个服务获取产品列表”,api 网关(krakend)接受它并将其发送到队列(rabbitmq),最后,监听的服务queue接收消息并发送产品列表以响应另一个queue,并且kraken应该将这些数据传输到客户端(这里我不知道kraken应该如何将数据传输到我们的客户端)。
链接到文档https://www.krakend.io/docs/backends/amqp/
我尝试通过两种方式实现这一点,但没有得到我需要的结果
第一种方式
- 我的生产者(在这里我得到带有 url 参数的请求帖子。Reply_to 参数是新队列的名称,我将在其中等待 krakend 的答案)在这里我将请求放在队列中。
- 我的消费者在这里我想为一个新队列提供一个名称和路由,以便创建它并开始监听(消费)并根据请求向客户端提供数据
第二种方式
使用 amqp(rabbitMQ) 在 krakend 中实现客户端和服务器之间交换的正确方法是什么?
谢谢您的帮助。