Я хотел бы развернуть свою java функцию на aws лямбда
Я взял эту документацию https://docs.aws.amazon.com/lambda/latest/dg/java-package.html
Это мой build.gradle
файл
plugins {
id 'java'
id 'org.jetbrains.kotlin.jvm' version '1.3.61'
}
group 'com.xxx'
version '1.0'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
implementation "org.jetbrains:annotations:16.0.2"
implementation 'com.amazonaws:aws-lambda-java-core:1.2.0'
implementation 'com.amazonaws:aws-lambda-java-events:2.2.7'
implementation 'com.google.code.gson:gson:2.8.6'
compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.5.2'
runtimeOnly 'com.amazonaws:aws-lambda-java-log4j2:1.1.0'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
jar {
manifest {
attributes 'Main-Class': 'Main'
}
}
task fatJar(type: Jar) {
manifest {
attributes 'Implementation-Title': 'Gradle Jar File Example',
'Implementation-Version': archiveVersion,
'Main-Class': 'Main'
}
baseName = project.name + '-all'
from sourceSets.main.output
dependsOn configurations.runtimeClasspath
from {
configurations.runtimeClasspath.findAll { it.name.endsWith('jar') }.collect { zipTree(it) }
}
with jar
}
task buildZip(type: Zip) {
manifest {
attributes (
'Implementation-Title': 'AWS Handler',
'Implementation-Version': archiveVersion,
'Main-Class': 'AWSHandler'
)
}
from compileJava
from processResources
into('lib') {
from configurations.runtimeClasspath
}
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
Итак, я запускаю gradle buildZip
, чтобы построить свой zip, мой класс aws, реализующий RequestHandler
, находится в src/main/java/AWSHandler.java
Как только команда завершилась успешно, у меня есть 710MB почтовый файл, это огромный !!! Когда я распаковываю файл, я вижу, что есть много библиотек, которые поддерживают множество ОС
![enter image description here](https://i.stack.imgur.com/QtDdl.png)
В процессе выполнения это делает c https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html кажется, что функции java8 работают на Amazon Linux
Так что я могу почистить свой zip, чтобы получить только эту ОС
Могу ли я сделать это с помощью gradle или мне нужно создать дополнительный скрипт очистить мой файл?