香港+;Lambda插件-如何启用重试?

香港+;Lambda插件-如何启用重试?,lambda,kong,Lambda,Kong,我有一个Kong服务,它使用AWS Lambda插件调用函数(sync-RequestResponse)。 据我所知,由于Lambda总是返回OK,因此无法启用重试。 即使使用转换插件生成实际状态(从响应json中的status属性读取),我也无法使重试工作 是否有任何插件支持Lambda调用的重试?或者我应该如何继续实现这一点?据我所知,Kong Lambda插件不支持重试,尽管此用例有一个解决方法 可以创建一个内部路由,执行Lambda调用(指定了路由id和服务id的Lambda插件)和另一

我有一个Kong服务,它使用AWS Lambda插件调用函数(sync-
RequestResponse
)。 据我所知,由于Lambda总是返回
OK
,因此无法启用重试。 即使使用转换插件生成实际状态(从响应json中的
status
属性读取),我也无法使重试工作


是否有任何插件支持Lambda调用的重试?或者我应该如何继续实现这一点?

据我所知,Kong Lambda插件不支持重试,尽管此用例有一个解决方法

可以创建一个内部路由,执行Lambda调用(指定了路由id和服务id的Lambda插件)和另一个将从外部作为目标的路由,该路由将启用重试并调用内部路由。以下是我如何做到这一点的示例:

服务:

{
  "host": "localhost",
  "created_at": 1555418486,
  "connect_timeout": 30000,
  "id": "3c31fc3f-74f1-423f-8e5a-751668bed878",
  "protocol": "http",
  "name": "test",
  "read_timeout": 10000,
  "port": 8000,
  "path": "/kong-internal/",
  "updated_at": 1555418486,
  "retries": 3,
  "write_timeout": 10000,
  "tags": null,
  "extras": {}
}
面向公众的路线:

{
  "updated_at": 1555418553,
  "created_at": 1555418487,
  "strip_path": true,
  "snis": null,
  "hosts": [
    "test.com"
  ],
  "name": "EXTERNAL_route",
  "methods": [],
  "sources": null,
  "preserve_host": true,
  "regex_priority": 1,
  "service": {
    "id": "3c31fc3f-74f1-423f-8e5a-751668bed878"
  },
  "paths": [],
  "destinations": null,
  "id": "0917748d-24eb-42aa-b83e-7111ef4de9b4",
  "protocols": [
    "https",
    "http"
  ],
  "tags": null
}
内部路由(具有lambda插件):

尽管仍然存在一个问题,
strip\u path
不适用于lambda函数,因此lambda应该手动从path中删除
/kong internal/

注意:如果您的lambda添加
x-amz-log-result
头,我建议将
response\u transform
插件添加到内部路由以删除它,它可能会变得非常大,并导致调用失败


编辑:原来Kong并不喜欢aws的超时状态,所以在服务上有较高的连接超时和相对较低的读写超时是有意义的,然后Kong的内部机制会进行重试。

有趣的方法,会尝试一下。@dmmd在最初的回答中连接超时被错误地设置为10秒,当你尝试这种方法时,请尝试到30秒。
{
  "updated_at": 1555418487,
  "created_at": 1555418487,
  "strip_path": true,
  "snis": null,
  "hosts": [
    "test.com"
  ],
  "name": "INTERNAL_route",
  "methods": null,
  "sources": null,
  "preserve_host": false,
  "regex_priority": null,
  "service": {
    "id": "3c31fc3f-74f1-423f-8e5a-751668bed878"
  },
  "paths": [
    "/kong-internal/"
  ],
  "destinations": null,
  "id": "e5981f16-d44c-4d19-b706-cdc3173db412",
  "protocols": [
    "http"
  ],
  "tags": null
}