Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Invoke
Memanggil fungsi Lambda. Anda dapat memanggil fungsi secara sinkron (dan menunggu respons), atau secara asinkron. Secara default, Lambda memanggil fungsi Anda secara sinkron (yaitu is). InvocationType
RequestResponse
Untuk memanggil fungsi secara asinkron, atur InvocationType
ke Event
. Lambda meneruskan ClientContext
objek ke fungsi Anda hanya untuk pemanggilan sinkron.
Untuk invokasi sinkron, detail tentang respons fungsi, termasuk kesalahan, disertakan dalam isi dan header respons. Untuk kedua tipe invokasi, Anda dapat menemukan informasi selengkapnya dalam log eksekusi dan jejak.
Ketika terjadi kesalahan, fungsi Anda dapat dipanggil beberapa kali. Perilaku coba lagi bervariasi menurut tipe kesalahan, klien, sumber peristiwa, dan tipe invokasi. Misalnya, jika Anda memanggil fungsi secara asinkron dan mengembalikan kesalahan, Lambda menjalankan fungsi hingga dua kali lagi. Untuk informasi selengkapnya, lihat Penanganan kesalahan dan percobaan ulang otomatis di Lambda.
Untuk invokasi asinkron, Lambda menambahkan peristiwa ke antrean sebelum mengirimnya ke fungsi Anda. Jika fungsi Anda tidak memiliki kapasitas yang cukup untuk mengikuti antrean, peristiwa mungkin hilang. Kadang-kadang, fungsi Anda dapat menerima peristiwa yang sama beberapa kali, bahkan jika tidak ada kesalahan yang terjadi. Untuk mempertahankan peristiwa yang tidak diproses, konfigurasi fungsi Anda dengan antrean surat mati.
Kode status dalam respons API tidak mencerminkan kesalahan fungsi. Kode kesalahan dicadangkan untuk kesalahan yang mencegah fungsi Anda mengeksekusi, seperti kesalahan izin, kesalahan kuota, atau masalah dengan kode dan konfigurasi fungsi Anda. Misalnya, Lambda kembali TooManyRequestsException
jika menjalankan fungsi akan menyebabkan Anda melebihi batas konkurensi di level akun (ConcurrentInvocationLimitExceeded
) atau level fungsi (). ReservedFunctionConcurrentInvocationLimitExceeded
Untuk fungsi dengan batas waktu yang lama, klien Anda mungkin terputus selama pemanggilan sinkron saat menunggu respons. Konfigurasikan klien HTTP, SDK, firewall, proksi, atau sistem operasi Anda untuk memungkinkan koneksi panjang dengan waktu habis atau pengaturan tetap aktif.
Operasi ini memerlukan izin untuk InvokeFunction tindakan lambda:. Untuk detail tentang cara mengatur izin untuk pemanggilan lintas akun, lihat Memberikan akses fungsi ke akun lain.
Minta Sintaks
POST /2015-03-31/functions/FunctionName
/invocations?Qualifier=Qualifier
HTTP/1.1
X-Amz-Invocation-Type: InvocationType
X-Amz-Log-Type: LogType
X-Amz-Client-Context: ClientContext
Payload
Parameter Permintaan URI
Permintaan menggunakan parameter URI berikut.
- ClientContext
-
Hingga 3.583 byte data yang dikodekan base64 tentang klien pemanggilan untuk diteruskan ke fungsi dalam objek konteks. Lambda meneruskan
ClientContext
objek ke fungsi Anda hanya untuk pemanggilan sinkron. - FunctionName
-
Nama fungsi Lambda, versi, atau alias.
Format nama
-
Nama fungsi —
my-function
(hanya nama),my-function:v1
(dengan alias). -
Fungsi ARN —.
arn:aws:lambda:us-west-2:123456789012:function:my-function
-
ARN Sebagian —.
123456789012:function:my-function
Anda dapat menambahkan nomor versi atau alias ke salah satu format. Batas panjang hanya berlaku untuk ARN penuh. Jika Anda hanya menentukan nama fungsi, panjang nama dibatasi hingga 64 karakter.
Panjang Batasan: Panjang minimum 1. Panjang maksimum 170.
Pola:
(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?
Diperlukan: Ya
-
- InvocationType
-
Pilih salah satu dari opsi berikut:
-
RequestResponse
(default) - Memanggil fungsi secara sinkron. Jaga agar koneksi tetap terbuka sampai fungsi mengembalikan respons atau waktu habis. Respons API mencakup respons fungsi dan data tambahan. -
Event
— Memanggil fungsi secara asinkron. Kirim peristiwa yang gagal beberapa kali ke antrian huruf mati fungsi (jika ada yang dikonfigurasi). Respons API hanya mencakup kode status. -
DryRun
— Validasi nilai parameter dan verifikasi bahwa pengguna atau peran memiliki izin untuk memanggil fungsi.
Nilai yang Valid:
Event | RequestResponse | DryRun
-
- LogType
-
Atur ke
Tail
untuk memasukkan log eksekusi dalam respons. Hanya berlaku untuk fungsi yang dipanggil secara sinkron.Nilai yang Valid:
None | Tail
- Qualifier
-
Tentukan versi atau alias untuk memanggil versi fungsi yang dipublikasikan.
Panjang Batasan: Panjang minimum 1. Panjang maksimum 128.
Pola:
(|[a-zA-Z0-9$_-]+)
Isi Permintaan
Permintaan menerima data biner berikut.
- Payload
-
JSON yang ingin Anda berikan ke fungsi Lambda Anda sebagai input.
Anda dapat memasukkan JSON secara langsung. Misalnya,
--payload '{ "key": "value" }'
. Anda juga dapat menentukan jalur file. Misalnya,--payload file://payload.json
.
Sintaksis Respons
HTTP/1.1 StatusCode
X-Amz-Function-Error: FunctionError
X-Amz-Log-Result: LogResult
X-Amz-Executed-Version: ExecutedVersion
Payload
Elemen Respons
Jika tindakan berhasil, layanan mengirimkan kembali respons HTTP berikut.
- StatusCode
-
Kode status HTTP berada di kisaran 200 untuk permintaan yang berhasil. Untuk tipe invokasi
RequestResponse
, kode status ini adalah 200. Untuk tipe invokasiEvent
, kode status ini adalah 202. Untuk tipe invokasiDryRun
, kode status ini adalah 204.
Respons mengembalikan header HTTP berikut.
- ExecutedVersion
-
Versi fungsi yang dijalankan. Ketika Anda memanggil fungsi dengan alias, ini menunjukkan versi mana yang diselesaikan alias.
Panjang Batasan: Panjang minimum 1. Panjang maksimum 1024.
Pola:
(\$LATEST|[0-9]+)
- FunctionError
-
Jika ada, menunjukkan kesalahan terjadi selama eksekusi fungsi. Detil tentang kesalahan disertakan dalam muatan respons.
- LogResult
-
4 KB terakhir dari log eksekusi, yang dikodekan base64.
Respons mengembalikan yang berikut sebagai isi HTTP.
- Payload
-
Respons dari fungsi, atau objek kesalahan.
Kesalahan
Untuk informasi tentang kesalahan yang umum untuk semua tindakan, lihat Kesalahan Umum.
- EC2AccessDeniedException
-
Perlu izin tambahan untuk mengkonfigurasi pengaturan VPC.
Kode Status HTTP: 502
- EC2ThrottledException
-
Amazon EC2 dibatasi AWS Lambda selama inisialisasi fungsi Lambda menggunakan peran eksekusi yang disediakan untuk fungsi tersebut.
Kode Status HTTP: 502
- EC2UnexpectedException
-
AWS Lambdamenerima pengecualian klien Amazon EC2 yang tidak terduga saat menyiapkan fungsi Lambda.
Kode Status HTTP: 502
- EFSIOException
-
Terjadi kesalahan saat membaca dari atau menulis ke sistem file yang terhubung.
Kode Status HTTP: 410
- EFSMountConnectivityException
-
Fungsi Lambda tidak dapat membuat koneksi jaringan ke sistem file yang dikonfigurasi.
Kode Status HTTP: 408
- EFSMountFailureException
-
Fungsi Lambda tidak dapat memasang sistem file yang dikonfigurasi karena masalah izin atau konfigurasi.
Kode Status HTTP: 403
- EFSMountTimeoutException
-
Fungsi Lambda membuat koneksi jaringan ke sistem file yang dikonfigurasi, tetapi waktu operasi pemasangan habis.
Kode Status HTTP: 408
- ENILimitReachedException
-
AWS Lambdatidak dapat membuat elastic network interface di VPC, yang ditentukan sebagai bagian dari konfigurasi fungsi Lambda, karena batas untuk antarmuka jaringan telah tercapai. Untuk informasi lebih lanjut, lihat Kuota Lambda.
Kode Status HTTP: 502
- InvalidParameterValueException
-
Salah satu parameter dalam permintaan tidak valid.
Kode Status HTTP: 400
- InvalidRequestContentException
-
Isi permintaan tidak dapat diurai sebagai JSON.
Kode Status HTTP: 400
- InvalidRuntimeException
-
Runtime atau versi runtime yang ditentukan tidak didukung.
Kode Status HTTP: 502
- InvalidSecurityGroupIDException
-
ID grup keamanan yang disediakan dalam konfigurasi VPC fungsi Lambda tidak valid.
Kode Status HTTP: 502
- InvalidSubnetIDException
-
ID subnet yang disediakan dalam konfigurasi VPC fungsi Lambda tidak valid.
Kode Status HTTP: 502
- InvalidZipFileException
-
AWS Lambda tidak dapat membuka zip paket deployment.
Kode Status HTTP: 502
- KMSAccessDeniedException
-
Lambda tidak dapat mendekripsi variabel lingkungan karena AWS KMS akses ditolak. Periksa izin KMS fungsi Lambda.
Kode Status HTTP: 502
- KMSDisabledException
-
Lambda tidak dapat mendekripsi variabel lingkungan karena yang digunakan dinonaktifkan. AWS KMS key Periksa pengaturan kunci KMS fungsi Lambda.
Kode Status HTTP: 502
- KMSInvalidStateException
-
Lambda tidak dapat mendekripsi variabel lingkungan karena status yang AWS KMS key digunakan tidak valid untuk Dekripsi. Periksa pengaturan kunci KMS fungsi.
Kode Status HTTP: 502
- KMSNotFoundException
-
Lambda tidak dapat mendekripsi variabel lingkungan karena tidak ditemukan. AWS KMS key Periksa pengaturan kunci KMS fungsi.
Kode Status HTTP: 502
- RecursiveInvocationException
-
Lambda telah mendeteksi fungsi Anda dipanggil dalam loop rekursif dengan AWS sumber daya lain dan menghentikan pemanggilan fungsi Anda.
Kode Status HTTP: 400
- RequestTooLargeException
-
Muatan permintaan melebihi kuota input JSON badan
Invoke
permintaan. Untuk informasi lebih lanjut, lihat Kuota Lambda.Kode Status HTTP: 413
- ResourceConflictException
-
Sumber daya sudah ada, atau operasi lain sedang berlangsung.
Kode Status HTTP: 409
- ResourceNotFoundException
-
Sumber daya yang ditentukan dalam permintaan tidak ada.
Kode Status HTTP: 404
- ResourceNotReadyException
-
Fungsi ini tidak aktif dan koneksi VPC-nya tidak lagi tersedia. Tunggu sampai koneksi VPC dibangun kembali dan coba lagi.
Kode Status HTTP: 502
- ServiceException
-
Layanan AWS Lambda mengalami kesalahan internal.
Kode Status HTTP: 500
- SnapStartException
-
afterRestore()
Runtime hook mengalami kesalahan. Untuk informasi lebih lanjut, periksa CloudWatch log Amazon.Kode Status HTTP: 400
- SnapStartNotReadyException
-
Lambda menginisialisasi fungsi Anda. Anda dapat memanggil fungsi ketika status fungsi menjadi
Active
.Kode Status HTTP: 409
- SnapStartTimeoutException
-
Lambda tidak dapat memulihkan snapshot dalam batas waktu tunggu.
Kode Status HTTP: 408
- SubnetIPAddressLimitReachedException
-
AWS Lambdatidak dapat mengatur akses VPC untuk fungsi Lambda karena satu atau beberapa subnet yang dikonfigurasi tidak memiliki alamat IP yang tersedia.
Kode Status HTTP: 502
- TooManyRequestsException
-
Batas throughput permintaan terlampaui. Untuk informasi lebih lanjut, lihat Kuota Lambda.
Kode Status HTTP: 429
- UnsupportedMediaTypeException
-
Tipe konten dari isi permintaan
Invoke
bukan JSON.Kode Status HTTP: 415
Lihat Juga
Untuk informasi selengkapnya tentang penggunaan API ini di salah satu AWS SDK khusus bahasa, lihat berikut ini: