Rumah >Java >javaTutorial >Cara membuat, menerbitkan dan menggunakan lapisan untuk fungsi Java Lambda
Sebagai persediaan kepada penyiasatan tentang cara penggunaan lapisan Lambda dengan fungsi Lambda dan masa jalan Java 21 mempengaruhi masa sejuk (dengan dan tanpa mendayakan SnapStart) dan masa mula hangat, saya ingin memberikan pengenalan tentang cara mencipta, terbitkan dan gunakan lapisan untuk Java (21) fungsi Lambda dalam templat SAM.
Lapisan Lambda ialah arkib fail .zip yang mengandungi kod atau data tambahan. Lapisan biasanya mengandungi kebergantungan perpustakaan, masa jalan tersuai atau fail konfigurasi.
Terdapat beberapa sebab mengapa anda mungkin mempertimbangkan untuk menggunakan lapisan:
Demi penerokaan kami akan menggunakan aplikasi sampel untuk mencipta lapisan Lambda dengan Java 21 runtime pembungkusan kebergantungan berikut ke dalam lapisan :
Untuk mencipta lapisan Lambda kita perlukan:
Lapisan Lambda memerlukan kebergantungan untuk dibina ke dalam satu uber-jar. Untuk tujuan ini, kami menggunakan dua pemalam dalam pom.xml. Maven-compiler-plugin menyusun kod sumber. Maven-shade-plugin membungkus artifak kami ke dalam satu uber-jar. Kemudian kita perlu melaksanakan
mvn clean package
untuk membina aplikasi kami.
Apabila kami menambah lapisan pada fungsi Lambda dengan masa jalan Java, Lambda memuatkan kandungan lapisan ke dalam direktori /opt bagi persekitaran pelaksanaan tersebut. Untuk setiap masa jalan Lambda, pembolehubah PATH sudah termasuk laluan folder tertentu dalam direktori /opt. Untuk memastikan pembolehubah PATH mengambil kandungan lapisan kami, fail .zip lapisan kami harus mempunyai kebergantungan dalam laluan folder berikut: java/lib
Sebagai contoh, fail .zip lapisan yang terhasil yang kami buat dengan aplikasi sampel kami mempunyai struktur direktori berikut:
aws-pure-java-21-common-lambda-layer-content.zip └ java └ lib └ aws-pure-java-21-common-lambda-layer-1.0.0-SNAPSHOT.jar
yang boleh dicapai dengan melaksanakan arahan berikut pada Linux:
Untuk menerbitkan lapisan Lambda ini dengan masa jalan Java 21 kita perlu melaksanakan arahan berikut dengan AWS CLI v2:
aws lambda publish-layer-version --layer-name aws-pure-java-21-common-lambda-layer --zip-file fileb://aws-pure-java-21-common-lambda-layer-content.zip --compatible-runtimes java21
Dengan parameter tambahan --compatible-architectures "x86" kita boleh mentakrifkan seni bina perkakasan yang serasi seperti x86 (lalai) atau arm64.
Memandangkan respons AWS akan menyampaikan lapisan Lambda ARN yang perlu kami rujuk kemudian, yang kelihatan serupa dengan yang ini:
arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:layer:aws-pure-java-21-common-lambda-layer:1
Sila ambil perhatian bahawa parameter terakhir ialah versi lapisan Lambda yang sentiasa 1 apabila kami mula-mula menerbitkan lapisan dan akan meningkat satu dengan kemas kini berikutnya bagi lapisan Lambda sedia ada.
Untuk melampirkan lapisan pada fungsi anda, kami boleh melakukan perkara berikut:
Type: AWS::Serverless::Function Properties: FunctionName: GetProductByIdWithPureJava21LambdaWithCommonLayer AutoPublishAlias: liveVersion Layers: - !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:layer:aws-pure-java-21-common-lambda-layer:1 Handler: software.amazonaws.example.product.handler.GetProductByIdHandler::handleRequest
In this article I gave an introduction about how to create, publish and use layers for Java 21 Lambda functions AWS CLI v2 and the SAM template. In the next article published under the AWS Lambda SnapStart series I'll explore how the usage of the (different) Lambda layers with function having Java 21 runtime affects the cold (with and without enabling SnapStart) and warm start times.
Atas ialah kandungan terperinci Cara membuat, menerbitkan dan menggunakan lapisan untuk fungsi Java Lambda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!