Deploy a Spring Boot Application to AWS Lambda with an API Gateway

D:\workspace\java-lambda\src
assembly/
└── bin.xml
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
    <id>lambda-package</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <!-- copy runtime dependencies with some exclusions -->
        <fileSet>
            <directory>${project.build.directory}${file.separator}lib</directory>
            <outputDirectory>lib</outputDirectory>
            <excludes>
                <exclude>tomcat-embed*</exclude>
            </excludes>
        </fileSet>
        <!-- copy all classes -->
        <fileSet>
            <directory>${project.build.directory}${file.separator}classes</directory>
            <includes>
                <include>**</include>
            </includes>
            <outputDirectory>${file.separator}</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

進入 Maven 官方網站

下載 Binary zip archiveapache-maven-3.9.9-bin.zip),因為這是 Windows 版本的二進制執行檔

確保解壓縮後的目錄結構如下:

C:\Program Files\Apache\Maven\apache-maven-3.9.9\bin

環境變數設置 win + r + sysdm.cpl

# 命令提示字元 (cmd)
mvn -version
# 如果成功,會顯示:
Apache Maven 3.9.9...

進入你的專案目錄重新執行 Maven

mvn clean package

# 會看到 java-lambda-1.0-SNAPSHOT-lambda-package.zip
ls target


    Directory: D:\workspace3\java-lambda\target


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----          2/5/2025   3:54 PM                archive-tmp
d-----          2/5/2025   3:54 PM                classes                                                                                                                                                                          
d-----          2/5/2025   3:54 PM                generated-sources
d-----          2/5/2025   3:54 PM                generated-test-sources
d-----          2/5/2025   3:54 PM                lib
d-----          2/5/2025   3:54 PM                maven-status
d-----          2/5/2025   3:54 PM                surefire-reports
d-----          2/5/2025   3:54 PM                test-classes
-a----          2/5/2025   3:54 PM       15245005 java-lambda-1.0-SNAPSHOT-lambda-package.zip