gpt4 book ai didi

aws-lambda - 公开/部署多个处理程序(quarkus-lambda)

转载 作者:行者123 更新时间:2023-12-05 03:53:05 26 4
gpt4 key购买 nike

documentation显示公开的处理程序(通过打包应用程序中的 io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest)是通过设置 quarkus.lambda.handler 来配置的应用程序属性。但是,就我而言,我想从同一个项目部署多个处理程序。

有没有人知道从 quarkus-lambda 项目中公开多个处理程序的方法,或者是否有可能?

编辑:通读后 https://github.com/quarkusio/quarkus/blob/master/extensions/amazon-lambda/runtime/src/main/java/io/quarkus/amazon/lambda/runtime/AmazonLambdaRecorder.java#L89现在看来这确实是不可能的,对吗?

最佳答案

现在可以通过为每个 lambda 函数设置 QUARKUS_LAMBDA_HANDLER 环境变量来实现。此环境变量将覆盖 application.properties 中的 quarkus.lambda.handler

例如,如果您定义了多个处理程序:

    @Named("Test")
public class TestLambda implements RequestHandler<InputObject, OutputObject> {

@Inject
ProcessingService service;

@Override
public OutputObject handleRequest(InputObject input, Context context) {
return new OutputObject().setRequestId("1").setResult("Test");
}

}

@Named("Sample")
public class SampleLambda implements RequestHandler<InputObject, OutputObject> {

@Inject
ProcessingService service;

@Override
public OutputObject handleRequest(InputObject input, Context context) {
return new OutputObject().setRequestId("2").setResult("Sample");
}
}

您可以使用以下 SAM 模板构建单个项目并部署多个功能。

    AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: AWS Serverless Quarkus - quarkus-amazon-lambda-common-deployment
Globals:
Api:
EndpointConfiguration: REGIONAL
BinaryMediaTypes:
- "*/*"

Resources:

TestFunction:
Type: AWS::Serverless::Function
Properties:
Handler: io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest
Runtime: java11
CodeUri: target/function.zip
MemorySize: 256
Timeout: 15
Policies: AWSLambdaBasicExecutionRole
Environment:
Variables:
QUARKUS_LAMBDA_HANDLER: Test
Events:
TestFunction:
Type: Api
Properties:
Path: /test
Method: get


SampleFunction:
Type: AWS::Serverless::Function
Properties:
Handler: io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest
Runtime: java11
CodeUri: target/function.zip
MemorySize: 256
Timeout: 15
Policies: AWSLambdaBasicExecutionRole
Environment:
Variables:
QUARKUS_LAMBDA_HANDLER: Sample
Events:
HelloWorld:
Type: Api
Properties:
Path: /sample
Method: get

关于aws-lambda - 公开/部署多个处理程序(quarkus-lambda),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61849837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com