Contoh: Memanggil fungsi Lambda dari cluster DB DB RDS SQL - 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: Memanggil fungsi Lambda dari cluster DB DB RDS SQL

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 ) SQL 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 pemanggilan Lambda, lihat Memanggil fungsi Lambda di AWS Lambda Panduan Pengembang. 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 ) SQL, 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— JSON Payload 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 memecahkan kode konten menggunakan kombinasi fungsi decode dan convert_from PostgreSQL.

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 JSON objek untuk context parameter aws_lambda.invoke fungsi.

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.