bcd*_*bcd 5 aws-lambda quarkus
文档显示公开的处理程序(通过打包io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest的应用程序)是通过quarkus.lambda.handler在application.properties. 但是就我而言,我想从同一项目部署多个处理程序。
有谁知道一种方法,或者是否有可能从 quarkus-lambda 项目中公开多个处理程序?
编辑:阅读完https://github.com/quarkusio/quarkus/blob/master/extensions/amazon-lambda/runtime/src/main/java/io/quarkus/amazon/lambda/runtime/AmazonLambdaRecorder.java#L89后现在看来确实不可能,对吗?
现在可以通过QUARKUS_LAMBDA_HANDLER为每个 lambda 函数设置环境变量来实现这一点。该环境变量将quarkus.lambda.handler在application.properties.
例如,如果您定义了多个处理程序,如下所示:
@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");
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2557 次 |
| 最近记录: |