View a markdown version of this page

Menyebarkan fungsi 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 Lambda sebagai arsip file.zip

Saat Anda membuat fungsi Lambda, 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 mengkonfigurasi fungsi yang didefinisikan sebagai gambar kontainer, lihatBuat fungsi 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 penerapan (.zip atau image container) 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 di konsol Lambda.

  2. Pilih Buat fungsi.

  3. Pilih 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 Runtime, pilih versi bahasa yang akan digunakan untuk fungsi Anda.

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

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

  6. (Opsional) Perluas Peng aturan lanjutan. Anda dapat memilih konfigurasi penandatanganan kode untuk fungsi tersebut. Anda juga dapat mengonfigurasi (Amazon VPC) untuk fungsi yang akan diakses.

  7. Pilih Buat fungsi.

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

Terapkan fungsi Node.js Lambda dengan arsip file.zip

Python

Bekerja dengan arsip file.zip untuk fungsi Python Lambda

Ruby

Deploy fungsi Lambda Ruby dengan arsip file .zip

Java

Deploy fungsi Java Lambda dengan arsip file .zip atau JAR

Go

Deploy fungsi Go Lambda dengan arsip file .zip

C#

Bangun dan terapkan fungsi C# Lambda dengan arsip file.zip

PowerShell

Menyebarkan fungsi 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. Saat Anda mengembangkan kode fungsi 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 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 di konsol Lambda.

  2. Pilih fungsi untuk memperbarui dan pilih tab Kode.

  3. Di bagian Sumber kode, pilih Unggah dari.

  4. Pilih fil e.zip, lalu pilih Ung gah.

    1. Di pemilih file, pilih versi gambar baru, pilih Buka, lalu pilih S impan.

  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 el REFERENCE untuk menggunakan penyimpanan kode S3 yang dikelola sendiri, atau COPY (default) untuk menggunakan 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.

Gambar dasar Node.js 20, Python 3.12, Java 21, .NET 8, Ruby 3.3, dan yang lebih baru didasarkan pada gambar kontainer 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 sepertiglibc. Untuk informasi selengkapnya, lihat Memperkenalkan runtime Amazon Linux 2023 untuk AWS Lambda di AWS Compute Blog.

Untuk mengubah runtime
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi untuk memperbarui dan pilih tab Kode.

  3. Gulir ke bawah ke bagian pengaturan Runtime, yang berada di bawah editor kode.

  4. Pilih Edit.

    1. Untuk Runtime, pilih pengidentifikasi runtime.

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

    3. Untuk Ar sitektur, pilih arsitektur set instruksi yang akan 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 di konsol Lambda.

  2. Pilih fungsi untuk memperbarui dan pilih tab Kode.

  3. Di bawah pengaturan Runtime, pilih Edit.

  4. Untuk Ar sitektur, pilih arsitektur set instruksi yang akan 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 versi unpublishing ($LATEST) saat ini dari kode fungsi .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 di konsol Lambda.

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

  3. Dalam ik htisar fungsi, pilih tombol Unduh, lalu pilih Unduh kode fungsi.zip.

    1. Atau, pilih Unduh AWS SAM file 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. Dalam CloudFormation template Anda, AWS::Lambda::Function sumber daya menentukan fungsi Lambda. Untuk deskripsi properti dalam AWS::Lambda::Function sumber daya, lihat AWS::Lambda: :Fungsi di Panduan AWS CloudFormation Pengguna.

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

  • AWS::Lambda: :Fungsi

    • PackageType — Setel keZip.

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

    • Runtime — Mengatur nilai runtime.

    • Arsitektur — Mengatur nilai arsitektur arm64 untuk menggunakan prosesor AWS Graviton2. Secara default, nilai arsitekturnya adalahx86_64.

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