

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

# Tutorial: Mengubah data untuk aplikasi Anda dengan S3 Object Lambda
<a name="tutorial-s3-object-lambda-uppercase"></a>

**catatan**  
Mulai 7 November 2025, S3 Object Lambda hanya tersedia untuk pelanggan lama yang saat ini menggunakan layanan serta untuk AWS mitra Jaringan Mitra (APN) tertentu. Untuk kemampuan yang mirip dengan S3 Object Lambda, pelajari lebih lanjut di sini - Perubahan ketersediaan Lambda Objek [ Amazon S3. ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html)

Saat Anda menyimpan data di Amazon S3, Anda dapat dengan mudah membagikannya untuk digunakan oleh beberapa aplikasi. Namun, setiap aplikasi mungkin memiliki persyaratan format data yang unik, dan mungkin perlu modifikasi atau pemrosesan data Anda untuk kasus penggunaan tertentu. Misalnya, dataset yang dibuat oleh aplikasi e-commerce mungkin menyertakan informasi identitas pribadi (PII). Ketika data yang sama diproses untuk analitik, PII ini tidak diperlukan dan harus disunting. Namun, jika dataset yang sama digunakan untuk kampanye pemasaran, Anda mungkin perlu memperkaya data dengan detail tambahan, seperti informasi dari database loyalitas pelanggan.

