Aws lambda Kong lambda插件-正在删除相关id

Aws lambda Kong lambda插件-正在删除相关id,aws-lambda,kong,Aws Lambda,Kong,所以我使用kong作为API网关。我在aws上有一个简单的lambda函数。我能够看到来自aws lambda函数的响应,但是没有相关id。我已经将相关id插件设置为全局。我想澄清一下为什么lambda插件没有在原始响应的头中添加相关id exports.handler = async (event) => { // TODO implement const response = { statusCode: 200, body: JSON.s

所以我使用kong作为API网关。我在aws上有一个简单的lambda函数。我能够看到来自aws lambda函数的响应,但是没有相关id。我已经将相关id插件设置为全局。我想澄清一下为什么lambda插件没有在原始响应的头中添加相关id

exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify(event.request_headers),
    };
    return response;
};
My kong.yaml

_format_version: "1.1"
routes:
- name: lambda1
  paths:
  - /lambda1
  path_handling: v0
  preserve_host: false
  protocols:
  - http
  - https
  regex_priority: 0
  strip_path: true
  https_redirect_status_code: 426
  plugins:
  - name: aws-lambda
    config:
      aws_key: XXXXXXXXXXXXXXXXXXXXXXX
      aws_region: us-east-1
      aws_secret: XXXXXXXXXXXXXXXXXXXXXXXXx
      awsgateway_compatible: false
      forward_request_body: true
      forward_request_headers: true
      forward_request_method: false
      forward_request_uri: false
      function_name: kong-lambda-plugin
      host: null
      invocation_type: RequestResponse
      is_proxy_integration: false
      keepalive: 60000
      log_type: Tail
      port: 443
      proxy_scheme: null
      proxy_url: null
      qualifier: null
      skip_large_bodies: true
      timeout: 60000
      unhandled_status: null
    enabled: true
    protocols:
    - grpc
    - grpcs
    - http
    - https
plugins:
- name: correlation-id
  config:
    echo_downstream: false
    generator: uuid#counter
    header_name: correlation-id
  enabled: true
  protocols:
  - grpc
  - grpcs
  - http
  - https

你是对的问题来自于插件的优先级

CorrelationIdHandler.PRIORITY=1
AWSLambdaHandler.PRIORITY=750
Aws Lambda插件正在打破插件链,就像在处理程序阶段一样

return kong.response.exit(状态、内容、标题)
因此其他插件无法使用

您可以创建一个自定义correlationId插件并更改优先级。有一个工具可以为您处理此问题


您还可以创建一个路由来添加调用另一个路由的相关id,执行lambda调用

  • 我创建了由上面的脚本生成的.rock文件
  • 因为我使用的是一个dockerized版本的Kong,所以我将文件提交给了我的Kong docker主机
  • 使用luarocks命令在my Kong docker主机中安装插件
  • 将插件添加到我的“kong.conf”文件中
  • 将其添加到lambda路线中,效果极佳

  • 你能分享一个最小的配置来检查你做了什么吗?我添加了我的kong.yaml,我的假设是aws lambda插件的优先级在correlation id pluginDon之前“不要和别人分享你的秘书啊,谢谢,这很有道理。我来试一试,告诉你怎么回事!成功了!所以我使用优先级更新程序来更新相关id插件。它执行得很漂亮。谢谢