

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

# Bekerja dengan arsip file.zip untuk fungsi Python Lambda
<a name="python-package"></a>

 Kode AWS Lambda fungsi Anda terdiri dari file.py yang berisi kode handler fungsi Anda, bersama dengan paket dan modul tambahan yang bergantung pada kode Anda. *Untuk menyebarkan kode fungsi ini ke Lambda, Anda menggunakan paket penerapan.* Paket ini dapat berupa arsip file.zip atau gambar kontainer. Untuk informasi selengkapnya tentang penggunaan gambar kontainer dengan Python, lihat [Menerapkan fungsi Lambda Python](https://docs.aws.amazon.com/lambda/latest/dg/python-image.html) dengan gambar kontainer. 

 [Untuk membuat paket penyebaran Anda sebagai arsip file.zip, Anda dapat menggunakan utilitas arsip file.zip bawaan alat baris perintah Anda, atau utilitas file.zip lainnya seperti 7zip.](https://www.7-zip.org/download.html) Contoh yang ditampilkan di bagian berikut mengasumsikan Anda menggunakan `zip` alat baris perintah di lingkungan Linux atau macOS. Untuk menggunakan perintah yang sama di Windows, Anda dapat [menginstal Windows Subsystem untuk Linux untuk](https://docs.microsoft.com/en-us/windows/wsl/install-win10) mendapatkan versi Windows terintegrasi dari Ubuntu dan Bash. 

 Perhatikan bahwa Lambda menggunakan izin file POSIX, jadi Anda mungkin perlu [mengatur izin untuk folder paket penyebaran](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-deployment-package-errors/) sebelum membuat arsip file.zip. 

**Topics**
+ [

## Dependensi runtime dengan Python
](#python-package-dependencies)
+ [

## Membuat paket penerapan.zip tanpa dependensi
](#python-package-create-no-dependencies)
+ [

## Membuat paket penerapan.zip dengan dependensi
](#python-package-create-dependencies)
+ [

## Jalur pencarian ketergantungan dan pustaka yang disertakan runtime
](#python-package-searchpath)
+ [

## Menggunakan folder \$1\$1pycache\$1\$1
](#python-package-pycache)
+ [

## Membuat paket penerapan.zip dengan pustaka asli
](#python-package-native-libraries)
+ [

## Membuat dan memperbarui fungsi Lambda Python menggunakan file.zip
](#python-package-create-update)

## Dependensi runtime dengan Python
<a name="python-package-dependencies"></a>

Untuk fungsi Lambda yang menggunakan runtime Python, dependensi dapat berupa paket atau modul Python apa pun. [Ketika Anda menerapkan fungsi Anda menggunakan arsip.zip, Anda dapat menambahkan dependensi ini ke file.zip Anda dengan kode fungsi Anda atau menggunakan lapisan Lambda.](chapter-layers.md) Lapisan adalah file.zip terpisah yang dapat berisi kode tambahan dan konten lainnya. Untuk mempelajari lebih lanjut tentang menggunakan layer Lambda dengan Python, lihat. [Bekerja dengan lapisan untuk fungsi Lambda Python](python-layers.md)

Runtime Lambda Python mencakup dan dependensinya. AWS SDK untuk Python (Boto3) Lambda menyediakan SDK dalam runtime untuk skenario penerapan di mana Anda tidak dapat menambahkan dependensi Anda sendiri. Skenario ini termasuk membuat fungsi di konsol menggunakan editor kode bawaan atau menggunakan fungsi inline in AWS Serverless Application Model (AWS SAM) atau CloudFormation template.

Lambda secara berkala memperbarui pustaka di runtime Python untuk menyertakan pembaruan terbaru dan patch keamanan. Jika fungsi Anda menggunakan versi Boto3 SDK yang disertakan dalam runtime tetapi paket penerapan Anda menyertakan dependensi SDK, ini dapat menyebabkan masalah ketidaksejajaran versi. Misalnya, paket penerapan Anda dapat menyertakan urllib3 dependensi SDK. Saat Lambda memperbarui SDK di runtime, masalah kompatibilitas antara versi baru runtime dan versi urllib3 dalam paket penerapan dapat menyebabkan fungsi Anda gagal.

**penting**  
Untuk mempertahankan kontrol penuh atas dependensi Anda dan untuk menghindari kemungkinan masalah ketidaksejajaran versi, kami sarankan Anda menambahkan semua dependensi fungsi Anda ke paket penerapan Anda, meskipun versinya disertakan dalam runtime Lambda. Ini termasuk Boto3 SDK.

Untuk mengetahui versi SDK for Python (Boto3) mana yang disertakan dalam runtime yang Anda gunakan, lihat. [Versi SDK yang disertakan Runtime](lambda-python.md#python-sdk-included)

 Di bawah [model tanggung jawab AWS bersama](https://docs.aws.amazon.com/whitepapers/latest/aws-risk-and-compliance/shared-responsibility-model.html), Anda bertanggung jawab atas pengelolaan dependensi apa pun dalam paket penerapan fungsi Anda. Ini termasuk menerapkan pembaruan dan patch keamanan. Untuk memperbarui dependensi dalam paket penerapan fungsi Anda, pertama buat file.zip baru dan kemudian unggah ke Lambda. Lihat [Membuat paket penerapan.zip dengan dependensi](#python-package-create-dependencies) dan [Membuat dan memperbarui fungsi Lambda Python menggunakan file.zip](#python-package-create-update) untuk informasi lebih lanjut.

## Membuat paket penerapan.zip tanpa dependensi
<a name="python-package-create-no-dependencies"></a>

 Jika kode fungsi Anda tidak memiliki dependensi, file.zip Anda hanya berisi file.py dengan kode handler fungsi Anda. Gunakan utilitas zip pilihan Anda untuk membuat file.zip dengan file.py Anda di root. Jika file.py tidak berada di root file.zip Anda, Lambda tidak akan dapat menjalankan kode Anda. 

 Untuk mempelajari cara menerapkan file.zip Anda untuk membuat fungsi Lambda baru atau memperbarui yang sudah ada, lihat. [Membuat dan memperbarui fungsi Lambda Python menggunakan file.zip](#python-package-create-update) 

## Membuat paket penerapan.zip dengan dependensi
<a name="python-package-create-dependencies"></a>

 Jika kode fungsi Anda bergantung pada paket atau modul tambahan, Anda dapat menambahkan dependensi ini ke file.zip Anda dengan kode fungsi Anda atau [menggunakan lapisan Lambda](python-layers.md). Petunjuk di bagian ini menunjukkan cara memasukkan dependensi Anda ke dalam paket penerapan.zip Anda. Agar Lambda menjalankan kode Anda, file.py yang berisi kode handler Anda dan semua dependensi fungsi Anda harus diinstal di root file.zip.

 Misalkan kode fungsi Anda disimpan dalam file bernama`lambda_function.py`. Contoh perintah CLI berikut membuat file.zip bernama `my_deployment_package.zip` berisi kode fungsi Anda dan dependensinya. Anda dapat menginstal dependensi Anda langsung ke folder di direktori proyek Anda atau menggunakan lingkungan virtual Python. 

**Untuk membuat paket penyebaran (direktori proyek)**

1. Arahkan ke direktori proyek yang berisi file kode `lambda_function.py` sumber Anda. Dalam contoh ini, direktori diberi nama`my_function`.

   ```
   cd my_function
   ```

1. Buat direktori baru bernama paket di mana Anda akan menginstal dependensi Anda.

   ```
   mkdir package
   ```

   Perhatikan bahwa untuk paket penyebaran.zip, Lambda mengharapkan kode sumber Anda dan semua dependensinya berada di root file.zip. Namun, menginstal dependensi langsung di direktori proyek Anda dapat memperkenalkan sejumlah besar file dan folder baru dan membuat navigasi di sekitar IDE Anda menjadi sulit. Anda membuat `package` direktori terpisah di sini untuk menjaga dependensi Anda terpisah dari kode sumber Anda.

1. Instal dependensi Anda di direktori. `package` Contoh di bawah ini menginstal Boto3 SDK dari Python Package Index menggunakan pip. Jika kode fungsi Anda menggunakan paket Python yang telah Anda buat sendiri, simpan di direktori. `package`

   ```
   pip install --target ./package boto3
   ```

1. Buat file.zip dengan pustaka yang diinstal di root.

   ```
   cd package
   zip -r ../my_deployment_package.zip .
   ```

   Ini menghasilkan file `my_deployment_package.zip` di direktori proyek Anda.

1. Tambahkan file lambda\$1function.py ke root dari file.zip

   ```
   cd ..
   zip my_deployment_package.zip lambda_function.py
   ```

   File.zip Anda harus memiliki struktur direktori datar, dengan kode handler fungsi Anda dan semua folder dependensi Anda diinstal di root sebagai berikut.

   ```
   my_deployment_package.zip
   |- bin
   |  |-jp.py
   |- boto3
   |  |-compat.py
   |  |-data
   |  |-docs
   ...
   |- lambda_function.py
   ```

   Jika file.py yang berisi kode handler fungsi Anda tidak berada di root file.zip Anda, Lambda tidak akan dapat menjalankan kode Anda.

**Untuk membuat paket penyebaran (lingkungan virtual)**

1. Buat dan aktifkan lingkungan virtual di direktori proyek Anda. Dalam contoh ini direktori proyek diberi nama`my_function`.

   ```
   ~$ cd my_function
   ~/my_function$ python3.14 -m venv my_virtual_env
   ~/my_function$ source ./my_virtual_env/bin/activate
   ```

1. Instal pustaka yang Anda butuhkan menggunakan pip. Contoh berikut menginstal Boto3 SDK

   ```
   (my_virtual_env) ~/my_function$ pip install boto3
   ```

1. Gunakan `pip show` untuk menemukan lokasi di lingkungan virtual Anda di mana pip telah menginstal dependensi Anda.

   ```
   (my_virtual_env) ~/my_function$ pip show <package_name>
   ```

   Folder tempat pip menginstal pustaka Anda dapat diberi nama atau. `site-packages` `dist-packages` Folder ini mungkin terletak di `lib64/python3.x` direktori `lib/python3.x` or (di mana python3.x mewakili versi Python yang Anda gunakan).

1. Nonaktifkan lingkungan virtual

   ```
   (my_virtual_env) ~/my_function$ deactivate
   ```

1. Arahkan ke direktori yang berisi dependensi yang Anda instal dengan pip dan buat file.zip di direktori proyek Anda dengan dependensi yang diinstal di root. Dalam contoh ini, pip telah menginstal dependensi Anda di direktori. `my_virtual_env/lib/python3.14/site-packages`

   ```
   ~/my_function$ cd my_virtual_env/lib/python3.14/site-packages
   ~/my_function/my_virtual_env/lib/python3.14/site-packages$ zip -r ../../../../my_deployment_package.zip .
   ```

1. Arahkan ke root direktori proyek Anda di mana file.py yang berisi kode handler Anda berada dan tambahkan file itu ke root paket.zip Anda. Dalam contoh ini, file kode fungsi Anda diberi nama`lambda_function.py`.

   ```
   ~/my_function/my_virtual_env/lib/python3.14/site-packages$ cd ../../../../
   ~/my_function$ zip my_deployment_package.zip lambda_function.py
   ```

## Jalur pencarian ketergantungan dan pustaka yang disertakan runtime
<a name="python-package-searchpath"></a>

 Saat Anda menggunakan `import` pernyataan dalam kode Anda, runtime Python mencari direktori di jalur pencariannya hingga menemukan modul atau paket. Secara default, lokasi pertama pencarian runtime adalah direktori tempat paket deployment .zip Anda didekompresi dan dipasang (). `/var/task` Jika Anda menyertakan versi pustaka yang disertakan runtime dalam paket penerapan, versi Anda akan lebih diutamakan daripada versi yang disertakan dalam runtime. Dependensi dalam paket penerapan Anda juga lebih diutamakan daripada dependensi dalam lapisan. 

 Saat Anda menambahkan dependensi ke lapisan, Lambda mengekstrak ini `/opt/python/lib/python3.x/site-packages` ke (`python3.x`di mana mewakili versi runtime yang Anda gunakan) atau. `/opt/python` Di jalur pencarian, direktori ini lebih diutamakan daripada direktori yang berisi pustaka yang disertakan runtime dan pustaka yang diinstal pip (dan). `/var/runtime` `/var/lang/lib/python3.x/site-packages` Oleh karena itu, pustaka di lapisan fungsi lebih diutamakan daripada versi yang disertakan dalam runtime. 

**catatan**  
Dalam runtime terkelola Python 3.11 dan image dasar, AWS SDK dan dependensinya diinstal di direktori. `/var/lang/lib/python3.11/site-packages`

 Anda dapat melihat jalur pencarian lengkap untuk fungsi Lambda Anda dengan menambahkan cuplikan kode berikut. 

```
import sys
      
search_path = sys.path
print(search_path)
```

**catatan**  
Karena dependensi dalam paket atau lapisan penerapan Anda lebih diutamakan daripada pustaka yang disertakan runtime, hal ini dapat menyebabkan masalah ketidaksejajaran versi jika Anda menyertakan dependensi SDK seperti urllib3 dalam paket Anda tanpa menyertakan SDK juga. Jika Anda menerapkan versi dependensi Boto3 Anda sendiri, Anda juga harus menerapkan Boto3 sebagai dependensi dalam paket penerapan Anda. Kami menyarankan Anda mengemas semua dependensi fungsi Anda, bahkan jika versinya disertakan dalam runtime.

 Anda juga dapat menambahkan dependensi di folder terpisah di dalam paket.zip Anda. Misalnya, Anda dapat menambahkan versi Boto3 SDK ke folder dalam paket.zip yang disebut. `common` Ketika paket.zip Anda didekompresi dan dipasang, folder ini ditempatkan di dalam direktori. `/var/task` Untuk menggunakan dependensi dari folder dalam paket deployment .zip Anda dalam kode Anda, gunakan pernyataan. `import from` Misalnya, untuk menggunakan versi Boto3 dari folder bernama `common` dalam paket.zip Anda, gunakan pernyataan berikut. 

```
from common import boto3
```

## Menggunakan folder \$1\$1pycache\$1\$1
<a name="python-package-pycache"></a>

 Kami menyarankan agar Anda tidak menyertakan `__pycache__` folder dalam paket penerapan fungsi Anda. Bytecode Python yang dikompilasi pada mesin build dengan arsitektur atau sistem operasi yang berbeda mungkin tidak kompatibel dengan lingkungan eksekusi Lambda. 

## Membuat paket penerapan.zip dengan pustaka asli
<a name="python-package-native-libraries"></a>

 Jika fungsi Anda hanya menggunakan paket dan modul Python murni, Anda dapat menggunakan `pip install` perintah untuk menginstal dependensi Anda pada mesin build lokal mana pun dan membuat file.zip Anda. Banyak pustaka Python populer, termasuk NumPy dan Panda, bukan Python murni dan berisi kode yang ditulis dalam C atau C \$1\$1. Saat menambahkan pustaka yang berisi kode C/C\$1\$1 ke paket penerapan, Anda harus membuat paket dengan benar untuk memastikan bahwa paket tersebut kompatibel dengan lingkungan eksekusi Lambda. 

 Sebagian besar paket yang tersedia di Indeks Paket Python ([PyPI](https://pypi.org/)) tersedia sebagai “roda” (file.whl). File WHL adalah jenis file ZIP yang berisi distribusi yang dibangun dengan binari pra-kompilasi untuk sistem operasi tertentu dan arsitektur set instruksi. Untuk membuat paket penyebaran Anda kompatibel dengan Lambda, Anda menginstal roda untuk sistem operasi Linux dan arsitektur set instruksi fungsi Anda. 

 Beberapa paket mungkin hanya tersedia sebagai distribusi sumber. Untuk paket-paket ini, Anda perlu mengkompilasi dan membangun komponen C/C\$1\$1 sendiri. 

 Untuk melihat distribusi apa yang tersedia untuk paket yang Anda butuhkan, lakukan hal berikut: 

1. Cari nama paket di halaman [utama Python Package Index](https://pypi.org/).

1. Pilih versi paket yang ingin Anda gunakan.

1. Pilih **Unduh file**.

### Bekerja dengan distribusi yang dibangun (roda)
<a name="python-package-wheels"></a>

 Untuk mengunduh roda yang kompatibel dengan Lambda, Anda menggunakan opsi pip`--platform`. 

 Jika fungsi Lambda Anda menggunakan arsitektur set instruksi **x86\$164**, jalankan `pip install` perintah berikut untuk menginstal roda yang kompatibel di direktori Anda. `package` Ganti `--python 3.x` dengan versi runtime Python yang Anda gunakan. 

```
pip install \
--platform manylinux2014_x86_64 \
--target=package \
--implementation cp \
--python-version 3.x \
--only-binary=:all: --upgrade \
<package_name>
```

 Jika fungsi Anda menggunakan arsitektur set instruksi **arm64**, jalankan perintah berikut. Ganti `--python 3.x` dengan versi runtime Python yang Anda gunakan. 

```
pip install \
--platform manylinux2014_aarch64 \
--target=package \
--implementation cp \
--python-version 3.x \
--only-binary=:all: --upgrade \
<package_name>
```

### Bekerja dengan distribusi sumber
<a name="python-package-source-dist"></a>

 Jika paket Anda hanya tersedia sebagai distribusi sumber, Anda perlu membuat pustaka C/C\$1\$1 sendiri. Untuk membuat paket Anda kompatibel dengan lingkungan eksekusi Lambda, Anda perlu membangunnya di lingkungan yang menggunakan sistem operasi Amazon Linux yang sama. Anda dapat melakukan ini dengan membuat paket Anda di instance Amazon Elastic Compute Cloud (Amazon EC2) Linux. 

 Untuk mempelajari cara meluncurkan dan menyambung ke instans Amazon EC2 Linux, lihat [Memulai Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) di *Panduan EC2 Pengguna Amazon*. 

## Membuat dan memperbarui fungsi Lambda Python menggunakan file.zip
<a name="python-package-create-update"></a>

 Setelah Anda membuat paket.zip deployment, Anda dapat menggunakannya untuk membuat fungsi Lambda baru atau memperbarui yang sudah ada. Anda dapat menerapkan paket.zip Anda menggunakan konsol Lambda, API, AWS Command Line Interface dan Lambda. Anda juga dapat membuat dan memperbarui fungsi Lambda menggunakan AWS Serverless Application Model (AWS SAM) dan. CloudFormation

Ukuran maksimum untuk paket.zip deployment untuk Lambda adalah 250 MB (unzip). Perhatikan bahwa batas ini berlaku untuk ukuran gabungan semua file yang Anda unggah, termasuk lapisan Lambda apa pun.

Runtime Lambda membutuhkan izin untuk membaca file dalam paket deployment Anda. Dalam notasi oktal izin Linux, Lambda membutuhkan 644 izin untuk file yang tidak dapat dieksekusi (rw-r - r--) dan 755 izin () untuk direktori dan file yang dapat dieksekusi. rwxr-xr-x

Di Linux dan macOS, gunakan `chmod` perintah untuk mengubah izin file pada file dan direktori dalam paket penyebaran Anda. Misalnya, untuk memberikan file yang tidak dapat dieksekusi izin yang benar, jalankan perintah berikut.

```
chmod 644 <filepath>
```

Untuk mengubah izin file di Windows, lihat [Mengatur, Melihat, Mengubah, atau Menghapus Izin pada Objek](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc731667(v=ws.10)) dalam dokumentasi Microsoft Windows.

**catatan**  
Jika Anda tidak memberikan Lambda izin yang diperlukan untuk mengakses direktori dalam paket penerapan Anda, Lambda menetapkan izin untuk direktori tersebut ke 755 (). rwxr-xr-x

### Membuat dan memperbarui fungsi dengan file.zip menggunakan konsol
<a name="python-package-create-console"></a>

 Untuk membuat fungsi baru, Anda harus terlebih dahulu membuat fungsi di konsol, lalu mengunggah arsip.zip Anda. Untuk memperbarui fungsi yang ada, buka halaman untuk fungsi Anda, lalu ikuti prosedur yang sama untuk menambahkan file.zip Anda yang diperbarui. 

 Jika file.zip Anda kurang dari 50MB, Anda dapat membuat atau memperbarui fungsi dengan mengunggah file langsung dari mesin lokal Anda. Untuk file.zip yang lebih besar dari 50MB, Anda harus mengunggah paket Anda ke bucket Amazon S3 terlebih dahulu. Untuk petunjuk tentang cara mengunggah file ke bucket Amazon S3 menggunakan Konsol Manajemen AWS, lihat [Memulai Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html). Untuk mengunggah file menggunakan AWS CLI, lihat [Memindahkan objek](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-managing-objects-move) di *Panduan AWS CLI Pengguna*. 

**catatan**  
Anda tidak dapat mengubah [jenis paket penerapan](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html#lambda-CreateFunction-request-PackageType) (.zip atau image kontainer) untuk fungsi yang ada. Misalnya, Anda tidak dapat mengonversi fungsi gambar kontainer untuk menggunakan arsip file.zip. Anda harus membuat fungsi baru.

**Untuk membuat fungsi baru (konsol)**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) konsol Lambda dan pilih **Buat** Fungsi.

1. Pilih **Tulis dari awal**.

1. Di bagian **Informasi dasar**, lakukan hal berikut:

   1. Untuk **nama Fungsi**, masukkan nama untuk fungsi Anda.

   1. Untuk **Runtime**, pilih runtime yang ingin Anda gunakan.

   1. (Opsional) Untuk **Arsitektur**, pilih arsitektur set instruksi untuk fungsi Anda. Arsitektur defaultnya adalah x86\$164. Pastikan bahwa paket deployment .zip untuk fungsi Anda kompatibel dengan arsitektur set instruksi yang Anda pilih.

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

1. Pilih **Buat fungsi**. Lambda menciptakan fungsi dasar 'Hello world' menggunakan runtime yang Anda pilih.

**Untuk mengunggah arsip.zip dari mesin lokal Anda (konsol)**

1. Di [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) konsol Lambda, pilih fungsi yang ingin Anda unggah file.zip.

1. Pilih tab **Kode**.

1. Di panel **Sumber kode**, pilih **Unggah dari**.

1. Pilih **file.zip**.

1. Untuk mengunggah file.zip, lakukan hal berikut:

   1. Pilih **Unggah**, lalu pilih file.zip Anda di pemilih file.

   1. Pilih **Buka**.

   1. Pilih **Simpan**.

**Untuk mengunggah arsip.zip dari bucket Amazon S3 (konsol)**

1. Di [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) konsol Lambda, pilih fungsi yang ingin Anda unggah file.zip baru.

1. Pilih tab **Kode**.

1. Di panel **Sumber kode**, pilih **Unggah dari**.

1. Pilih **lokasi Amazon S3**.

1. **Rekatkan URL tautan Amazon S3 dari file.zip Anda dan pilih Simpan.**

### Memperbarui fungsi file.zip menggunakan editor kode konsol
<a name="python-package-console-edit"></a>

 Untuk beberapa fungsi dengan paket penyebaran.zip, Anda dapat menggunakan editor kode bawaan konsol Lambda untuk memperbarui kode fungsi Anda secara langsung. Untuk menggunakan fitur ini, fungsi Anda harus memenuhi kriteria berikut: 
+ Fungsi Anda harus menggunakan salah satu runtime bahasa yang ditafsirkan (Python, Node.js, atau Ruby)
+ Paket penerapan fungsi Anda harus lebih kecil dari 50 MB (unzip).

Kode fungsi untuk fungsi dengan paket penerapan gambar kontainer tidak dapat diedit langsung di konsol.

**Untuk memperbarui kode fungsi menggunakan editor kode konsol**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) konsol Lambda dan pilih fungsi Anda.

1. Pilih tab **Kode**.

1. Di panel **Sumber kode**, pilih file kode sumber Anda dan edit di editor kode terintegrasi.

1. Di bagian **DEPLOY**, pilih **Deploy** untuk memperbarui kode fungsi Anda:  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

### Membuat dan memperbarui fungsi dengan file.zip menggunakan AWS CLI
<a name="python-package-create-cli"></a>

 Anda dapat menggunakan [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)untuk membuat fungsi baru atau memperbarui yang sudah ada menggunakan file.zip. Gunakan [create-function](https://docs.aws.amazon.com/cli/latest/reference/lambda/create-function.html) dan [update-function-code](https://docs.aws.amazon.com/cli/latest/reference/lambda/create-function.html)perintah untuk menyebarkan paket.zip Anda. Jika file.zip Anda lebih kecil dari 50MB, Anda dapat mengunggah paket.zip dari lokasi file di mesin build lokal Anda. Untuk file yang lebih besar, Anda harus mengunggah paket.zip Anda dari bucket Amazon S3. Untuk petunjuk tentang cara mengunggah file ke bucket Amazon S3 menggunakan AWS CLI, lihat [Memindahkan objek](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-managing-objects-move) di *AWS CLI Panduan Pengguna*. 

**catatan**  
Jika Anda mengunggah file.zip dari bucket Amazon S3 menggunakan AWS CLI, bucket harus berada di lokasi yang Wilayah AWS sama dengan fungsi Anda.

 Untuk membuat fungsi baru menggunakan file.zip dengan AWS CLI, Anda harus menentukan yang berikut: 
+ Nama fungsi Anda (`--function-name`)
+ Runtime () `--runtime` fungsi Anda
+ Nama Sumber Daya Amazon (ARN) dari [peran eksekusi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) fungsi Anda () `--role`
+ Nama metode handler dalam kode fungsi Anda () `--handler`

 Anda juga harus menentukan lokasi file.zip Anda. Jika file.zip Anda terletak di folder di mesin build lokal Anda, gunakan `--zip-file` opsi untuk menentukan jalur file, seperti yang ditunjukkan pada perintah contoh berikut. 

```
aws lambda create-function --function-name myFunction \
--runtime python3.14 --handler lambda_function.lambda_handler \
--role arn:aws:iam::111122223333:role/service-role/my-lambda-role \
--zip-file fileb://myFunction.zip
```

 Untuk menentukan lokasi file.zip di bucket Amazon S3, gunakan opsi seperti `--code` yang ditunjukkan pada perintah contoh berikut. Anda hanya perlu menggunakan `S3ObjectVersion` parameter untuk objek berversi. 

```
aws lambda create-function --function-name myFunction \
--runtime python3.14 --handler lambda_function.lambda_handler \
--role arn:aws:iam::111122223333:role/service-role/my-lambda-role \
--code S3Bucket=amzn-s3-demo-bucket,S3Key=myFileName.zip,S3ObjectVersion=myObjectVersion
```

 Untuk memperbarui fungsi yang ada menggunakan CLI, Anda menentukan nama fungsi Anda menggunakan parameter. `--function-name` Anda juga harus menentukan lokasi file.zip yang ingin Anda gunakan untuk memperbarui kode fungsi Anda. Jika file.zip Anda terletak di folder di mesin build lokal Anda, gunakan `--zip-file` opsi untuk menentukan jalur file, seperti yang ditunjukkan pada perintah contoh berikut. 

```
aws lambda update-function-code --function-name myFunction \
--zip-file fileb://myFunction.zip
```

 Untuk menentukan lokasi file.zip di bucket Amazon S3, gunakan opsi `--s3-key` dan seperti `--s3-bucket` yang ditunjukkan pada perintah contoh berikut. Anda hanya perlu menggunakan `--s3-object-version` parameter untuk objek berversi. 

```
aws lambda update-function-code --function-name myFunction \
--s3-bucket amzn-s3-demo-bucket --s3-key myFileName.zip --s3-object-version myObject Version
```

### Membuat dan memperbarui fungsi dengan file.zip menggunakan API Lambda
<a name="python-package-create-api"></a>

 Untuk membuat dan memperbarui fungsi menggunakan arsip file.zip, gunakan operasi API berikut: 
+ [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)
+ [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)

### Membuat dan memperbarui fungsi dengan file.zip menggunakan AWS SAM
<a name="python-package-create-sam"></a>

 The AWS Serverless Application Model (AWS SAM) adalah toolkit yang membantu merampingkan proses membangun dan menjalankan aplikasi tanpa server. AWS Anda menentukan sumber daya untuk aplikasi Anda dalam template YAMAL atau JSON dan menggunakan antarmuka baris AWS SAM perintah (AWS SAM CLI) untuk membangun, mengemas, dan menyebarkan aplikasi Anda. Saat Anda membuat fungsi Lambda dari AWS SAM template, AWS SAM secara otomatis membuat paket penerapan .zip atau gambar kontainer dengan kode fungsi Anda dan dependensi apa pun yang Anda tentukan. Untuk mempelajari lebih lanjut cara menggunakan AWS SAM untuk membangun dan menerapkan fungsi Lambda, [lihat Memulai](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started.html) di Panduan AWS SAM*AWS Serverless Application Model Pengembang*.

Anda juga dapat menggunakan AWS SAM untuk membuat fungsi Lambda menggunakan arsip file.zip yang ada. Untuk membuat fungsi Lambda menggunakan AWS SAM, Anda dapat menyimpan file.zip di bucket Amazon S3 atau di folder lokal di mesin build Anda. Untuk petunjuk tentang cara mengunggah file ke bucket Amazon S3 menggunakan AWS CLI, lihat [Memindahkan objek](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-managing-objects-move) di *AWS CLI Panduan Pengguna*. 

 Dalam AWS SAM template Anda, `AWS::Serverless::Function` sumber daya menentukan fungsi Lambda Anda. Dalam sumber daya ini, atur properti berikut untuk membuat fungsi menggunakan arsip file.zip: 
+ `PackageType`- diatur ke `Zip`
+ `CodeUri`- diatur ke kode fungsi Amazon S3 URI, jalur ke folder lokal, atau objek [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html)
+ `Runtime`- Setel ke runtime yang Anda pilih

 Dengan AWS SAM, jika file.zip Anda lebih besar dari 50MB, Anda tidak perlu mengunggahnya ke bucket Amazon S3 terlebih dahulu. AWS SAM dapat mengunggah paket.zip hingga ukuran maksimum yang diizinkan 250MB (unzip) dari lokasi di mesin build lokal Anda. 

 Untuk mempelajari selengkapnya tentang penerapan fungsi menggunakan file.zip AWS SAM, lihat [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html)di Panduan *AWS SAM Pengembang*. 

### Membuat dan memperbarui fungsi dengan file.zip menggunakan CloudFormation
<a name="python-package-create-cfn"></a>

 Anda dapat menggunakan CloudFormation untuk membuat fungsi Lambda menggunakan arsip file.zip. Untuk membuat fungsi Lambda dari file.zip, Anda harus terlebih dahulu mengunggah file Anda ke bucket Amazon S3. Untuk petunjuk tentang cara mengunggah file ke bucket Amazon S3 menggunakan AWS CLI, lihat [Memindahkan objek](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-managing-objects-move) di *AWS CLI Panduan Pengguna*.

Untuk runtime Node.js dan Python, Anda juga dapat memberikan kode sumber inline di template Anda. CloudFormation CloudFormation kemudian buat file.zip yang berisi kode Anda saat Anda membangun fungsi Anda. 

**Menggunakan file.zip yang ada**

Dalam CloudFormation template Anda, `AWS::Lambda::Function` sumber daya menentukan fungsi Lambda Anda. Dalam sumber daya ini, atur properti berikut untuk membuat fungsi menggunakan arsip file.zip:
+ `PackageType`- Setel ke `Zip`
+ `Code`- Masukkan nama bucket Amazon S3 dan nama file.zip di dan bidang `S3Bucket` `S3Key`
+ `Runtime`- Setel ke runtime yang Anda pilih

**Membuat file.zip dari kode sebaris**

Anda dapat mendeklarasikan fungsi sederhana yang ditulis dengan Python atau Node.js inline dalam template. CloudFormation Karena kode disematkan di YAMAL atau JSON, Anda tidak dapat menambahkan dependenis eksternal apa pun ke paket penerapan Anda. Ini berarti fungsi Anda harus menggunakan versi AWS SDK yang disertakan dalam runtime. Persyaratan template, seperti harus melarikan diri dari karakter tertentu, juga mempersulit penggunaan fitur pemeriksaan sintaks dan penyelesaian kode IDE Anda. Ini berarti bahwa template Anda mungkin memerlukan pengujian tambahan. Karena keterbatasan ini, mendeklarasikan fungsi inline paling cocok untuk kode yang sangat sederhana yang tidak sering berubah. 

Untuk membuat file.zip dari kode inline untuk runtime Node.js dan Python, atur properti berikut di sumber daya template Anda: `AWS::Lambda::Function`
+ `PackageType`- Setel ke `Zip`
+ `Code`- Masukkan kode fungsi Anda di `ZipFile` bidang
+ `Runtime`- Setel ke runtime yang Anda pilih

 File.zip yang CloudFormation menghasilkan tidak boleh melebihi 4MB. Untuk mempelajari selengkapnya tentang penerapan fungsi menggunakan file.zip CloudFormation, lihat [AWS::Lambda::Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)di *CloudFormation Panduan Pengguna*. 