Dengan [ S3 Object Lambda](https://aws.amazon.com/s3/features/object-lambda), Anda dapat menambahkan kode Anda sendiri untuk memproses data yang diambil dari S3 sebelum mengembalikannya ke aplikasi. Secara khusus, Anda dapat mengonfigurasi AWS Lambda fungsi dan melampirkannya ke S3 Object Lambda Access Point. Ketika aplikasi mengirimkan permintaan GET S3 [ standar ](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) melalui S3 Object Lambda Access Point, fungsi Lambda yang ditentukan dipanggil untuk memproses data apa pun yang diambil dari sumber data yang mendasarinya melalui titik akses S3 pendukung. Kemudian, S3 Object Lambda Access Point mengembalikan hasil transformasi kembali ke aplikasi. Anda dapat membuat dan menjalankan fungsi Lambda kustom Anda sendiri, menyesuaikan transformasi data S3 Object Lambda dengan kasus penggunaan spesifik Anda, semuanya tanpa perubahan yang diperlukan pada aplikasi Anda.

![Ini adalah diagram alur kerja Lambda Objek S3.](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/ol-example-image-global.png)


**Tujuan**  
Dalam tutorial ini, Anda belajar bagaimana menambahkan kode kustom ke permintaan GET S3 standar untuk memodifikasi objek yang diminta diambil dari S3 sehingga objek sesuai dengan kebutuhan klien atau aplikasi yang meminta. Secara khusus, Anda belajar bagaimana mengubah semua teks dalam objek asli yang disimpan dalam bucket S3 menjadi huruf besar melalui S3 Object Lambda. 

**catatan**  
Tutorial ini menggunakan kode Python untuk mengubah data, untuk contoh menggunakan AWS SDK lain lihat Meng [ ubah data untuk aplikasi Anda dengan S3 Object Lambda ](https://docs.aws.amazon.com/code-library/latest/ug/lambda_example_cross_ServerlessS3DataTransformation_section.html) di Perpustakaan Contoh Kode AWS SDK. 

**Topics**
+ [Prasyarat](#ol-upper-prerequisites)
+ [Langkah 1: Buat bucket S3](#ol-upper-step1)
+ [Langkah 2: Unggah file ke bucket S3](#ol-upper-step2)
+ [Langkah 3: Buat titik akses S3](#ol-upper-step3)
+ [Langkah 4: Buat fungsi Lambda](#ol-upper-step4)
+ [Langkah 5: Konfigurasikan kebijakan IAM untuk peran eksekusi fungsi Lambda](#ol-upper-step5)
+ [Langkah 6: Buat Titik Akses Lambda Objek S3](#ol-upper-step6)
+ [Langkah 7: Lihat data yang diubah](#ol-upper-step7)
+ [Langkah 8: Membersihkan](#ol-upper-step8)
+ [Langkah selanjutnya](#ol-upper-next-steps)

## Prasyarat
<a name="ol-upper-prerequisites"></a>

Sebelum Anda memulai tutorial ini, Anda harus memiliki Akun AWS yang dapat Anda masuk sebagai pengguna AWS Identity and Access Management (IAM) dengan izin yang benar. Anda juga harus menginstal Python versi 3.8 atau yang lebih baru.

**Topics**
+ [Buat pengguna IAM dengan izin di Akun AWS (konsol)](#ol-upper-prerequisites-account)
+ [Instal Python 3.8 atau yang lebih baru di mesin lokal Anda](#ol-upper-prerequisites-python)

### Buat pengguna IAM dengan izin di Akun AWS (konsol)
<a name="ol-upper-prerequisites-account"></a>

Anda dapat membuat pengguna IAM untuk tutorial. Untuk menyelesaikan tutorial ini, pengguna IAM Anda harus melampirkan kebijakan IAM berikut untuk mengakses AWS sumber daya yang relevan dan melakukan tindakan tertentu. Untuk informasi selengkapnya tentang cara membuat pengguna IAM, lihat [ Membuat pengguna IAM (konsol) ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) di Panduan Pengguna * IAM. *

Pengguna IAM Anda memerlukan kebijakan berikut:
+ [AmazonS3FullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor)— Memberikan izin untuk semua tindakan Amazon S3, termasuk izin untuk membuat dan menggunakan Titik Akses Lambda Objek. 
+ [AWS Lambda\_FullAccess ](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess$jsonEditor) — Memberikan izin untuk semua tindakan Lambda. 
+ [IAMFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMFullAccess$jsonEditor)— Memberikan izin untuk semua tindakan IAM. 
+ [IAMAccessAnalyzerReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMAccessAnalyzerReadOnlyAccess$jsonEditor)— Memberikan izin untuk membaca semua informasi akses yang disediakan oleh IAM Access Analyzer. 
+ [CloudWatchLogsFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/CloudWatchLogsFullAccess$jsonEditor)— Memberikan akses penuh ke CloudWatch Log. 

**catatan**  
Untuk kesederhanaan, tutorial ini membuat dan menggunakan pengguna IAM. Setelah menyelesaikan tutorial ini, ingatlah untuk melakukannya[Hapus pengguna IAM](#ol-upper-step8-delete-user). Untuk penggunaan produksi, sebaiknya ikuti praktik terbaik [ Keamanan di IAM ](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) di Panduan Pengguna * IAM. * Praktik terbaik mengharuskan pengguna manusia menggunakan federasi dengan penyedia identitas untuk mengakses AWS dengan kredenSIAL sementara. Praktik terbaik lainnya adalah mewajibkan beban kerja untuk menggunakan kredenSIAL sementara dengan peran IAM untuk mengakses. AWS Untuk mempelajari cara menggunakan AWS IAM Identity Center untuk membuat pengguna dengan kredenSIAL sementara, lihat Mem [ ulai ](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) di Panduan *AWS IAM Identity Center Pengguna*.   
Tutorial ini juga menggunakan kebijakan terkel AWS ola akses penuh. Untuk penggunaan produksi, sebaiknya Anda hanya memberikan izin minimum yang diperlukan untuk kasus penggunaan Anda, sesuai dengan praktik terbaik [ keamanan](security-best-practices.md#security-best-practices-prevent).

### Instal Python 3.8 atau yang lebih baru di mesin lokal Anda
<a name="ol-upper-prerequisites-python"></a>

Gunakan prosedur berikut untuk menginstal Python 3.8 atau yang lebih baru di mesin lokal Anda. Untuk petunjuk instalasi lebih lanjut, lihat [ halaman ](https://wiki.python.org/moin/BeginnersGuide/Download) Mengunduh Python di Panduan Pemula * Python*.

1. Buka terminal atau shell lokal Anda dan jalankan perintah berikut untuk menentukan apakah Python sudah diinstal, dan jika demikian, versi mana yang diinstal. 

   ```
   python --version
   ```

1. Jika Anda tidak memiliki Python 3.8 atau yang lebih baru, unduh installer [https://www.python.org/downloads/](https://www.python.org/downloads/) resmi Python 3.8 atau lebih baru yang cocok untuk mesin lokal Anda. 

1. Jalankan penginstal dengan mengklik dua kali file yang diunduh, dan ikuti langkah-langkah untuk menyelesaikan instalasi. 

   Untuk pengguna ** Windows**, pilih ** Tambahkan Python 3.X ke PATH ** di wizard instalasi sebelum memilih ** Install Now**. 

1. Mulai ulang terminal Anda dengan menutup dan membukanya kembali. 

1. Jalankan perintah berikut untuk memverifikasi bahwa Python 3.8 atau yang lebih baru diinstal dengan benar. 

   Untuk pengguna ** macOS**, jalankan perintah ini: 

   ```
   python3 --version
   ```

   Untuk pengguna ** Windows**, jalankan perintah ini: 

   ```
   python --version
   ```

1. Jalankan perintah berikut untuk memverifikasi bahwa manajer paket pip3 diinstal. Jika Anda melihat nomor versi pip dan python 3.8 atau lebih baru dalam respons perintah, itu berarti manajer paket pip3 berhasil diinstal.

   ```
   pip --version
   ```

## Langkah 1: Buat bucket S3
<a name="ol-upper-step1"></a>

Buat bucket untuk menyimpan data asli yang Anda rencanakan untuk diubah. 

**catatan**  
Titik akses dapat dilampirkan untuk sumber data lain, seperti Amazon FSx untuk volume OpenZFS, namun tutorial ini menggunakan titik akses pendukung yang dilampirkan ke bucket S3.

**Untuk membuat bucket**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Di panel navigasi kiri, pilih **Bucket**.

1. Pilih **Buat bucket**. 

   Halaman **Buat bucket** terbuka.

1. Untuk nama ** Bucket**, masukkan nama (misalnya,**tutorial-bucket**) untuk bucket Anda. 

   Untuk informasi selengkapnya tentang penamaan bucket di Amazon S3, lihat[Aturan penamaan bucket tujuan umum](bucketnamingrules.md).

1. Untuk ** Wilayah**, pilih Wilayah AWS tempat Anda ingin bucket berada. 

   Untuk informasi selengkapnya tentang Wilayah bucket, lihat[Ikhtisar bucket tujuan umum](UsingBucket.md).

1. Untuk pengaturan ** Blokir Akses Publik untuk bucket ini**, pertahankan pengaturan default (**Blok * ir semua akses * publik ** diaktifkan). 

   Sebaiknya Anda tetap mengaktifkan semua pengaturan Blokir Akses Publik kecuali Anda perlu menonaktifkan satu atau lebih setelan tersebut untuk kasus penggunaan Anda. Untuk informasi lebih lanjut tentang pemblokiran akses publik, lihat [Melakukan blok akses publik ke penyimpanan Amazon S3 Anda](access-control-block-public-access.md).

1. Untuk pengaturan yang tersisa, pertahankan default. 

   (Opsional) Jika Anda ingin mengonfigurasi setelan bucket tambahan untuk kasus penggunaan spesifik Anda, lihat[Membuat bucket tujuan umum](create-bucket-overview.md).

1. Pilih **Buat bucket**.

## Langkah 2: Unggah file ke bucket S3
<a name="ol-upper-step2"></a>

Unggah file teks ke bucket S3. File teks ini berisi data asli yang akan Anda ubah menjadi huruf besar nanti dalam tutorial ini. 

Misalnya, Anda dapat mengunggah `tutorial.txt` file yang berisi teks berikut:

```
Amazon S3 Object Lambda Tutorial:
You can add your own code to process data retrieved from S3 before 
returning it to an application.
```

**Mengunggah file ke bucket**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Di panel navigasi kiri, pilih **Bucket**.

1. Dalam ** daftar Bucket**, pilih nama bucket yang Anda buat di [ Langkah 1 ](#ol-upper-step1) (misalnya,**tutorial-bucket**) untuk mengunggah file Anda.

1. Di tab **Objek** untuk bucket Anda, pilih **Unggah**.

1. Pada ** halaman ** Unggah, di bawah ** File dan folder**, pilih ** Tambahkan file**.

1. Pilih file yang akan diunggah, lalu pilih **Buka.** Misalnya, Anda dapat mengunggah contoh `tutorial.txt` file yang disebutkan sebelumnya.

1. Pilih **Unggah**.

## Langkah 3: Buat titik akses S3
<a name="ol-upper-step3"></a>

Untuk menggunakan S3 Object Lambda Access Point untuk mengakses dan mengubah data asli, Anda harus membuat titik akses S3 dan mengaitkannya dengan bucket S3 yang Anda buat di [ Langkah 1](#ol-upper-step1). Titik akses harus Wilayah AWS sama dengan objek yang ingin Anda ubah.

Kemudian dalam tutorial ini, Anda akan menggunakan titik akses ini sebagai titik akses pendukung untuk Object Lambda Access Point Anda. 

**Untuk membuat titik akses**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Pada panel navigasi di kiri, pilih **Titik Akses**.

1. Pada halaman **Titik Akses**, pilih **Buat titik akses**.

1. Di ** bidang Nama titik ** akses, masukkan nama (misalnya,**tutorial-access-point**) untuk titik akses.

   Untuk informasi lebih lanjut tentang penamaan titik akses, lihat [Aturan penamaan untuk titik akses](access-points-restrictions-limitations-naming-rules.md#access-points-names).

1. Di ** bidang Sumber ** data, masukkan nama bucket yang Anda buat di [ Langkah 1 ](#ol-upper-step1) (misalnya,**tutorial-bucket**). S3 melampirkan titik akses ke bucket ini. 

   (Opsional) Anda dapat memilih ** Browse S3 ** untuk menelusuri dan mencari bucket di akun Anda. Jika Anda memilih ** Browse S3**, pilih bucket yang diinginkan, lalu ** pilih Pilih jalur ** untuk mengisi ** bidang Nama ** Bucket dengan nama bucket itu.

1. Untuk ** Asal jaringan**, pilih ** Internet**. 

   Untuk informasi lebih lanjut tentang asal jaringan untuk titik akses, lihat [Membuat titik akses terbatas pada cloud privat virtual](access-points-vpc.md).

1. Secara default, semua pengaturan Blokir Akses Publik diaktifkan untuk titik akses Anda. Kami menyarankan agar Anda tetap mengaktifkan ** Blok * ir * semua akses ** publik.

   Untuk informasi selengkapnya, lihat [Mengelola akses publik ke titik akses untuk bucket tujuan umum](access-points-bpa-settings.md).

1. Untuk semua pengaturan titik akses lainnya, pertahankan pengaturan default.

   (Opsional) Anda dapat mengubah pengaturan titik akses untuk mendukung kasus penggunaan Anda. Untuk tutorial ini, kami sarankan untuk menjaga pengaturan default. 

   (Opsional) Jika Anda perlu mengelola akses ke titik akses, Anda dapat menentukan kebijakan titik akses. Untuk informasi selengkapnya, lihat [Contoh kebijakan untuk titik akses](access-points-policies.md#access-points-policy-examples). 

1. Pilih **Buat titik akses**.

## Langkah 4: Buat fungsi Lambda
<a name="ol-upper-step4"></a>

Untuk mengubah data asli, buat fungsi Lambda untuk digunakan dengan S3 Object Lambda Access Point Anda. 

**Topics**
+ [Tulis kode fungsi Lambda dan buat paket penerapan dengan lingkungan virtual](#ol-upper-step4-write-lambda)
+ [Buat fungsi Lambda dengan peran eksekusi (konsol)](#ol-upper-step4-create-function)
+ [Terapkan kode fungsi Lambda Anda dengan arsip file.zip dan konfigurasikan fungsi Lambda (konsol)](#ol-upper-step4-deploy-function)

### Tulis kode fungsi Lambda dan buat paket penerapan dengan lingkungan virtual
<a name="ol-upper-step4-write-lambda"></a>

1. Pada mesin lokal Anda, buat folder dengan nama folder `object-lambda` untuk lingkungan virtual untuk digunakan nanti dalam tutorial ini.

1. Di `object-lambda` folder, buat file dengan fungsi Lambda yang mengubah semua teks di objek asli menjadi huruf besar. Misalnya, Anda dapat menggunakan fungsi berikut yang ditulis dalam Python. Simpan fungsi ini dalam file bernama`transform.py`. 

   ```
   import boto3
   import requests
   from botocore.config import Config
   
   # This function capitalizes all text in the original object
   def lambda_handler(event, context):
       object_context = event["getObjectContext"]
       # Get the presigned URL to fetch the requested original object 
       # from S3
       s3_url = object_context["inputS3Url"]
       # Extract the route and request token from the input context
       request_route = object_context["outputRoute"]
       request_token = object_context["outputToken"]
       
       # Get the original S3 object using the presigned URL
       response = requests.get(s3_url)
       original_object = response.content.decode("utf-8")
   
       # Transform all text in the original object to uppercase
       # You can replace it with your custom code based on your use case
       transformed_object = original_object.upper()
   
       # Write object back to S3 Object Lambda
       s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
       # The WriteGetObjectResponse API sends the transformed data
       # back to S3 Object Lambda and then to the user
       s3.write_get_object_response(
           Body=transformed_object,
           RequestRoute=request_route,
           RequestToken=request_token)
   
       # Exit the Lambda function: return the status code  
       return {'status_code': 200}
   ```
**catatan**  
Contoh sebelumnya fungsi Lambda memuat seluruh objek yang diminta ke dalam memori sebelum mengubahnya dan mengembalikannya ke klien. Atau, Anda dapat melakukan streaming objek dari S3 untuk menghindari memuat seluruh objek ke dalam memori. Pendekatan ini dapat berguna saat bekerja dengan objek besar. Untuk informasi selengkapnya tentang respons streaming dengan Object Lambda Access Points, lihat contoh streaming di[Bekerja dengan `GetObject` permintaan di Lambda](olap-writing-lambda.md#olap-getobject-response).

   Saat Anda menulis fungsi Lambda untuk digunakan dengan S3 Object Lambda Access Point, fungsi ini didasarkan pada konteks peristiwa input yang disediakan S3 Object Lambda ke fungsi Lambda. Konteks acara memberikan informasi tentang permintaan yang dibuat dalam acara yang diteruskan dari S3 Object Lambda ke Lambda. Ini berisi parameter yang Anda gunakan untuk membuat fungsi Lambda.

   Bidang yang digunakan untuk membuat fungsi Lambda sebelumnya adalah sebagai berikut: 

   Bidang `getObjectContext` berarti detail input dan output untuk koneksi ke Amazon S3 dan S3 Object Lambda. Ini memiliki bidang berikut:
   + `inputS3Url`— URL yang ditandatangani sebelumnya yang dapat digunakan fungsi Lambda untuk mengunduh objek asli dari titik akses pendukung. Dengan menggunakan URL yang telah ditandatangani sebelumnya, fungsi Lambda tidak perlu memiliki izin baca Amazon S3 untuk mengambil objek asli dan hanya dapat mengakses objek yang diproses oleh setiap pemanggilan.
   + `outputRoute`— Token routing yang ditambahkan ke S3 Object Lambda URL saat fungsi Lambda memanggil `WriteGetObjectResponse` untuk mengirim kembali objek yang diubah.
   + `outputToken`— Token yang digunakan oleh S3 Object Lambda untuk mencocok `WriteGetObjectResponse` kan panggilan dengan pemanggil asli saat mengirim kembali objek yang diubah.

   Untuk informasi selengkapnya tentang semua bidang dalam konteks acara, lihat [Format konteks peristiwa dan penggunaan](olap-event-context.md) dan[Menulis fungsi Lambda untuk Titik Akses S3 Lambda Objek](olap-writing-lambda.md).

1. Di terminal lokal Anda, masukkan perintah berikut untuk menginstal `virtualenv` paket:

   ```
   python -m pip install virtualenv
   ```

1. Di terminal lokal Anda, buka `object-lambda` folder yang Anda buat sebelumnya, lalu masukkan perintah berikut untuk membuat dan menginisialisasi lingkungan virtual yang disebut`venv`.

   ```
   python -m virtualenv venv
   ```

1. Untuk mengaktifkan lingkungan virtual, masukkan perintah berikut untuk menjalankan `activate` file dari folder lingkungan:

   Untuk pengguna ** macOS**, jalankan perintah ini:

   ```
   source venv/bin/activate
   ```

   Untuk pengguna ** Windows**, jalankan perintah ini:

   ```
   .\venv\Scripts\activate
   ```

   Sekarang, command prompt Anda berubah menjadi show ** (venv)**, menunjukkan bahwa lingkungan virtual aktif.

1. Untuk menginstal pustaka yang diperlukan, jalankan perintah berikut baris demi baris di lingkungan `venv` virtual.

   Perintah ini menginstal versi terbaru dari dependensi fungsi `lambda_handler` Lambda Anda. Dependensi ini adalah AWS SDK untuk Python (Boto3) dan modul permintaan.

   ```
   pip3 install boto3
   ```

   ```
   pip3 install requests
   ```

1. Untuk menonaktifkan lingkungan virtual, jalankan perintah berikut:

   ```
   deactivate
   ```

1. Untuk membuat paket penerapan dengan pustaka yang diinstal sebagai `.zip` file bernama `lambda.zip` di root `object-lambda` direktori, jalankan perintah berikut baris demi baris di terminal lokal Anda.
**Tip**  
Perintah berikut mungkin perlu disesuaikan untuk bekerja di lingkungan khusus Anda. Misalnya, pustaka mungkin muncul di `site-packages` atau`dist-packages`, dan folder pertama mungkin `lib` atau`lib64`. Juga, `python` folder mungkin diberi nama dengan versi Python yang berbeda. Untuk menemukan paket tertentu, gunakan `pip show` perintah.

   Untuk pengguna ** macOS**, jalankan perintah ini:

   ```
   cd venv/lib/python3.8/site-packages 
   ```

   ```
   zip -r ../../../../lambda.zip .
   ```

   Untuk pengguna ** Windows**, jalankan perintah ini:

   ```
   cd .\venv\Lib\site-packages\ 
   ```

   ```
   powershell Compress-Archive * ../../../lambda.zip
   ```

   Perintah terakhir menyimpan paket deployment ke akar direktori `object-lambda`.

1. Tambahkan file kode fungsi `transform.py` ke root paket penerapan Anda.

   Untuk pengguna ** macOS**, jalankan perintah ini:

   ```
   cd ../../../../ 
   ```

   ```
   zip -g lambda.zip transform.py
   ```

   Untuk pengguna ** Windows**, jalankan perintah ini: 

   ```
   cd ..\..\..\
   ```

   ```
   powershell Compress-Archive -update transform.py lambda.zip
   ```

   Setelah menyelesaikan langkah ini, struktur direktori Anda adalah sebagai berikut:

   ```
   lambda.zip$
     │ transform.py
     │ __pycache__
     | boto3/
     │ certifi/
     │ pip/
     │ requests/
     ...
   ```

### Buat fungsi Lambda dengan peran eksekusi (konsol)
<a name="ol-upper-step4-create-function"></a>

1. Masuk ke Konsol Manajemen AWS dan buka AWS Lambda konsol di [ https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

   

1. Di panel navigasi kiri, pilih **Fungsi**.

1. Pilih **Buat fungsi**.

1. Pilih **Penulis dari scratch**.

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

   1. Untuk **Nama fungsi**, masukkan **tutorial-object-lambda-function**.

   1. Untuk ** Runtime**, pilih ** Python 3.8 ** atau versi yang lebih baru.

1. Perluas ** bagian ** Ubah peran eksekusi default. Di bawah ** Peran eksekusi**, pilih ** Buat peran baru dengan izin ** Lambda dasar.

   Pada [ Langkah 5 ](#ol-upper-step5) nanti dalam tutorial ini, Anda melampirkan peran eksekusi fungsi Lambda ini. ** AmazonS3ObjectLambdaExecutionRolePolicy ** 

1. Tetap setel pengaturan yang tersisa ke default.

1. Pilih **Buat fungsi**.

### Terapkan kode fungsi Lambda Anda dengan arsip file.zip dan konfigurasikan fungsi Lambda (konsol)
<a name="ol-upper-step4-deploy-function"></a>

1. Di AWS Lambda konsol di [ https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), pilih ** Fungsi ** di panel navigasi kiri. 

1. Pilih fungsi Lambda yang Anda buat sebelumnya (misalnya,**tutorial-object-lambda-function**). 

1. Pada halaman detail fungsi Lambda, pilih ** tab ** Kode. Di ** bagian Sumber ** Kode, pilih ** Unggah dari ** dan kemudian fil ** ** e.zip.

1. Pilih ** Unggah ** untuk memilih `.zip` file lokal Anda.

1. Pilih `lambda.zip` file yang Anda buat sebelumnya, lalu pilih ** Buka**.

1. Pilih **Simpan**.

1. Di ** bagian pengaturan ** Runtime, pilih ** Edit**. 

1. Pada ** halaman ** Edit pengaturan runtime, konfirmasikan bahwa ** Runtime ** diatur ke ** Python 3.8 ** atau versi yang lebih baru. 

1. Untuk memberi tahu runtime Lambda metode handler mana dalam kode fungsi Lambda yang akan dipanggil, masukkan **transform.lambda\_handler** untuk Handler. ** **

   Ketika Anda mengonfigurasi fungsi di Python, nilai pengaturan handler adalah nama file dan nama modul handler, yang dipisahkan oleh titik. Misalnya, `transform.lambda_handler` memanggil `lambda_handler` metode yang ditentukan dalam `transform.py` file.

1. Pilih **Simpan**.

1. (Opsional) Pada halaman detail fungsi Lambda Anda, pilih ** tab ** Konfigurasi. Di panel navigasi kiri, pilih Konfigurasi ** umum**, lalu pilih ** Edit**. Di ** bidang T ** imeout, masukkan **1** min **0** sec. Tetap setel setelan yang tersisa ke default, dan pilih S ** impan**.

   **Batas waktu ** adalah jumlah waktu yang Lambda memungkinkan fungsi dijalankan untuk pemanggilan sebelum menghentikannya. Default-nya adalah 3 detik. Durasi maksimum untuk fungsi Lambda yang digunakan oleh S3 Object Lambda adalah 60 detik. Harga didasarkan pada jumlah memori yang dikonfigurasi dan jumlah waktu yang digunakan selama kode Anda berjalan.

## Langkah 5: Konfigurasikan kebijakan IAM untuk peran eksekusi fungsi Lambda
<a name="ol-upper-step5"></a>

Untuk mengaktifkan fungsi Lambda Anda untuk menyediakan data dan header respons yang disesuaikan ke pemanggil, peran eksekusi fungsi Lambda Anda harus memiliki izin IAM untuk memanggil API. `GetObject` `WriteGetObjectResponse`

**Untuk melampirkan kebijakan IAM ke peran fungsi Lambda**



1. Di AWS Lambda konsol di [ https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), pilih ** Fungsi ** di panel navigasi kiri. 

1. Pilih fungsi yang Anda buat di [ Langkah 4 ](#ol-upper-step4) (misalnya,**tutorial-object-lambda-function**).

1. Pada halaman detail fungsi Lambda Anda, pilih ** tab ** Konfigurasi, lalu pilih ** Iz ** in di panel navigasi kiri. 

1. Di bawah Per ** an ** eksekusi, pilih tautan nama ** Peran**. Konsol IAM terbuka. 

1. Pada ** halaman Ring ** kasan konsol IAM untuk peran eksekusi fungsi Lambda Anda, pilih tab ** Iz ** in. Kemudian, dari ** menu Tam ** bah Izin, pilih Lamp ** irkan kebijakan**.

1. Pada ** halaman ** Lampirkan Iz **AmazonS3ObjectLambdaExecutionRolePolicy** in, masukkan kotak pencarian untuk memfilter daftar kebijakan. Pilih kotak centang di sebelah nama ** AmazonS3ObjectLambdaExecutionRolePolicy ** kebijakan. 

1. Pilih **Lampirkan kebijakan**. 

## Langkah 6: Buat Titik Akses Lambda Objek S3
<a name="ol-upper-step6"></a>

S3 Object Lambda Access Point memberikan fleksibilitas untuk memanggil fungsi Lambda langsung dari permintaan S3 GET sehingga fungsi tersebut dapat memproses data yang diambil dari titik akses S3. Saat membuat dan mengonfigurasi S3 Object Lambda Access Point, Anda harus menentukan fungsi Lambda untuk memanggil dan menyediakan konteks acara dalam format JSON sebagai parameter khusus untuk digunakan Lambda.

**Untuk membuat Titik Akses Lambda Objek S3**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Di panel navigasi sebelah kiri, pilih **Titik Akses Lambda Objek**.

1. Pada halaman **Titik Akses Lambda Objek**, pilih **Buat Titik Akses Lambda Objek**.

1. Untuk nama ** Object Lambda Access Point**, masukkan nama yang ingin Anda gunakan untuk Object Lambda Access Point (misalnya,**tutorial-object-lambda-accesspoint**). 

1. Untuk ** Mendukung Titik Akses**, masukkan atau telusuri ke titik akses standar yang Anda buat di [ Langkah 3 ](#ol-upper-step3) (misalnya,**tutorial-access-point**), lalu pilih ** Pilih Titik Akses yang mendukung**. 

1. Untuk API ** S3**, untuk mengambil objek dari bucket S3 untuk fungsi Lambda untuk diproses, pilih ** GetObject**.

1. Untuk ** fungsi Invoke Lambda**, Anda dapat memilih salah satu dari dua opsi berikut untuk tutorial ini. 
   + Pilih ** Pilih dari fungsi di akun Anda**, lalu pilih fungsi Lambda yang Anda buat di [ Langkah 4 ](#ol-upper-step4) (misalnya,**tutorial-object-lambda-function**) dari daftar ** dropdown fungsi ** Lambda.
   + Pilih ** Enter ARN**, lalu masukkan Amazon Resource Name (ARN) dari fungsi Lambda yang Anda buat di [ Langkah 4](#ol-upper-step4).

1. Untuk versi fungsi ** Lambda**, pilih ** $LATEST ** (versi terbaru dari fungsi Lambda yang Anda buat di [ Langkah 4). ](#ol-upper-step4)

1. (Opsional) Jika Anda memerlukan fungsi Lambda untuk mengenali dan memproses permintaan GET dengan header rentang dan nomor bagian, pilih fungsi ** Lambda mendukung permintaan menggunakan rentang ** dan fungsi ** Lambda mendukung permintaan menggunakan nomor bagian. ** Jika tidak, kosongkan dua kotak centang ini.

   Untuk informasi selengkapnya tentang cara menggunakan rentang atau nomor bagian dengan S3 Object Lambda, lihat[Bekerja dengan Kisaran and Nomor bagian headers](range-get-olap.md).

1. (Opsional) Di bawah ** Payload - * opsional ***, tambahkan teks JSON untuk memberikan fungsi Lambda Anda dengan informasi tambahan.

   Payload adalah teks JSON opsional yang dapat Anda berikan ke fungsi Lambda Anda sebagai input untuk semua pemanggilan yang berasal dari S3 Object Lambda Access Point tertentu. Untuk menyesuaikan perilaku untuk beberapa Object Lambda Access Points yang memanggil fungsi Lambda yang sama, Anda dapat mengonfigurasi payload dengan parameter yang berbeda, sehingga memperluas fleksibilitas fungsi Lambda Anda.

   Untuk informasi selengkapnya tentang payload, lihat[Format konteks peristiwa dan penggunaan](olap-event-context.md).

1. (Opsional) Untuk Metrik ** Permintaan - * opsional ***, pilih Non ** aktifkan ** atau ** Aktifkan ** untuk menambahkan pemantauan Amazon S3 ke Titik Akses Lambda Objek Anda. Metrik permintaan ditagih dengan CloudWatch tarif Amazon standar. Untuk informasi selengkapnya, lihat [harga CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

1. Di bawah kebijakan ** Object Lambda Access Point - * opsional ***, pertahankan pengaturan default. 

   (Opsional) Anda dapat mengatur kebijakan sumber daya. Kebijakan sumber daya ini memberikan izin `GetObject` API  untuk menggunakan Object Lambda Access Point yang ditentukan.

1. Tetap setel setelan yang tersisa ke default, dan pilih ** Create Object Lambda Access Point. **

## Langkah 7: Lihat data yang diubah
<a name="ol-upper-step7"></a>

Sekarang, S3 Object Lambda siap untuk mengubah data Anda untuk kasus penggunaan Anda. Dalam tutorial ini, S3 Object Lambda mengubah semua teks dalam objek Anda menjadi huruf besar.

**Topics**
+ [Melihat data yang diubah di S3 Object Lambda Access Point](#ol-upper-step7-check-data)
+ [Jalankan skrip Python untuk mencetak data asli dan diubah](#ol-upper-step7-python-print)

### Melihat data yang diubah di S3 Object Lambda Access Point
<a name="ol-upper-step7-check-data"></a>

Saat Anda meminta untuk mengambil file melalui S3 Object Lambda Access Point, Anda membuat panggilan `GetObject` API ke S3 Object Lambda. S3 Object Lambda memanggil fungsi Lambda untuk mengubah data Anda, dan kemudian mengembalikan data yang diubah sebagai respons terhadap panggilan API S3 standar. `GetObject`

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Di panel navigasi sebelah kiri, pilih **Titik Akses Lambda Objek**.

1. Pada ** halaman ** Object Lambda Access Points, pilih S3 Object Lambda Access Point yang Anda buat di [ Langkah 6 ](#ol-upper-step6) (misalnya,**tutorial-object-lambda-accesspoint**).

1. Pada ** tab Obj ** ects pada S3 Object Lambda Access Point, pilih file yang memiliki nama yang sama (misalnya,`tutorial.txt`) dengan yang Anda unggah ke bucket S3 di [ Langkah 2](#ol-upper-step2). 

   File ini harus berisi semua data yang diubah.

1. Untuk melihat data yang diubah, pilih ** Buka ** atau ** Unduh**.

### Jalankan skrip Python untuk mencetak data asli dan diubah
<a name="ol-upper-step7-python-print"></a>

Anda dapat menggunakan S3 Object Lambda dengan aplikasi yang ada. Untuk melakukannya, perbarui konfigurasi aplikasi Anda untuk menggunakan S3 Object Lambda Access Point ARN baru yang Anda buat pada [ Langkah 6 ](#ol-upper-step6) untuk mengambil data dari S3. 

Contoh skrip Python berikut mencetak data asli dari bucket S3 dan data yang diubah dari S3 Object Lambda Access Point. 

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Di panel navigasi sebelah kiri, pilih **Titik Akses Lambda Objek**.

1. Pada ** halaman ** Object Lambda Access Points, pilih tombol radio di sebelah kiri S3 Object Lambda Access Point yang Anda buat di [ Langkah 6 ](#ol-upper-step6) (misalnya,**tutorial-object-lambda-accesspoint**).

1. Pilih **Salin ARN**.

1. Simpan ARN untuk digunakan nanti.

1. Tulis skrip Python pada mesin lokal Anda untuk mencetak data asli (misalnya,`tutorial.txt`) dari S3 Bucket Anda dan data yang diubah (misalnya,`tutorial.txt`) dari S3 Object Lambda Access Point Anda). Anda dapat menggunakan contoh skrip berikut. 

   ```
   import boto3
   from botocore.config import Config
   
   s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
   
   def getObject(bucket, key):
       objectBody = s3.get_object(Bucket = bucket, Key = key)
       print(objectBody["Body"].read().decode("utf-8"))
       print("\n")
   
   print('Original object from the S3 bucket:')
   # Replace the two input parameters of getObject() below with 
   # the S3 bucket name that you created in Step 1 and 
   # the name of the file that you uploaded to the S3 bucket in Step 2
   getObject("{{tutorial-bucket}}", 
             "{{tutorial.txt}}")
   
   print('Object transformed by S3 Object Lambda:')
   # Replace the two input parameters of getObject() below with 
   # the ARN of your S3 Object Lambda Access Point that you saved earlier and
   # the name of the file with the transformed data (which in this case is
   # the same as the name of the file that you uploaded to the S3 bucket 
   # in Step 2)
   getObject("{{arn:aws:s3-object-lambda:us-west-2:111122223333:accesspoint/tutorial-object-lambda-accesspoint}}",
             "{{tutorial.txt}}")
   ```

1. Simpan skrip Python Anda dengan nama khusus (misalnya,`tutorial_print.py`) di folder (misalnya,`object-lambda`) yang Anda buat di [ Langkah 4 ](#ol-upper-step4) di mesin lokal Anda.

1. Di terminal lokal Anda, jalankan perintah berikut dari root direktori (misalnya,`object-lambda`) yang Anda buat di [ Langkah 4](#ol-upper-step4).

   ```
   python3 tutorial_print.py
   ```

   Anda harus melihat data asli dan data yang diubah (semua teks sebagai huruf besar) melalui terminal. Misalnya, Anda harus melihat sesuatu seperti teks berikut.

   ```
   Original object from the S3 bucket:
   Amazon S3 Object Lambda Tutorial:
   You can add your own code to process data retrieved from S3 before 
   returning it to an application.
   
   Object transformed by S3 Object Lambda:
   AMAZON S3 OBJECT LAMBDA TUTORIAL:
   YOU CAN ADD YOUR OWN CODE TO PROCESS DATA RETRIEVED FROM S3 BEFORE 
   RETURNING IT TO AN APPLICATION.
   ```

## Langkah 8: Membersihkan
<a name="ol-upper-step8"></a>

Jika Anda mengubah data melalui S3 Object Lambda hanya sebagai latihan pembelajaran, hapus AWS sumber daya yang Anda alokasikan sehingga Anda tidak lagi mendapatkan biaya. 

**Topics**
+ [Menghapus Titik Akses Objek Lambda](#ol-upper-step8-delete-olap)
+ [Hapus titik akses S3](#ol-upper-step8-delete-ap)
+ [Hapus peran eksekusi untuk fungsi Lambda Anda](#ol-upper-step8-delete-lambda-role)
+ [Hapus fungsi Lambda](#ol-upper-step8-delete-lambda-function)
+ [Hapus grup CloudWatch log](#ol-upper-step8-delete-cloudwatch)
+ [Hapus file asli di bucket sumber S3](#ol-upper-step8-delete-file)
+ [Hapus bucket sumber S3](#ol-upper-step8-delete-bucket)
+ [Hapus pengguna IAM](#ol-upper-step8-delete-user)

### Menghapus Titik Akses Objek Lambda
<a name="ol-upper-step8-delete-olap"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Di panel navigasi sebelah kiri, pilih **Titik Akses Lambda Objek**.

1. Pada ** halaman ** Object Lambda Access Points, pilih tombol radio di sebelah kiri S3 Object Lambda Access Point yang Anda buat di [ Langkah 6 ](#ol-upper-step6) (misalnya,**tutorial-object-lambda-accesspoint**).

1. Pilih **Hapus**.

1. Konfirmasikan bahwa Anda ingin menghapus Object Lambda Access Point dengan memasukkan namanya di bidang teks yang muncul, lalu pilih H ** apus**.

### Hapus titik akses S3
<a name="ol-upper-step8-delete-ap"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Pada panel navigasi di kiri, pilih **Titik Akses**.

1. Arahkan ke titik akses yang Anda buat di [ Langkah 3 ](#ol-upper-step3) (misalnya,**tutorial-access-point**), dan pilih tombol radio di sebelah nama titik akses.

1. Pilih **Hapus**.

1. Konfirmasikan bahwa Anda ingin menghapus titik akses Anda dengan memasukkan namanya di bidang teks yang muncul, lalu pilih H ** apus**.

### Hapus peran eksekusi untuk fungsi Lambda Anda
<a name="ol-upper-step8-delete-lambda-role"></a>

1. Masuk ke Konsol Manajemen AWS dan buka AWS Lambda konsol di [ https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Di panel navigasi kiri, pilih **Fungsi**.

1. Pilih fungsi yang Anda buat di [ Langkah 4 ](#ol-upper-step4) (misalnya,**tutorial-object-lambda-function**).

1. Pada halaman detail fungsi Lambda Anda, pilih ** tab ** Konfigurasi, lalu pilih ** Iz ** in di panel navigasi kiri. 

1. Di bawah Per ** an ** eksekusi, pilih tautan nama ** Peran**. Konsol IAM terbuka.

1. Pada ** halaman Ring ** kasan konsol IAM dari peran eksekusi fungsi Lambda Anda, pilih ** Hapus peran. **

1. Di kotak dialog **Hapus peran**, pilih **Ya, hapus**.

### Hapus fungsi Lambda
<a name="ol-upper-step8-delete-lambda-function"></a>

1. Di AWS Lambda konsol di [ https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), pilih ** Fungsi ** di panel navigasi kiri. 

1. Pilih kotak centang di sebelah kiri nama fungsi yang Anda buat di [ Langkah 4 ](#ol-upper-step4) (misalnya,**tutorial-object-lambda-function**).

1. Pilih **Tindakan**, lalu pilih **Hapus**.

1. Di kotak dialog **Hapus fungsi**, pilih **Hapus**.

### Hapus grup CloudWatch log
<a name="ol-upper-step8-delete-cloudwatch"></a>

1. Buka CloudWatch konsol di [ https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Pada panel navigasi kiri, pilih **Grup log**.

1. Temukan grup log yang namanya diakhiri dengan fungsi Lambda yang Anda buat di [ Langkah 4 ](#ol-upper-step4) (misalnya,**tutorial-object-lambda-function**).

1. Pilih kotak centang di sebelah kiri nama grup log.

1. Pilih **Tindakan**, lalu pilih **Hapus grup log**.

1. Di kotak dialog **Hapus grup log**, pilih **Hapus**.

### Hapus file asli di bucket sumber S3
<a name="ol-upper-step8-delete-file"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Di panel navigasi kiri, pilih **Bucket**.

1. Dalam ** daftar nama ** Bucket, pilih nama bucket tempat Anda mengunggah file asli di [ Langkah 2 ](#ol-upper-step2) (misalnya,**tutorial-bucket**).

1. Pilih kotak centang di sebelah kiri nama objek yang ingin Anda hapus (misalnya,`tutorial.txt`).

1. Pilih **Hapus**.

1. Pada ** halaman ** Hapus objek, di Hapus objek ** secara permanen? **bagian, konfirmasikan bahwa Anda ingin menghapus objek ini dengan memasukkan **permanently delete** di kotak teks.

1. Pilih **Hapus objek**.

### Hapus bucket sumber S3
<a name="ol-upper-step8-delete-bucket"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di [ https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Di panel navigasi kiri, pilih **Bucket**.

1. Dalam ** daftar Bucket**, pilih tombol radio di sebelah nama bucket yang Anda buat di [ Langkah 1 ](#ol-upper-step1) (misalnya,**tutorial-bucket**).

1. Pilih **Hapus**.

1. Di halaman **Hapus bucket**, konfirmasikan bahwa Anda ingin menghapus bucket dengan memasukkan nama bucket ke dalam bidang teks, lalu pilih **Hapus bucket**.

### Hapus pengguna IAM
<a name="ol-upper-step8-delete-user"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [ https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi kiri, pilih ** Pengguna**, lalu pilih kotak centang di samping nama pengguna yang ingin Anda hapus.

1. Pilih **Hapus**.

1. Di H ** apus{{user name}}? **kotak dialog, masukkan nama pengguna di bidang input teks untuk mengkonfirmasi penghapusan pengguna. Pilih **Hapus**.

## Langkah selanjutnya
<a name="ol-upper-next-steps"></a>

Setelah menyelesaikan tutorial ini, Anda dapat menyesuaikan fungsi Lambda untuk kasus penggunaan Anda untuk memodifikasi data yang dikembalikan oleh permintaan GET S3 standar.

Berikut ini adalah daftar kasus penggunaan umum untuk S3 Object Lambda:
+ Menyembunyikan data sensitif untuk keamanan dan kepatuhan.

  Untuk informasi selengkapnya, lihat [Tutorial: Mendeteksi dan menyunting data PII dengan S3 Object Lambda dan Amazon Comprecept](tutorial-s3-object-lambda-redact-pii.md).
+ Memfilter baris data tertentu untuk memberikan informasi tertentu.
+ Menambah data dengan informasi dari layanan atau database lain.
+ Mengkonversi di seluruh format data, seperti mengonversi XML ke JSON untuk kompatibilitas aplikasi.
+ Mengompresi atau mendekompresi file saat sedang diunduh.
+ Mengubah ukuran dan menandai gambar.

  Untuk informasi selengkapnya, lihat [ Tutorial: Menggunakan S3 Object Lambda untuk menandai gambar secara dinamis saat diambil](https://aws.amazon.com/getting-started/hands-on/amazon-s3-object-lambda-to-dynamically-watermark-images/?ref=docs_gateway/amazons3/tutorial-s3-object-lambda-uppercase.html).
+ Menerapkan aturan otorisasi khusus untuk mengakses data.

Untuk informasi selengkapnya tentang S3 Lambda Objek, lihat [Mengubah objek dengan S3 Lambda Objek](transforming-objects.md).