View a markdown version of this page

Menyebarkan Fungsi Peristiwa Lambda sebagai arsip file.zip - AWS Lambda

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

Menyebarkan Fungsi Peristiwa Lambda sebagai arsip file.zip

Saat Anda membuat Lambda Event Function, Anda mengemas kode fungsi Anda ke dalam paket penerapan. Lambda mendukung dua tipe paket deployment: gambar kontainer dan arsip file .zip. Alur kerja untuk membuat fungsi tergantung pada jenis paket penerapan. Untuk mengonfigurasi fungsi yang didefinisikan sebagai gambar kontainer, lihat Buat Fungsi Acara Lambda menggunakan gambar kontainer.

Anda dapat menggunakan konsol Lambda dan API Lambda untuk membuat fungsi yang ditentukan dengan arsip file.zip. Anda juga dapat mengunggah file.zip yang diperbarui untuk mengubah kode fungsi.

Secara default, saat Anda mengunggah file.zip, Lambda menyimpan salinan kode sumber Anda di Lambda-managed penyimpanan. Dengan penyimpanan kode S3 yang dikelola sendiri, Lambda membaca kode sumber Anda dari bucket S3 Anda selama pembuatan fungsi dan operasi pembaruan, dan tidak menyimpan salinan terpisah dari kode sumber Anda. Lambda masih membuat representasi internal yang dioptimalkan dari kode Anda untuk pemanggilan. Kode sumber Anda di S3 tidak diakses pada setiap start dingin.

catatan

Anda tidak dapat mengubah jenis paket penyebaran (.zip atau gambar wadah) untuk fungsi yang ada. Misalnya, Anda tidak dapat mengonversi fungsi gambar kontainer untuk menggunakan arsip berkas.zip. Anda harus membuat fungsi baru.

Membuat fungsi

Saat Anda membuat fungsi yang ditentukan dengan arsip file.zip, Anda memilih template kode, versi bahasa, dan peran eksekusi untuk fungsi tersebut. Anda menambahkan kode fungsi Anda setelah Lambda membuat fungsi.

Untuk membuat fungsi
  1. Buka Halaman Fungsi Acara dari konsol Lambda.

  2. Memilih Buat Fungsi Acara.

  3. Memilih Penulis dari awal atau Gunakan cetak biru untuk membuat fungsi Anda.

  4. Di bagian Informasi dasar, lakukan hal berikut:

    1. Untuk Nama fungsi, masukkan nama fungsi. Nama fungsi dibatasi hingga 64 karakter panjangnya.

    2. Untuk Waktu pelaksanaan, pilih versi bahasa yang akan digunakan untuk fungsi Anda.

    3. (Opsional) Untuk Arsitektur, pilih arsitektur set instruksi untuk digunakan untuk fungsi Anda. Arsitektur default adalah x86_64. Saat Anda membuat paket penerapan untuk fungsi Anda, pastikan itu kompatibel dengan ini arsitektur set instruksi.

  5. (Opsional) Di bagian Izin, luaskan Ubah peran eksekusi default. Anda dapat membuat yang baru Peran eksekusi atau menggunakan peran yang sudah ada.

  6. (Opsional) Perluas Pengaturan lanjutan. Anda dapat memilih Konfigurasi penandatanganan kode untuk fungsinya. Anda juga dapat mengonfigurasi (Amazon VPC) untuk fungsi yang akan diakses.

  7. Memilih Buat Fungsi Acara.

Lambda menciptakan fungsi baru. Anda sekarang dapat menggunakan konsol untuk menambahkan kode fungsi dan mengkonfigurasi parameter fungsi dan fitur lainnya. Untuk instruksi penerapan kode, lihat halaman handler untuk runtime yang digunakan fungsi Anda.

Node.js

Menyebarkan Fungsi Acara Node.js Lambda dengan arsip file.zip

Python

Bekerja dengan arsip file.zip untuk Fungsi Acara Python Lambda

Ruby

Menyebarkan Fungsi Acara Ruby Lambda dengan arsip file.zip

Java

Menyebarkan Fungsi Acara Lambda Java dengan arsip file.zip atau JAR

Go

Terapkan Fungsi Acara Go Lambda dengan arsip file.zip

C#

