Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Runtime terkelola 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 ke objek Java, dan output dari fungsi Anda perlu diserialisasikan 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 layanan, AWS seperti Amazon API Gateway dan Amazon Simple Queue Service (Amazon SQS). Untuk bekerja dengan peristiwa integrasi layanan ini dalam fungsi Anda, tambahkan aws-java-lambda-events
Anda juga dapat menggunakan objek Anda sendiri untuk mewakili acara 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 penangan fungsi Anda mengharapkan Vehicle
kelas sebagai input, dengan struktur berikut:
public class Vehicle {
private String vehicleType;
private long vehicleId;
}
Namun, payload acara 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 kasus unta (vehicle-type
,vehicleID
), Anda harus menggunakan serialisasi khusus.
Menerapkan serialisasi kustom
Gunakan Antarmuka Penyedia LayananRequestHandler
Untuk menggunakan serialisasi kustom dalam fungsi Lambda Java Anda
-
Tambahkan aws-lambda-java-core
perpustakaan sebagai dependensi. Pustaka ini mencakup CustomPojoSerializer antarmuka, bersama dengan definisi antarmuka lain untuk bekerja dengan Java di Lambda. -
Buat file bernama
com.amazonaws.services.lambda.runtime.CustomPojoSerializer
disrc/main/META-INF/services/
direktori proyek Anda. -
Dalam file ini, tentukan nama yang sepenuhnya memenuhi syarat dari implementasi serializer kustom Anda, yang harus mengimplementasikan antarmuka.
CustomPojoSerializer
Contoh:com.mycompany.vehicles.CustomLambdaSerialzer
-
Terapkan
CustomPojoSerializer
antarmuka untuk memberikan logika serialisasi kustom Anda. -
Gunakan
RequestHandler
antarmuka standar dalam fungsi Lambda Anda. Runtime terkelola akan menggunakan serializer kustom Anda.
Menguji serialisasi kustom
Uji fungsi Anda untuk memastikan bahwa logika serialisasi dan deserialisasi Anda berfungsi seperti yang diharapkan. Anda dapat menggunakan Antarmuka Baris AWS Serverless Application Model Perintah (AWS SAM CLI) untuk meniru permintaan muatan Lambda Anda. Ini dapat membantu Anda dengan cepat menguji dan mengulangi fungsi Anda saat Anda memperkenalkan serializer khusus.
-
Buat file dengan payload acara JSON yang ingin Anda panggil fungsi Anda lalu panggil AWS SAM CLI.
-
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 Memanggil fungsi Lambda secara lokal dengan. AWS SAM