Contoh: Menginvokasi fungsi Lambda dari instans DB RDS for PostgreSQL - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh: Menginvokasi fungsi Lambda dari instans DB RDS for PostgreSQL

Berikut ini, Anda dapat menemukan beberapa contoh pemanggilan fungsi aws_lambda.invoke. Sebagian besar contoh menggunakan struktur komposit aws_lambda_arn_1 yang Anda buat Langkah 4: Gunakan fungsi pembantu Lambda dengan instans DB RDS for PostgreSQL (Opsional) untuk menyederhanakan meneruskan detail fungsi. Untuk contoh panggilan asinkron, lihat Contoh: Invokasi fungsi Lambda asinkron (Event). Semua contoh lain yang tercantum menggunakan panggilan sinkron.

Untuk mempelajari lebih lanjut tentang jenis invokasi Lambda, lihat Menginvokasi fungsi Lambda di Panduan Developer AWS Lambda . Untuk informasi selengkapnya tentang aws_lambda_arn_1, lihat aws_commons.create_lambda_function_arn.

Contoh: Synchronous (RequestResponse) pemanggilan fungsi Lambda

Berikut ini adalah dua contoh dari invokasi fungsi Lambda sinkron. Hasil dari panggilan fungsi aws_lambda.invoke ini sama.

SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json);
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse');

Parameternya dijelaskan sebagai berikut:

  • :'aws_lambda_arn_1' – Parameter ini mengidentifikasi struktur komposit yang dibuat diLangkah 4: Gunakan fungsi pembantu Lambda dengan instans DB RDS for PostgreSQL (Opsional), dengan fungsi pembantu aws_commons.create_lambda_function_arn. Anda juga dapat membuat struktur ini sebaris dalam panggilan aws_lambda.invoke Anda sebagai berikut.

    SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function', 'aws-region'), '{"body": "Hello from Postgres!"}'::json );
  • '{"body": "Hello from PostgreSQL!"}'::json – Payload JSON untuk diteruskan ke fungsi Lambda.

  • 'RequestResponse' – Jenis invokasi Lambda.

Contoh: Invokasi fungsi Lambda asinkron (Event)

Berikut ini adalah contoh invokasi fungsi Lambda asinkron. Jenis invokasi Event menjadwalkan invokasi fungsi Lambda dengan payload input yang ditentukan dan segera kembali. Gunakan jenis invokasi Event di alur kerja tertentu yang tidak bergantung pada hasil fungsi Lambda.

SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'Event');

Contoh: Menangkap log eksekusi Lambda dalam respons fungsi

Anda dapat menyertakan 4 KB terakhir log eksekusi di respons fungsi dengan menggunakan parameter log_type dalam panggilan fungsi aws_lambda.invoke Anda. Secara default, parameter ini diatur ke None, tetapi Anda dapat menentukan Tail untuk menangkap hasil log eksekusi Lambda dalam respons, seperti yang ditunjukkan berikut.

SELECT *, select convert_from(decode(log_result, 'base64'), 'utf-8') as log FROM aws_lambda.invoke(:'aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'Tail');

Atur parameter log_type fungsi aws_lambda.invoke ke Tail untuk menyertakan log eksekusi dalam respons. Nilai default untuk parameter log_type adalah None.

log_result yang ditampilkan string yang dienkode base64. Anda dapat mendekode kontennya menggunakan kombinasi fungsi PostgreSQL decode dan convert_from.

Untuk informasi selengkapnya tentang log_type, lihat aws_lambda.invoke.

Contoh: Menyertakan konteks klien dalam fungsi Lambda

Fungsi aws_lambda.invoke memiliki parameter context yang dapat Anda gunakan untuk meneruskan informasi yang terpisah dari payload, seperti yang diperlihatkan di bawah.

SELECT *, convert_from(decode(log_result, 'base64'), 'utf-8') as log FROM aws_lambda.invoke(:'aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'Tail');

Untuk menyertakan konteks klien, gunakan objek JSON untuk parameter context fungsi aws_lambda.invoke.

Untuk informasi selengkapnya tentang parameter context, lihat referensi aws_lambda.invoke.

Contoh: Menginvokasi fungsi Lambda versi spesifik

Anda dapat menentukan versi tertentu dari fungsi Lambda dengan menyertakan parameter qualifier dengan panggilan aws_lambda.invoke. Berikut ini, Anda dapat menemukan contoh yang melakukan ini menggunakan 'custom_version' sebagai alias untuk versi.

SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'None', NULL, 'custom_version');

Anda juga dapat menyediakan pengualifikasi fungsi Lambda dengan detail nama fungsi sebagai berikut.

SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function:custom_version', 'us-west-2'), '{"body": "Hello from Postgres!"}'::json);

Untuk informasi selengkapnya tentang qualifier dan parameter lainnya, lihat referensi aws_lambda.invoke.