Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sesuaikan serialisasi untuk fungsi Lambda Java
Runtime yang dikelola Lambda Java mendukung serialisasi khusus untuk acara JSON. Serialisasi khusus dapat menyederhanakan kode Anda dan berpotensi meningkatkan kinerja.
Kapan menggunakan serialisasi khusus
Ketika fungsi Lambda Anda dipanggil, data peristiwa input perlu dideserialisasi menjadi objek Java, dan output dari fungsi Anda perlu diserialisasi kembali ke format yang dapat dikembalikan sebagai respons fungsi. Runtime terkelola Lambda Java menyediakan kemampuan serialisasi dan deserialisasi default yang berfungsi dengan baik untuk menangani muatan peristiwa dari berbagai AWS layanan, seperti Amazon API Gateway dan Amazon Simple Queue Service (Amazon SQS). Untuk bekerja dengan peristiwa integrasi layanan ini dalam fungsi Anda, tambahkan dependensi aws-java-lambda-events
Anda juga dapat menggunakan objek Anda sendiri untuk mewakili peristiwa JSON yang Anda berikan ke fungsi Lambda Anda. Runtime terkelola mencoba membuat serial JSON ke instance baru objek Anda dengan perilaku defaultnya. Jika serializer default tidak memiliki perilaku yang diinginkan untuk kasus penggunaan Anda, gunakan serialisasi khusus.
Misalnya, asumsikan bahwa handler fungsi Anda mengharapkan Vehicle kelas sebagai input, dengan struktur berikut:
public class Vehicle { private String vehicleType; private long vehicleId; }
Namun, payload peristiwa JSON terlihat seperti ini:
{ "vehicle-type": "car", "vehicleID": 123 }
Dalam skenario ini, serialisasi default dalam runtime terkelola mengharapkan nama properti JSON cocok dengan nama properti kelas Java case unta (vehicleType,vehicleId). Karena nama properti dalam acara JSON tidak dalam camelcase (vehicle-type,vehicleID), Anda harus menggunakan serialisasi khusus.
Menerapkan serialisasi khusus
Gunakan Antarmuka Penyedia Layanan RequestHandler.
Untuk menggunakan serialisasi khusus dalam fungsi Lambda Java Anda
-
Tambahkan pustaka aws-lambda-java-core sebagai dependensi
. Pustaka ini mencakup CustomPojoSerializer antarmuka, bersama dengan definisi antarmuka lainnya untuk bekerja dengan Java di Lambda. -
Buat file bernama
com.amazonaws.services.lambda.runtime.CustomPojoSerializerdisrc/main/resources/META-INF/services/direktori proyek Anda. -
Dalam file ini, tentukan nama yang memenuhi syarat dari implementasi serializer kustom Anda, yang harus mengimplementasikan
CustomPojoSerializerantarmuka. Contoh:com.mycompany.vehicles.CustomLambdaSerialzer -
Menerapkan
CustomPojoSerializerantarmuka untuk menyediakan logika serialisasi kustom Anda. -
Gunakan
RequestHandlerantarmuka standar dalam fungsi Lambda Anda. Runtime yang dikelola akan menggunakan serializer kustom Anda.
Untuk contoh lebih lanjut tentang cara mengimplementasikan serialisasi khusus menggunakan pustaka populer seperti FastJSON, Gson, Moshi, dan jackson-jr, lihat sampel serialisasi khusus di repositori. https://github.com/aws/aws-lambda-java-libs/tree/main/samples/custom-serialization
Menguji serialisasi kustom
Uji fungsi Anda untuk memastikan bahwa logika serialisasi dan deserialisasi Anda berfungsi seperti yang diharapkan. Anda dapat menggunakan AWS Serverless Application Model Command Line Interface (AWS SAMCLI) untuk meniru pemanggilan payload Lambda Anda. Ini dapat membantu Anda dengan cepat menguji dan mengulangi fungsi Anda saat Anda memperkenalkan serializer khusus.
-
Buat file dengan muatan acara JSON yang ingin Anda panggil fungsi Anda lalu panggil. AWS SAMCLI
-
Jalankan perintah sam local invoke untuk memanggil fungsi Anda secara lokal. Contoh:
sam local invoke -e src/test/resources/event.json
Untuk informasi selengkapnya, lihat Mem anggil fungsi Lambda secara lokal dengan. AWS SAM