标签: krakend

有没有办法在 krakend 端点配置中发送元数据?

我使用 Krakend 作为 API 网关,我的配置如下所示:

{
  "plugin": {
    "folder": "/etc/krakend/plugins/authenticator/",
    "pattern":".so"
  },
  "port": 8080,
  "extra_config": {
    "github_com/devopsfaith/krakend/transport/http/server/handler": {
      "name": "authenticator"
    }
  },

  "endpoints": [
    {
      "output_encoding": "no-op",
      "backend": [
        {
          "encoding": "no-op",
          "host": [
            "127.0.0.1:8080"
          ],
          "url_pattern": "/api/v1/address/{id}",
          "method": "GET"
        }
      ],
      "endpoint": "/api/v1/addresses/{id}",
      "method": "GET"
    }
  ],

  "name": "gateway",
  "timeout": "30s",
  "version": 2
}
Run Code Online (Sandbox Code Playgroud)

我想为每个端点传递一些元数据并在我的预定义插件中访问它。在这种情况下authenticator插件。

go api-gateway krakend

7
推荐指数
1
解决办法
401
查看次数

Krakend 与 Kong 相比有多好?

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

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

我的要求是:

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

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

microservices kong api-gateway spring-cloud-gateway krakend

5
推荐指数
1
解决办法
6657
查看次数

如何在 Azure Web App 中为容器安装 docker 卷?

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

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

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

version: "3"
services:
  krakend:
    image: devopsfaith/krakend:latest
    volumes:
      - ${WEBAPP_STORAGE_HOME}/site/krakend:/etc/krakend
    ports:
      - "8080:8080"
    restart: always
Run Code Online (Sandbox Code Playgroud)

添加了带有 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,响应={"message":"无效的卷规范:':/etc/krakend' "}

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

其他问题

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

  2. 他们将其指定为的文档中,卷定义以 …

azure azure-storage docker-compose krakend

3
推荐指数
1
解决办法
2506
查看次数

将 KrakenD 与本地 Nodejs 服务器结合使用

我的本地计算机上有一台正在运行的 Nodejs 服务器(带有一个 API)。

\n

我已经使用 krakend 创建了新的 docker 容器

\n
docker run -p 8080:8080 -v $PWD:/etc/krakend/ devopsfaith/krakend run --config /etc/krakend/krakend.json \n
Run Code Online (Sandbox Code Playgroud)\n

虽然,我必须对上面的命令进行一些更改,因为我在 Windows 上工作。

\n

我创建了一个 krakend.json 文件,它的内容是

\n
{\n  "version": 3,\n  "timeout": "3s",\n  "cache_ttl": "300s",\n  "port": 8080,\n  "default_hosts": ["http://localhost:3001"],\n  "endpoints": [\n    {\n      "endpoint": "/contacts",\n      "output_encoding": "json",\n      "extra_config": {\n        "qos/ratelimit/router": {\n          "max_rate": 5000\n        }\n      },\n      "backend": [\n        {\n          "host": [\n          "http://localhost:3001", \n          "http://cotacts:3001"\n          ],\n          "url_pattern": "/contacts",\n          "is_collection": "true",\n          "encoding": "json",\n          "extra_config": {\n            "backend/http": {\n              "return_error_details": "backend_alias"\n            }\n          }\n …
Run Code Online (Sandbox Code Playgroud)

api node.js krakend

2
推荐指数
1
解决办法
1781
查看次数