Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat Fungsi Web Lambda
Untuk menerapkan aplikasi dengan Lambda Web Functions, Anda membuat Fungsi Web dengan revisi dan titik akhir untuk menerima lalu lintas. Konsol dan aws lambda-web deploy perintah dapat membuat Fungsi Web, revisi pertamanya, dan titik akhir pertamanya. Revisi adalah snapshot yang tidak dapat diubah dari kode dan konfigurasi Anda. Titik akhir merutekan permintaan ke revisi aktif. Untuk informasi lebih lanjut tentang sumber daya ini, lihat Konsep inti. Topik ini menunjukkan cara membuatnya menggunakan konsol Lambda dan. AWS CLI
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
-
AWS Akun. Untuk membuatnya, lihat Membandingkan opsi pendaftaran di Panduan Referensi Manajemen AWS Akun.
-
Izin untuk mengelola Fungsi Web, meneruskan peran eksekusi ke Lambda
iam:PassRole(), dan untuk membuat atau menggunakan sumber daya Amazon S3 dan IAM yang mendukung.
Konsol membuat atau menggunakan kembali sumber daya yang dibutuhkan Fungsi Web Anda, termasuk peran eksekusi dan bucket Amazon S3 untuk kode Anda.
Untuk mengikuti AWS CLI prosedur, Anda juga perlu:
-
AWS CLI versi 2, dalam rilis yang mencakup
aws lambda-webperintah. Untuk memeriksa, jalankanaws lambda-web help. Jika Anda menginstal AWS CLI menggunakan penginstal resmi atau menginstal skrip, jalankanaws updateuntuk memperbarui ke versi terbaru. Jika tidak, lihat Menginstal atau memperbarui ke versi terbaru AWS CLI. -
AWS kredensil dan Wilayah AWS dikonfigurasi untuk file. AWS CLI
-
Untuk
aws lambda-web deploy, izin untuk meneleponsts:GetCallerIdentity,s3:ListBucketpada bucket penyebaran, dan,s3:PutObjects3:GetObject, dans3:GetObjectVersionpada objeknya. -
Jika
aws lambda-web deploymembuat sumber daya default, izin untuk memanggiliam:GetRole,iam:CreateRole,iam:PutRolePolicy,s3:CreateBucket,s3:PutBucketPolicy, dans3:PutBucketVersioning. -
(Opsional) Node.js 24 atau lebih baru untuk pembangunan lokal. Untuk menginstalNode.js, lihat Unduh Node.js
di situs Node.js web.
Membuat Fungsi Web (konsol)
Gunakan konsol Lambda untuk membuat Fungsi Web, revisi pertamanya, dan titik akhir pertamanya untuk menerima lalu lintas.
Untuk membuat Fungsi Web dan titik akhir (konsol)
-
Buka konsol Lambda di. https://console.aws.amazon.com/lambda/
-
Di panel navigasi, pilih Fungsi Web.
-
Pilih Buat Fungsi Web.
-
Di bagian Informasi dasar, lakukan hal berikut:
-
Untuk nama Fungsi, masukkan nama untuk Fungsi Web Anda.
-
Untuk Runtime, pertahankan runtime default.
-
Untuk sumber Kode, simpan template Hello World untuk memulai dari aplikasi contoh yang telah dikonfigurasi sebelumnya. Untuk menerapkan kode Anda sendiri, pilih Unggah file ZIP atau Amazon S3.
-
-
Di bawah konfigurasi Endpoint, lakukan hal berikut:
-
Untuk nama Endpoint, masukkan nama untuk titik akhir.
-
Untuk Tipe, simpan Home-Region. Home-Region Titik akhir berjalan di satu Wilayah, yang menjadikannya konfigurasi paling sederhana untuk Fungsi Web pertama Anda. Untuk opsi Multi-wilayah, lihatTitik akhir Fungsi Web Lambda.
catatan
Anda tidak dapat mengubah jenis titik akhir setelah pembuatan.
-
Untuk jenis otentikasi, pilih Application-managed otentikasi. Dengan opsi ini, Lambda meneruskan semua permintaan ke aplikasi Anda, sehingga aplikasi Anda menangani autentikasi. Untuk membatasi akses, pilih autentikasi IAM, yang mengharuskan penelepon untuk menandatangani permintaan. Permintaan ke
HomeRegiondanPerRegiontitik akhir menggunakan AWS Signature Version 4 (SigV4). Permintaan keMultiRegiontitik akhir menggunakan Signature Version 4a (Sigv4a). Untuk informasi selengkapnya, lihat Kontrol akses titik akhir Fungsi Web Lambda. -
Untuk penyebaran Otomatis, simpan revisi terbaru. Dengan mode ini, Lambda secara otomatis merutekan semua lalu lintas ke setiap revisi baru setelah menjadi Aktif. Untuk kontrol lalu lintas manual dengan bobot revisi, pilih Dinonaktifkan. Untuk informasi selengkapnya, lihat Pola deployment.
-
-
(Opsional) Perluas Konfigurasi tambahan untuk mengganti pengaturan default. Secara default, Lambda membuat peran eksekusi dengan izin untuk mengunggah log ke Amazon CloudWatch, dan bucket Amazon S3 di akun Anda untuk menyimpan kode Anda. Di bagian ini, Anda dapat memilih peran IAM yang ada atau bucket Amazon S3 Anda sendiri, dan Anda juga dapat mengonfigurasi enkripsi dengan kunci yang dikelola pelanggan, konkurensi maksimum per lingkungan, variabel lingkungan, dan tag.
-
Pilih Buat Fungsi Web.
Ketika Anda memilih Create Web Function, Lambda membuat sumber daya Web Function bersama dengan revisi pertamanya, dan menciptakan endpoint pada saat yang sama. Revisi dimulai dalam status Pending sementara Lambda mengunduh kode Anda dan menyiapkan artefak kode darinya, dan kemudian beralih ke Aktif. Titik akhir juga dimulai dalam status Pending. Fungsi Web, revisinya, dan titik akhirnya masing-masing maju melalui negara-negara ini secara independen. Untuk informasi selengkapnya tentang revisi dan status siklus hidup, lihat. Konsep inti
Titik akhir mulai melayani lalu lintas ketika mencapai Aktif dan ada revisi Aktif untuk rute ke. Untuk menemukan nama domain endpoint, pada halaman detail fungsi, pilih tab Endpoints, lalu pilih endpoint. Untuk menyajikan aplikasi di domain Anda sendiri, letakkan CloudFront distribusi Amazon di depan titik akhir. Untuk informasi selengkapnya tentang jenis titik akhir dan nama domain, lihatTitik akhir Fungsi Web Lambda.
Untuk mengonfirmasi bahwa aplikasi Anda menyajikan lalu lintas, kirim permintaan ke nama domain. Karena Anda memilih Application-managed otentikasi, Anda dapat mengirim permintaan biasa tanpa menandatanganinya.
curl https://your-endpoint-domain-name/
Respons yang berhasil berarti Fungsi Web Anda menerima lalu lintas dan aplikasi Anda menyajikan permintaan.
Membuat Fungsi Web (AWS CLI)
Buat dan terapkan Fungsi Web dari terminal Anda. Perintah starter menghasilkan server Node.js HTTP kecil, menyebarkannya, dan mengembalikan URL titik akhir HTTPS.
Menyebarkan dan menguji Fungsi Web Anda
Untuk menyebarkan dan menguji fungsi Web starter
-
Jalankan perintah berikut:
aws lambda-web deploy --name my-web-app --hello-world--hello-worldmenulis file starter ke./my-web-app, membuat direktori jika tidak ada. Starter berisiserver.ts, server TypeScript HTTP, danpackage.json,README.md, danAGENTS.md. -
Saat penerapan selesai, salin URL titik akhir dari output. URL terlihat mirip dengan berikut ini:
https://bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws -
Kirim permintaan ke URL titik akhir yang Anda salin di langkah sebelumnya. Ganti
endpoint-urldengan URL tersebut:curlendpoint-urlStarter mengembalikan respons yang mirip dengan berikut ini:
{"message":"Hello from Lambda Web!","path":"/"}
Secara default, titik akhir starter menerima permintaan tanpa otentikasi. Untuk meminta otorisasi IAM, tambahkan. --auth-type IamAuth Untuk informasi tentang mengontrol akses ke titik akhir Anda, lihatKontrol akses titik akhir Fungsi Web Lambda.
Apa yang dibuat perintah
Pada penyebaran pertama, perintah:
-
Membuat atau menggunakan kembali bucket Amazon S3 dengan versi diaktifkan untuk paket penerapan.
-
Membuat atau menggunakan kembali peran eksekusi IAM dengan izin Amazon CloudWatch Logs.
-
Membuat Fungsi Web dan revisi pertamanya.
-
Membuat
HomeRegiontitik akhir bernamadevdan menunggu sampai menjadi.ActiveUntuk menggunakan nama yang berbeda, tambahkan--endpoint-name.
Fungsi Web berisi revisi kode dan konfigurasi yang tidak dapat diubah. Pada penerapan selanjutnya, perintah membuat revisi lain. devTitik akhir menggunakan LatestRevision mode dan melayani revisi setelah menjadi aktif.
Menyebarkan perubahan
Setelah Anda mengedit aplikasi starter, jalankan:
aws lambda-web deploy \ --name my-web-app \ --code ./my-web-app
Menjalankan perintah ini mengunggah paket Anda yang diperbarui, membuat revisi, dan menunggu revisi menjadi. Active devTitik akhir telah autoDeploymentMode diatur ke LatestRevision dan melayani revisi secara otomatis. URL-nya tetap sama.
Untuk menerapkan aplikasi Anda sendiri alih-alih starter, teruskan direktorinya ke--code. Server Anda harus mendengarkan pada host dan port dalam variabel AWS_LAMBDA_HTTP_ENDPOINT lingkungan. Secara default, runtime dimuat index.js di root paket penerapan. Untuk menggunakan file entri yang berbeda, atur variabel AWS_LAMBDA_NODEJS_ENTRYPOINT lingkungan. Lambda tidak memverifikasi bahwa server Anda mulai mendengarkan saat membuat revisi. Akibatnya, revisi dan titik akhir dapat ditampilkan Active meskipun permintaan gagal. Untuk informasi selengkapnya, lihat Runtime Fungsi Web Lambda.
Gunakan yang sudah ada AWS sumber daya
Jika Anda sudah mengelola bucket Amazon S3 atau peran eksekusi IAM, gunakan perintah berikut untuk menggunakan kembali resource tersebut alih-alih membuat default. Bucket harus mengaktifkan versi dan kebijakan bucket yang memberikan prinsip layanan Lambda () dan. lambda.amazonaws.com s3:GetObject s3:GetObjectVersion Perintah tidak mengubah konfigurasi bucket yang Anda tentukan. Untuk persyaratan bucket, lihatKebijakan bucket untuk Lambda. Ganti contoh nilai sumber daya dengan milik Anda sendiri.
aws lambda-web deploy \ --name my-web-app \ --code ./my-web-app \ --bucket-name amzn-s3-demo-bucket \ --execution-role-arn arn:aws:iam::111122223333:role/my-web-app-execution-role
Peran eksekusi harus memungkinkan Lambda untuk mengambilnya dan harus memberikan izin yang dibutuhkan aplikasi Anda. Untuk informasi selengkapnya, lihat Peran eksekusi.
Anda dapat menghilangkan salah satu opsi sumber daya untuk membiarkan deploy membuat default. Saat deploy membuat Fungsi Web tanpa--hello-world, atau menambahkan titik akhir, ia meminta Anda untuk menekan Enter untuk mengonfirmasi. Dalam skrip atau CI/CD pipeline, tambahkan --create untuk mengonfirmasi tanpa prompt.
Gunakan perintah API secara langsung
deployPerintah mengunggah kode Anda ke Amazon S3 dan membuat Fungsi Web, revisi, dan titik akhir untuk Anda. Untuk mengontrol sendiri setiap langkah, gunakan AWS CLI perintah yang memetakan ke operasi API, seperticreate-web-function,create-web-function-revision, danupdate-web-function-endpoint. Dalam perintah berikut, ganti setiap placeholder input pengguna dengan informasi Anda sendiri.
Untuk membuat Fungsi Web dengan perintah API (AWS CLI)
-
Buat paket deployment .zip dari direktori aplikasi Anda, dengan file entri Anda di root paket. Unggah paket ke bucket Amazon S3 yang memenuhi persyaratan di. Prasyarat Perintah berikut membuat paket dan menggunakan AWS CLI untuk mengunggahnya.
cdmy-appzip -r ../my-app.zip . aws s3 cp ../my-app.zip s3://amzn-s3-demo-bucket/my-app.zip -
Gunakan AWS CLI perintah berikut untuk membuat Web Function dengan revisi pertama dan endpoint. Dalam
revisionConfig,buildConfigmenentukan lokasi kode dan runtime, danserviceConfigmenentukan peran eksekusi.endpointConfigProperti mendefinisikan titik akhir.aws lambda-web create-web-function \ --function-namemy-web-app\ --revision-config '{ "buildConfig": { "codeConfig": { "s3Object": { "bucket": "amzn-s3-demo-bucket", "key": "my-app.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }, "serviceConfig": { "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-app-execution-role" } }' \ --endpoint-config '{ "endpointName": "my-endpoint", "endpointType": "HomeRegion", "authType": "ApplicationManaged", "autoDeploymentMode": "LatestRevision" }'autoDeploymentModeProperti ini opsional. Jika Anda menghilangkannya, defaultnya adalahDisabled, dan titik akhir tidak merutekan lalu lintas ke revisi baru secara otomatis. Perhatikan revisi dalam tanggapan.revisionId -
Tunggu sampai revisi selesai
Active. Gantirev-abc12dengan ID revisi dari langkah sebelumnya.aws lambda-web wait web-function-revision-active \ --function-namemy-web-app\ --revision-idrev-abc12 -
Dapatkan detail titik akhir.
aws lambda-web get-web-function-endpoint \ --function-namemy-web-app\ --endpoint-namemy-endpointKetika titik akhir
stateadalahActive, kirim permintaan ke nyadomainName. Responsnya terlihat seperti kutipan berikut.{ "endpointName": "my-endpoint", "endpointType": "HomeRegion", "domainName": "bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws", "authType": "ApplicationManaged", "autoDeploymentMode": "LatestRevision", "state": "Active", "updateStatus": "Successful" }
Untuk menerapkan perubahan dengan perintah API (AWS CLI)
-
Unggah paket baru dan buat revisi. Revisi adalah snapshot lengkap, jadi lewati penuh
buildConfigdanserviceConfigsetiap kali.aws s3 cp ../my-app.zip s3://amzn-s3-demo-bucket/my-app.zip aws lambda-web create-web-function-revision \ --function-namemy-web-app\ --build-config '{ "codeConfig": { "s3Object": { "bucket": "amzn-s3-demo-bucket", "key": "my-app.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-app-execution-role" }'Karena titik akhir telah
autoDeploymentModeditetapkanLatestRevision, ia merutekan semua lalu lintas ke revisi baru setelah revisi menjadi.ActiveJika Anda mengaturautoDeploymentModekeDisabled, Anda merutekan lalu lintas denganupdate-web-function-endpointdan merevisi bobot sebagai gantinya. Untuk informasi selengkapnya, lihat Pola deployment.
Bersihkan
Saat Anda tidak lagi membutuhkan Fungsi Web, hapus:
aws lambda-web delete-web-function --function-name my-web-app
Perintah ini juga menghapus endpoint dan revisi Web Function. Ini tidak menghapus sumber daya yang deploy dibuat atau digunakan: peran eksekusi IAM (secara awscli-lambdaweb-my-web-app default), paket penerapan lambda-web/my-web-app/ di bucket Amazon S3 awscli-lambdaweb- (secara default), termasuk versi objek yang tidak terkini, atau grup log CloudWatch Amazon Logs untuk Fungsi Web. Hapus sumber daya tersebut secara terpisah hanya jika Anda tidak lagi membutuhkannya. Bucket Amazon S3 yang dikelola dapat dibagikan oleh penerapan lain di wilayah dan wilayah yang sama. Akun AWS account-id-region-an