如何在现有的spring boot项目上设置aws lambda?

如何在现有的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<

我想在现有的Spring boot项目中配置aws lambda。在我的项目中,我使用lombok、kafka consumer和microservice。我遵循以下步骤:

我添加了依赖项:

    <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”
    (也可以从硬编码值开始)。