如何在现有的spring boot项目上设置aws lambda?
我想在现有的Spring boot项目中配置aws lambda。在我的项目中,我使用lombok、kafka consumer和microservice。我遵循以下步骤: 我添加了依赖项:如何在现有的spring boot项目上设置aws lambda?,spring,spring-boot,deployment,aws-lambda,Spring,Spring Boot,Deployment,Aws Lambda,我想在现有的Spring boot项目中配置aws lambda。在我的项目中,我使用lombok、kafka consumer和microservice。我遵循以下步骤: 我添加了依赖项: <dependency> <groupId>com.amazonaws.serverless</groupId> <artifactId>aws-serverless-java-container-spring<
<dependency>
<groupId>com.amazonaws.serverless</groupId>
<artifactId>aws-serverless-java-container-spring</artifactId>
<version>[0.1,)</version>
</dependency>
com.amazonaws.serverless
aws无服务器java容器spring
[0.1,)
我对此步骤有一些问题:
@ComponentScan
并对所有类使用@Import
。这意味着如果我有10个控制器、4个服务类和2个存储库类,那么我们需要在@Import
中添加所有这些类实际上,我在这方面是新手。有人能帮我做一些简单的步骤吗?lambda仍然可以使用
@ComponentScan
,但是冷启动将花费更长的时间,因为教程中提到了所有类的扫描。您可以阅读更多关于java冷启动的信息,例如这里(请参阅“冷启动说明”)简而言之,当AWS Lambda不将容器与函数/应用程序一起重用时,它会启动应用程序并在执行@ComponentScan
时扫描所有类。使用@Import
可以避免此扫描,从而加快冷启动速度
您还可以检查此软件包的代码示例不清楚您在问什么。您是否试图将整个Spring Boot应用程序部署到AWS Lambda?我们是否需要将
输出.SpringBootPetStoreApi.Value
放在sam.yml文件中?sam.yaml文件很重要?在我的应用程序中,我没有API,但有kafka消费者。如果我们有多控制器,我们必须将@EnableWebMvc
放在所有控制器中?您能为我提供带有服务和存储库的mulliple控制器的示例代码吗?您不需要输出
部分,以防您不打算在其他模板中重用此模板中的任何资源。因为您有一个Kafka消费者,那么您可能需要uld希望通过环境参数将连接配置传递给lambda。请检查此文档以供参考,并在lambda定义中使用,如环境:变量:ENV_VAR_NAME:“value”
(也可以从硬编码值开始)。