quarkus amazon-lambda-rest 的标头传播不起作用

Header propagation with quarkus amazon-lambda-rest not working

提问人:Venkit 提问时间:11/15/2023 更新时间:11/15/2023 访问量:40

问:

我在将quarkus java代码部署为本机构建时遇到了一个问题。我正在使用 java 17 和 quarkus bom 版本 3.5.1。当我尝试从本地环境尝试时,标头传播正在工作,但是当我尝试将本机构建部署到 lambda 时,它不起作用。我在这里错过了什么。

以下是 pom 依赖项

<dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-amazon-lambda-rest</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-jsonb</artifactId>
    </dependency>

以下是控制器代码

@Path(“/path")
@RegisterForReflection(serialization = true)
@Slf4j
public class Controller {

@Inject
Service service;

@POST
@Path(“/getHeader”)
public String getHeader(@HeaderParam(“firstHeader”) String headerField, RequestObject request) {
log.info("firstHeader: {}", headerField); // headerField is null
log.info("request name: {}", request.getName()); // this is working
return firstHeader;
}

我尝试了以下方法。

  1. 尝试使用拦截器查看标头是否正在传播。我只能看到 2 个标题字段。可见的标头字段是 localhost 和 transfer-encoding。
  1. 尝试实现自定义容器 Filter 类以查看标头是否正在传播。(ContainerRequestFilter)
java aws-lambda http-headers quarkus resteasy

评论

0赞 JCompetence 11/16/2023
你在 Lambda 面前有什么东西吗?例如,像 API 网关?
0赞 Venkit 11/17/2023
我有一个 ALB,路径通过它路由到 lambda 服务。ALB 上没有配置其他过滤器。如果我尝试使用 lambda 函数处理程序,它能够识别标头@JCompetence
0赞 Venkit 11/17/2023
找到根本原因,我错过了在 ec2 实例的目标组中启用多值标头。谢谢

答: 暂无答案