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
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 memerlukan modifikasi atau pemrosesan data Anda untuk kasus penggunaan tertentu. Misalnya, kumpulan data yang dibuat oleh aplikasi e-niaga mungkin termasuk 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

Tujuan
Dalam tutorial ini, Anda mempelajari cara 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 mempelajari cara mengubah semua teks dalam objek asli yang disimpan di S3 menjadi huruf besar melalui S3 Object Lambda.
catatan
Tutorial ini menggunakan kode Python untuk mengubah data, misalnya menggunakan lainnya AWS SDKs lihat Transform data untuk aplikasi Anda dengan S3 Object Lambda di SDK Code Examples Library. AWS
Prasyarat
Sebelum Anda memulai tutorial ini, Anda harus memiliki Akun AWS yang dapat Anda masuki sebagai pengguna AWS Identity and Access Management (IAM) dengan izin yang benar. Anda juga harus menginstal Python versi 3.8 atau yang lebih baru.
Sublangkah
Buat pengguna IAM dengan izin di Akun AWS (konsol) Anda
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) di Panduan Pengguna IAM.
Pengguna IAM Anda memerlukan kebijakan berikut:
-
AmazonS3 FullAccess
- Memberikan izin untuk semua tindakan Amazon S3, termasuk izin untuk membuat dan menggunakan Titik Akses Lambda Objek. -
AWSLambda_FullAccess
— Memberikan izin untuk semua tindakan Lambda. -
IAMFullAkses
- Memberikan izin untuk semua tindakan IAM. -
IAMAccessAnalyzerReadOnlyAccess
— Memberikan izin untuk membaca semua informasi akses yang disediakan oleh IAM Access Analyzer. -
CloudWatchLogsFullAccess
— Memberikan akses penuh ke CloudWatch Log.
catatan
Untuk kesederhanaan, tutorial ini membuat dan menggunakan pengguna IAM. Setelah menyelesaikan tutorial ini, ingatlah untukHapus pengguna IAM. Untuk penggunaan produksi, kami menyarankan Anda mengikuti praktik terbaik Keamanan di IAM dalam Panduan Pengguna IAM. Praktik terbaik mengharuskan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS dengan kredensi sementara. Praktik terbaik lainnya adalah meminta beban kerja untuk menggunakan kredensil sementara dengan peran IAM untuk mengakses. AWS Untuk mempelajari cara menggunakan AWS IAM Identity Center untuk membuat pengguna dengan kredensial sementara, lihat Memulai di AWS IAM Identity Center Panduan Pengguna.
Tutorial ini juga menggunakan kebijakan AWS terkelola akses penuh. Untuk penggunaan produksi, sebaiknya Anda hanya memberikan izin minimum yang diperlukan untuk kasus penggunaan Anda, sesuai dengan praktik terbaik keamanan.
Instal Python 3.8 atau yang lebih baru di komputer lokal Anda
Gunakan prosedur berikut untuk menginstal Python 3.8 atau yang lebih baru pada mesin lokal Anda. Untuk petunjuk penginstalan lainnya, lihat halaman Mengunduh Python
-
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
-
Jika Anda tidak memiliki Python 3.8 atau yang lebih baru, unduh penginstal resmi
Python 3.8 atau yang lebih baru yang cocok untuk mesin lokal Anda. -
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 Instal Sekarang.
-
Mulai ulang terminal Anda dengan menutup dan membukanya kembali.
-
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
-
Jalankan perintah berikut untuk memverifikasi bahwa manajer paket pip3 diinstal. Jika Anda melihat nomor versi pip dan python 3.8 atau yang lebih baru dalam respons perintah, itu berarti manajer paket pip3 berhasil diinstal.
pip --version
Langkah 1: Buat ember S3
Buat bucket untuk menyimpan data asli yang Anda rencanakan untuk diubah.
Untuk membuat bucket
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Pilih Buat bucket.
Halaman Buat bucket terbuka.
-
Untuk nama Bucket, masukkan nama (misalnya,
tutorial-bucket
) untuk bucket Anda.Untuk informasi selengkapnya tentang penamaan bucket di Amazon S3, lihat. Aturan penamaan ember tujuan umum
-
Untuk Wilayah, pilih Wilayah AWS tempat Anda ingin ember berada.
Untuk informasi selengkapnya tentang Wilayah bucket, lihatIkhtisar ember tujuan umum.
-
Untuk pengaturan Blokir Akses Publik untuk bucket ini, pertahankan pengaturan default (Blokir semua akses publik diaktifkan).
Kami menyarankan agar Anda tetap mengaktifkan semua pengaturan Blokir Akses Publik kecuali Anda perlu menonaktifkan satu atau beberapa pengaturan tersebut untuk kasus penggunaan Anda. Untuk informasi lebih lanjut tentang pemblokiran akses publik, lihat Melakukan blok akses publik ke penyimpanan Amazon S3 Anda.
-
Untuk pengaturan yang tersisa, pertahankan defaultnya.
(Opsional) Jika Anda ingin mengonfigurasi pengaturan bucket tambahan untuk kasus penggunaan spesifik Anda, lihatMembuat ember tujuan umum.
-
Pilih Buat bucket.
Langkah 2: Unggah file ke bucket S3
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.
Untuk mengunggah file ke ember
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Dalam daftar Bucket, pilih nama bucket yang Anda buat di Langkah 1 (misalnya,
tutorial-bucket
) untuk mengunggah file Anda. -
Di tab Objek untuk bucket Anda, pilih Unggah.
-
Pada halaman Unggah, di bawah File dan folder, pilih Tambahkan file.
-
Pilih file yang akan diunggah, lalu pilih Buka. Misalnya, Anda dapat mengunggah contoh
tutorial.txt
file yang disebutkan sebelumnya. -
Pilih Unggah.
Langkah 3: Buat titik akses S3
Untuk menggunakan Titik Akses Lambda Objek S3 untuk mengakses dan mengubah data asli, Anda harus membuat titik akses S3 dan mengaitkannya dengan bucket S3 yang Anda buat di Langkah 1. 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
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pada panel navigasi di kiri, pilih Titik Akses.
-
Pada halaman Titik Akses, pilih Buat titik akses.
-
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 jalur akses Amazon S3 untuk bucket tujuan umum.
-
Di bidang Nama Bucket, masukkan nama bucket yang Anda buat di Langkah 1 (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 tersebut.
-
Untuk asal Jaringan, pilih Internet.
Untuk informasi lebih lanjut tentang asal jaringan untuk titik akses, lihat Membuat titik akses untuk bucket tujuan umum terbatas pada cloud pribadi virtual.
-
Secara default, semua pengaturan Blokir Akses Publik diaktifkan untuk titik akses Anda. Kami menyarankan agar Anda tetap mengaktifkan Blokir semua akses publik.
Untuk informasi selengkapnya, lihat Mengelola akses publik ke titik akses untuk ember tujuan umum.
-
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, Anda dapat menentukan kebijakan titik akses. Untuk informasi selengkapnya, lihat Contoh kebijakan untuk titik akses untuk bucket tujuan umum.
-
Pilih Buat titik akses.
Langkah 4: Buat fungsi Lambda
Untuk mengubah data asli, buat fungsi Lambda untuk digunakan dengan Titik Akses Lambda Objek S3 Anda.
Sublangkah
Tulis kode fungsi Lambda dan buat paket penyebaran dengan lingkungan virtual
-
Pada mesin lokal Anda, buat folder dengan nama folder
object-lambda
untuk lingkungan virtual untuk digunakan nanti dalam tutorial ini. -
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 dengan Python. Simpan fungsi ini dalam file bernamatransform.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 benda besar. Untuk informasi selengkapnya tentang respons streaming dengan Titik Akses Objek Lambda, lihat contoh streaming di. Bekerja dengan GetObject permintaan di Lambda
Saat Anda menulis fungsi Lambda untuk digunakan dengan Titik Akses Lambda Objek S3, fungsi ini didasarkan pada konteks peristiwa masukan 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 rincian input dan output untuk koneksi ke Amazon S3 dan S3 Object Lambda. Ini memiliki bidang-bidang berikut:-
inputS3Url
— URL presigned yang dapat digunakan fungsi Lambda untuk mengunduh objek asli dari titik akses pendukung. Dengan menggunakan URL yang telah ditetapkan 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 URL Lambda Objek S3 saat fungsi Lambda memanggilWriteGetObjectResponse
untuk mengirim kembali objek yang diubah. -
outputToken
— Token yang digunakan oleh S3 Object Lambda untukWriteGetObjectResponse
mencocokkan panggilan dengan penelepon asli saat mengirim kembali objek yang diubah.
Untuk informasi selengkapnya tentang semua bidang dalam konteks acara, lihat Format konteks peristiwa dan penggunaan danMenulis fungsi Lambda untuk Titik Akses S3 Lambda Objek.
-
-
Di terminal lokal Anda, masukkan perintah berikut untuk menginstal
virtualenv
paket:python -m pip install virtualenv
-
Di terminal lokal Anda, buka
object-lambda
folder yang Anda buat sebelumnya, lalu masukkan perintah berikut untuk membuat dan menginisialisasi lingkungan virtual yang disebutvenv
.python -m virtualenv venv
-
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, prompt perintah Anda berubah menjadi show (venv), menunjukkan bahwa lingkungan virtual aktif.
-
Untuk menginstal pustaka yang diperlukan, jalankan perintah berikut baris demi baris di lingkungan
venv
virtual.Perintah ini menginstal versi terbaru dari dependensi fungsi Lambda
lambda_handler
Anda. Dependensi ini adalah AWS SDK untuk Python (Boto3) dan modul request.pip3 install boto3
pip3 install requests
-
Untuk menonaktifkan lingkungan virtual, jalankan perintah berikut:
deactivate
-
Untuk membuat paket penyebaran dengan pustaka yang diinstal sebagai
.zip
file bernamalambda.zip
di rootobject-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
ataudist-packages
, dan folder pertama mungkinlib
ataulib64
. Juga,python
folder mungkin diberi nama dengan versi Python yang berbeda. Untuk menemukan paket tertentu, gunakanpip 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
. -
Tambahkan file kode fungsi
transform.py
ke root paket penyebaran 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)
Masuk ke AWS Management Console dan buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Di panel navigasi kiri, pilih Fungsi.
-
Pilih Buat fungsi.
-
Pilih Penulis dari scratch.
-
Di bagian Informasi dasar, lakukan hal berikut:
-
Untuk Nama fungsi, masukkan
tutorial-object-lambda-function
. -
Untuk Runtime, pilih Python 3.8 atau versi yang lebih baru.
-
-
Perluas bagian Ubah peran eksekusi default. Di bawah Peran eksekusi, pilih Buat peran baru dengan izin Lambda dasar.
Pada Langkah 5 nanti dalam tutorial ini, Anda melampirkan AmazonS3 ke peran eksekusi ObjectLambdaExecutionRolePolicy fungsi Lambda ini.
-
Pertahankan pengaturan yang tersisa disetel ke default.
-
Pilih Buat fungsi.
Terapkan kode fungsi Lambda Anda dengan arsip file.zip dan konfigurasikan fungsi Lambda (konsol)
-
Di AWS Lambda konsol di https://console.aws.amazon.com/lambda/
, pilih Fungsi di panel navigasi kiri. -
Pilih fungsi Lambda yang Anda buat sebelumnya (misalnya,
tutorial-object-lambda-function
). -
Pada halaman detail fungsi Lambda, pilih tab Kode. Di bagian Sumber Kode, pilih Unggah dari dan kemudian file.zip.
-
Pilih Unggah untuk memilih
.zip
file lokal Anda. -
Pilih
lambda.zip
file yang Anda buat sebelumnya, lalu pilih Buka. -
Pilih Simpan.
-
Di bagian Pengaturan waktu proses, pilih Edit.
-
Pada halaman Edit pengaturan runtime, konfirmasikan bahwa Runtime diatur ke Python 3.8 atau versi yang lebih baru.
-
Untuk memberi tahu runtime Lambda metode handler mana dalam kode fungsi Lambda Anda yang akan dipanggil, masukkan untuk Handler.
transform.lambda_handler
Ketika Anda mengkonfigurasi fungsi dalam Python, nilai pengaturan handler adalah nama file dan nama modul handler, dipisahkan oleh titik. Misalnya,
transform.lambda_handler
memanggillambda_handler
metode yang didefinisikan dalamtransform.py
file. -
Pilih Simpan.
-
(Opsional) Pada halaman detail fungsi Lambda Anda, pilih tab Konfigurasi. Di panel navigasi kiri, pilih Konfigurasi umum, lalu pilih Edit. Di bidang Timeout, masukkan
1
min0
sec. Pertahankan pengaturan yang tersisa disetel ke default, dan pilih Simpan.Timeout adalah jumlah waktu yang memungkinkan Lambda menjalankan fungsi 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 kode Anda berjalan.
Langkah 5: Konfigurasikan kebijakan IAM untuk peran eksekusi fungsi Lambda Anda
Untuk mengaktifkan fungsi Lambda Anda untuk menyediakan data yang disesuaikan dan header respons kepada GetObject
pemanggil, peran eksekusi fungsi Lambda Anda harus memiliki izin IAM untuk memanggil API. WriteGetObjectResponse
Untuk melampirkan kebijakan IAM ke peran fungsi Lambda
-
Di AWS Lambda konsol di https://console.aws.amazon.com/lambda/
, pilih Fungsi di panel navigasi kiri. -
Pilih fungsi yang Anda buat di Langkah 4 (misalnya,
tutorial-object-lambda-function
). -
Pada halaman detail fungsi Lambda Anda, pilih tab Konfigurasi, lalu pilih Izin di panel navigasi kiri.
-
Di bawah Peran eksekusi, pilih tautan nama Peran. Konsol IAM terbuka.
-
Pada halaman Ringkasan konsol IAM untuk peran eksekusi fungsi Lambda Anda, pilih tab Izin. Kemudian, dari menu Tambahkan Izin, pilih Lampirkan kebijakan.
-
Pada halaman Lampirkan Izin, masukkan
AmazonS3ObjectLambdaExecutionRolePolicy
di kotak pencarian untuk memfilter daftar kebijakan. Pilih kotak centang di sebelah nama kebijakan AmazonS3 ObjectLambdaExecutionRolePolicy. -
Pilih Lampirkan kebijakan.
Langkah 6: Buat Titik Akses Lambda Objek S3
Titik Akses Lambda Objek S3 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 Titik Akses Lambda Objek S3, Anda harus menentukan fungsi Lambda untuk memanggil dan memberikan konteks acara dalam format JSON sebagai parameter khusus untuk digunakan Lambda.
Untuk membuat Objek S3 Lambda Access Point
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi sebelah kiri, pilih Titik Akses Lambda Objek.
-
Pada halaman Titik Akses Lambda Objek, pilih Buat Titik Akses Lambda Objek.
-
Untuk nama Object Lambda Access Point, masukkan nama yang ingin Anda gunakan untuk Object Lambda Access Point (misalnya,).
tutorial-object-lambda-accesspoint
-
Untuk Mendukung Titik Akses, masukkan atau telusuri ke titik akses standar yang Anda buat di Langkah 3 (misalnya,
tutorial-access-point
), lalu pilih Pilih Titik Akses pendukung. -
Untuk S3 APIs, untuk mengambil objek dari bucket S3 agar fungsi Lambda dapat diproses, pilih. GetObject
-
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 (misalnya,
tutorial-object-lambda-function
) dari daftar dropdown fungsi Lambda.
-
-
(Opsional) Jika Anda memerlukan fungsi Lambda Anda 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 nomor rentang atau bagian dengan S3 Object Lambda, lihat. Bekerja dengan Range and partNumber headers
-
(Opsional) Di bawah Payload - opsional, tambahkan teks JSON untuk menyediakan fungsi Lambda Anda dengan informasi tambahan.
Payload adalah teks JSON opsional yang dapat Anda berikan ke fungsi Lambda Anda sebagai masukan untuk semua pemanggilan yang berasal dari Titik Akses Lambda Objek S3 tertentu. Untuk menyesuaikan perilaku untuk beberapa Titik Akses Lambda Objek yang menjalankan fungsi Lambda yang sama, Anda dapat mengonfigurasi muatan dengan parameter yang berbeda, sehingga memperluas fleksibilitas fungsi Lambda Anda.
Untuk informasi selengkapnya tentang payload, lihatFormat konteks peristiwa dan penggunaan.
-
(Opsional) Untuk metrik Permintaan - opsional, pilih Nonaktifkan atau Aktifkan untuk menambahkan pemantauan Amazon S3 ke Titik Akses Lambda Objek Anda. Metrik permintaan ditagih dengan tarif Amazon CloudWatch standar. Untuk informasi selengkapnya, lihat harga CloudWatch
. -
Di bawah kebijakan Titik Akses Objek Lambda - opsional, pertahankan pengaturan default.
(Opsional) Anda dapat menetapkan kebijakan sumber daya. Kebijakan resource ini memberikan izin
GetObject
API untuk menggunakan Object Lambda Access Point yang ditentukan. -
Pertahankan pengaturan yang tersisa disetel ke default, dan pilih Buat Objek Lambda Access Point.
Langkah 7: Lihat data yang diubah
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.
Sublangkah
Lihat data yang diubah di Titik Akses Lambda Objek S3 Anda
Saat Anda meminta untuk mengambil file melalui Titik Akses Lambda Objek S3, 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
-
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi sebelah kiri, pilih Titik Akses Lambda Objek.
-
Pada halaman Titik Akses Objek Lambda, pilih Titik Akses Lambda Objek S3 yang Anda buat di Langkah 6 (misalnya,).
tutorial-object-lambda-accesspoint
-
File ini harus berisi semua data yang diubah.
-
Untuk melihat data yang diubah, pilih Buka atau Unduh.
Jalankan skrip Python untuk mencetak data asli dan diubah
Anda dapat menggunakan S3 Object Lambda dengan aplikasi yang ada. Untuk melakukannya, perbarui konfigurasi aplikasi Anda untuk menggunakan ARN Titik Akses Lambda Objek S3 baru yang Anda buat di Langkah 6 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.
-
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi sebelah kiri, pilih Titik Akses Lambda Objek.
-
Pada halaman Titik Akses Objek Lambda, pilih tombol radio di sebelah kiri Titik Akses Lambda Objek S3 yang Anda buat di Langkah 6 (misalnya,).
tutorial-object-lambda-accesspoint
-
Pilih Salin ARN.
-
Simpan ARN untuk digunakan nanti.
-
Tulis skrip Python di mesin lokal Anda untuk mencetak data asli (misalnya,
tutorial.txt
) dari Bucket S3 Anda dan data yang diubah (misalnya,tutorial.txt
) dari Titik Akses Lambda Objek S3 Anda). Anda dapat menggunakan contoh script 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
") -
Simpan skrip Python Anda dengan nama khusus (misalnya,
tutorial_print.py
) di folder (misalnya,object-lambda
) yang Anda buat di Langkah 4 di mesin lokal Anda. -
Di terminal lokal Anda, jalankan perintah berikut dari root direktori (misalnya,
object-lambda
) yang Anda buat di Langkah 4.python3 tutorial_print.py
Anda akan melihat data asli dan data yang diubah (semua teks sebagai huruf besar) melalui terminal. Misalnya, Anda akan 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
Jika Anda mengubah data Anda melalui S3 Object Lambda hanya sebagai latihan pembelajaran, hapus AWS sumber daya yang Anda alokasikan sehingga Anda tidak lagi menambah biaya.
Sublangkah
Hapus Titik Akses Objek Lambda
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi sebelah kiri, pilih Titik Akses Lambda Objek.
-
Pada halaman Titik Akses Objek Lambda, pilih tombol radio di sebelah kiri Titik Akses Lambda Objek S3 yang Anda buat di Langkah 6 (misalnya,).
tutorial-object-lambda-accesspoint
-
Pilih Hapus.
-
Konfirmasikan bahwa Anda ingin menghapus Titik Akses Objek Lambda Anda dengan memasukkan namanya di bidang teks yang muncul, lalu pilih Hapus.
Hapus titik akses S3
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pada panel navigasi di kiri, pilih Titik Akses.
-
Arahkan ke titik akses yang Anda buat di Langkah 3 (misalnya,
tutorial-access-point
), dan pilih tombol radio di sebelah nama titik akses. -
Pilih Hapus.
-
Konfirmasikan bahwa Anda ingin menghapus jalur akses Anda dengan memasukkan namanya di bidang teks yang muncul, lalu pilih Hapus.
Hapus peran eksekusi untuk fungsi Lambda Anda
-
Masuk ke AWS Management Console dan buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Di panel navigasi kiri, pilih Fungsi.
-
Pilih fungsi yang Anda buat di Langkah 4 (misalnya,
tutorial-object-lambda-function
). -
Pada halaman detail fungsi Lambda Anda, pilih tab Konfigurasi, lalu pilih Izin di panel navigasi kiri.
-
Di bawah Peran eksekusi, pilih tautan nama Peran. Konsol IAM terbuka.
-
Pada halaman Ringkasan konsol IAM tentang peran eksekusi fungsi Lambda Anda, pilih Hapus peran.
-
Di kotak dialog Hapus peran, pilih Ya, hapus.
Hapus fungsi Lambda
-
Di AWS Lambda konsol di https://console.aws.amazon.com/lambda/
, pilih Fungsi di panel navigasi kiri. -
Pilih kotak centang di sebelah kiri nama fungsi yang Anda buat di Langkah 4 (misalnya,
tutorial-object-lambda-function
). -
Pilih Tindakan, lalu pilih Hapus.
-
Di kotak dialog Hapus fungsi, pilih Hapus.
Hapus grup CloudWatch log
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Pada panel navigasi kiri, pilih Grup log.
-
Temukan grup log yang namanya diakhiri dengan fungsi Lambda yang Anda buat di Langkah 4 (misalnya,
tutorial-object-lambda-function
). -
Pilih kotak centang di sebelah kiri nama grup log.
-
Pilih Tindakan, lalu pilih Hapus grup log.
-
Di kotak dialog Hapus grup log, pilih Hapus.
Hapus file asli di bucket sumber S3
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Dalam daftar nama Bucket, pilih nama bucket tempat Anda mengunggah file asli di Langkah 2 (misalnya,
tutorial-bucket
). -
Pilih kotak centang di sebelah kiri nama objek yang ingin Anda hapus (misalnya,
tutorial.txt
). -
Pilih Hapus.
-
Pada halaman Hapus objek, di objek Hapus secara permanen? bagian, konfirmasikan bahwa Anda ingin menghapus objek ini dengan memasukkan
permanently delete
di kotak teks. -
Pilih Hapus objek.
Hapus bucket sumber S3
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Dalam daftar Bucket, pilih tombol radio di sebelah nama bucket yang Anda buat di Langkah 1 (misalnya,
tutorial-bucket
). -
Pilih Hapus.
-
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
Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Di panel navigasi kiri, pilih Pengguna, lalu pilih kotak centang di sebelah nama pengguna yang ingin Anda hapus.
-
Pilih Hapus di bagian atas halaman.
-
Di Hapus
user name
? kotak dialog, masukkan nama pengguna di bidang input teks untuk mengonfirmasi penghapusan pengguna. Pilih Hapus.
Langkah selanjutnya
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:
-
Menyembunyi data sensitif untuk keamanan dan kepatuhan.
Untuk informasi selengkapnya, lihat Tutorial: Mendeteksi dan menyunting data PII dengan Objek S3 Lambda dan Amazon Comprehend.
-
Memfilter baris data tertentu untuk memberikan informasi spesifik.
-
Menambah data dengan informasi dari layanan atau database lain.
-
Mengonversi seluruh format data, seperti mengonversi XHTML ke JSON untuk kompatibilitas aplikasi.
-
Mengompresi atau mendekompresi file saat sedang diunduh.
-
Mengubah ukuran dan menandai gambar.
Untuk informasi lebih lanjut, lihat Tutorial: Menggunakan S3 Object Lambda untuk menandai gambar secara dinamis
saat diambil. -
Menerapkan aturan otorisasi khusus untuk mengakses data.
Untuk informasi selengkapnya tentang S3 Lambda Objek, lihat Mengubah objek dengan S3 Lambda Objek.