Bangun dan terapkan Fungsi Acara C# Lambda dengan arsip file.zip

PowerShell

Menyebarkan Fungsi Acara PowerShell Lambda dengan arsip file.zip

Menggunakan editor kode konsol

Konsol membuat fungsi Lambda dengan file sumber tunggal. Untuk bahasa skrip, Anda dapat mengedit file ini dan menambahkan lebih banyak file menggunakan editor kode bawaan. Untuk menyimpan perubahan Anda, pilih Simpan. Selanjutnya, untuk menjalankan kode, pilih Uji.

Saat Anda menyimpan kode fungsi, konsol Lambda membuat paket penyebaran arsip file.zip. Ketika Anda mengembangkan kode fungsi Anda di luar konsol (menggunakan IDE), Anda perlu membuat paket penerapan untuk mengunggah kode Anda ke fungsi Lambda.

Memperbarui kode fungsi

Untuk bahasa scripting (Node.js, Python, dan Ruby), Anda dapat mengedit kode fungsi Anda di editor kode yang disematkan. Jika kode lebih besar dari 3MB, atau jika Anda perlu menambahkan pustaka, atau untuk bahasa yang tidak didukung editor (Java, Go, C#), Anda harus mengunggah kode fungsi Anda sebagai arsip.zip. Jika arsip file.zip berukuran lebih kecil dari 50 MB, Anda dapat mengunggah arsip file.zip dari mesin lokal Anda. Jika file lebih besar dari 50 MB, unggah file ke fungsi dari bucket Amazon S3.

Untuk mengunggah kode fungsi sebagai arsip.zip
  1. Buka Halaman Fungsi Acara dari konsol Lambda.

  2. Pilih fungsi untuk memperbarui dan pilih Kode tab.

  3. Di bagian Sumber kode, pilih Unggah dari.

  4. Memilih berkas.zip, dan kemudian memilih Unggah.

    1. Di pemilih file, pilih versi gambar baru, pilih Buka, dan kemudian memilih Menyimpan.

  5. (Alternatif untuk langkah 4) Pilih Lokasi Amazon S3.

    1. Di kotak teks, masukkan URL tautan S3 dari arsip file.zip.

    2. Di bawah Mode penyimpanan kode, pilih salah satu dari berikut ini:

      • Mode salin (default)

      • Mode referensi

    3. Pilih Simpan.

Saat memperbarui kode fungsi dari bucket Amazon S3 menggunakan AWS CLI, Anda dapat menentukan mode penyimpanan kode. Set S3ObjectStorageMode kepada REFERENCE untuk menggunakan penyimpanan kode S3 yang dikelola sendiri, atau COPY (default) untuk digunakan Lambda-managed penyimpanan. Anda dapat mengubah mode penyimpanan pada setiap pembaruan.

aws lambda update-function-code \ --function-name my-function \ --s3-bucket my-bucket \ --s3-key my-function.zip \ --s3-object-version abc123 \ --s3-object-storage-mode REFERENCE

Mengubah runtime

Jika Anda memperbarui konfigurasi fungsi untuk menggunakan runtime baru, Anda mungkin perlu memperbarui kode fungsi agar kompatibel dengan runtime baru. Jika Anda memperbarui konfigurasi fungsi untuk menggunakan runtime yang berbeda, Anda harus menyediakan kode fungsi baru yang kompatibel dengan runtime dan arsitektur. Untuk petunjuk tentang cara membuat paket penerapan untuk kode fungsi, lihat halaman handler untuk runtime yang digunakan fungsi.

Yang Node.js 20, Python 3.12, Java 21, .NET 8, Ruby 3.3, dan gambar dasar yang lebih baru didasarkan pada image wadah minimal Amazon Linux 2023. Gambar dasar sebelumnya menggunakan Amazon Linux 2. AL2023 memberikan beberapa keunggulan dibandingkan Amazon Linux 2, termasuk jejak penerapan yang lebih kecil dan versi perpustakaan yang diperbarui seperti glibc. Untuk informasi lebih lanjut, lihat Memperkenalkan runtime Amazon Linux 2023 untuk AWS Lambda pada AWS Blog Komputasi.

Untuk mengubah runtime
  1. Buka Halaman Fungsi Acara dari konsol Lambda.

  2. Pilih fungsi untuk memperbarui dan pilih Kode tab.

  3. Gulir ke bawah ke Pengaturan runtime bagian, yang berada di bawah editor kode.

  4. Pilih Edit.

    1. Untuk Waktu pelaksanaan, pilih pengidentifikasi runtime.

    2. Untuk Pengendali, tentukan nama file dan handler untuk fungsi Anda.

    3. Untuk Arsitektur, pilih arsitektur set instruksi untuk digunakan untuk fungsi Anda.

  5. Pilih Simpan.

Mengubah arsitektur

Sebelum Anda dapat mengubah arsitektur set instruksi, Anda perlu memastikan bahwa kode fungsi Anda kompatibel dengan arsitektur target.

Jika Anda menggunakan Node.js, Python, atau Ruby dan Anda mengedit kode fungsi Anda di editor tertanam, kode yang ada mungkin berjalan tanpa modifikasi.

Namun, jika Anda memberikan kode fungsi menggunakan paket penyebaran arsip berkas.zip, Anda harus menyiapkan arsip berkas.zip baru yang dikompilasi dan dibuat dengan benar untuk runtime target dan arsitektur set instruksi. Untuk instruksi, lihat halaman handler untuk runtime fungsi Anda.

Untuk mengubah arsitektur set instruksi
  1. Buka Halaman Fungsi Acara dari konsol Lambda.

  2. Pilih fungsi untuk memperbarui dan pilih Kode tab.

  3. Di bawah Pengaturan runtime, pilih Sunting.

  4. Untuk Arsitektur, pilih arsitektur set instruksi untuk digunakan untuk fungsi Anda.

  5. Pilih Simpan.

Menggunakan API Lambda

Untuk membuat dan mengkonfigurasi fungsi yang menggunakan arsip file.zip, gunakan operasi API berikut:

Mengunduh kode fungsi Anda

Anda dapat mengunduh yang belum dipublikasikan saat ini ($LATEST) versi kode fungsi Anda.zip dari konsol Lambda. Untuk melakukan ini, pertama-tama pastikan Anda memiliki izin IAM berikut:

  • iam:GetPolicy

  • iam:GetPolicyVersion

  • iam:GetRole

  • iam:GetRolePolicy

  • iam:ListAttachedRolePolicies

  • iam:ListRolePolicies

  • iam:ListRoles

Untuk mengunduh kode fungsi.zip
  1. Buka Halaman Fungsi Acara dari konsol Lambda.

  2. Pilih fungsi yang ingin Anda unduh kode fungsi.zip untuknya.

  3. Di Ikhtisar fungsi, pilih Unduh tombol, lalu pilih Unduh kode fungsi.zip.

    1. Atau, pilih Unduh AWS SAM fail untuk menghasilkan dan mengunduh template SAM berdasarkan konfigurasi fungsi Anda. Anda juga dapat memilih Unduh keduanya untuk mengunduh templat.zip dan SAM.

CloudFormation

Anda dapat menggunakan CloudFormation untuk membuat fungsi Lambda yang menggunakan arsip file.zip. Di milikmu CloudFormation template, AWS::Lambda::Function resource menentukan fungsi Lambda. Untuk deskripsi properti di AWS::Lambda::Function sumber daya, lihat AWS::Lambda::Fungsi di AWS CloudFormation Panduan Pengguna.

Di AWS::Lambda::Function resource, atur properti berikut untuk membuat fungsi yang didefinisikan sebagai arsip file.zip:

  • AWS::Lambda::Fungsi

    • PackageType — Setel ke Zip.

    • Kode — Masukkan nama bucket Amazon S3 dan nama file.zip di S3Bucket dan S3Keybidang. Untuk Node.js atau Python, Anda dapat memberikan kode sumber sebaris dari fungsi Lambda Anda.

    • Runtime — Mengatur nilai runtime.

    • Arsitektur — Mengatur nilai arsitektur ke arm64 untuk menggunakan AWS Prosesor Graviton. Secara default, nilai arsitektur adalah x86_64.

    • S3ObjectStorageMode — (Opsional) Setel ke REFERENCE untuk menggunakan penyimpanan kode S3 yang dikelola sendiri. Setel ke COPY (default) untuk digunakan Lambda-managed penyimpanan.