JAR νμΌμ λ컀 μ΄λ―Έμ§λ‘ λ³νν 컨ν μ΄λλ₯Ό ec2μ λμ λλ° κ³ΌκΈλμ΄μ λλ€ μλΉμ€λ‘ λ§μ΄κ·Έλ μ΄μ μ κ³ λ―Όνκ² λμλ€.
JAR νμΌ -> S3 μ λ‘λ -> lambda code
μ©λμ μ νλ°κ³ μΆμ§ μμμ μμ μμλλ‘ ν΄λ³΄κ² λ€!!
Lambda cold startλ₯Ό ν΄κ²°νκΈ° μν΄μλ λλ€ μ»¨ν μ΄λ μ΄λ―Έμ§λ‘ μμ±νλ©΄ μ λλ€. λν JAVA λ°νμλ§μ μ§μνλ€.
μ½νλ¦°μΌλ‘ μ§μ¬μ§ μ½λμκΈ° λλ¬Έμ μλ° κΈ°λ°μ 곡μλ¬Έμλ₯Ό μ°Έκ³ νλ€.
https://docs.aws.amazon.com/lambda/latest/dg/java-package.html
dependencies {
implementation 'com.amazonaws:aws-lambda-java-core:1.2.2'
implementation 'com.amazonaws:aws-lambda-java-events:3.11.1'
runtimeOnly 'com.amazonaws:aws-lambda-java-log4j2:1.5.1'
}
build.gradle νμΌμ
μμ‘΄μ±μ μΈ κ°μ μμ‘΄μ±μ μΆκ°ν΄μ€λ€
task buildZip(type: Zip) {
into('lib') {
from(jar)
from(configurations.runtimeClasspath)
}
}
μλ°, μ€νλ§μ΄λΌλ©΄ κ·Έλλ‘ μ¬μ©νλ©΄ λκ³ μ½νλ¦°μ΄λΌλ©΄ μλ μ½λλ‘ λ°κΏμ€λ€
tasks.register<Zip>("buildZip") {
from(tasks.getByName<JavaCompile>("compileJava"))
from(tasks.getByName<ProcessResources>("processResources"))
archiveFileName.set("lambda.zip")
destinationDirectory.set(file("$buildDir/dist"))
duplicatesStrategy = DuplicatesStrategy.WARN
into("lib") {
from(configurations.getByName("runtimeClasspath").files)
}
}
μ½λΌλ¦¬λ₯Ό κΌ λλ €μ μ μ©μ ν΄μΌνλ€
νΈλ€λ¬ μμ νκΈ° org.springframework.cloud.function.adapter.aws.FunctionInvoker::handleRequest