Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi jaringan untuk AWS Lambda Fungsi Web
Fungsi Web menerima permintaan dari klien. Ini juga dapat menjangkau sumber daya lain untuk melakukan pekerjaannya, seperti database di VPC Anda, API internal, atau layanan di internet publik. Anda mengkonfigurasi dua arah ini secara independen. Anda dapat mengekspos titik akhir ke penelepon tanpa memberinya akses VPC, atau memberikan fungsi akses keluar pribadi tanpa mengubah siapa yang dapat memanggilnya.
Lalu lintas masuk mencapai Fungsi Web melalui titik akhir. Endpoint mendefinisikan nama domain, tipe endpoint, Regions, dan konfigurasi otorisasi. Lalu lintas keluar dikonfigurasi pada revisi. Revisi tanpa konektor jaringan jalan keluar mencapai tujuan publik IPv4 secara langsung. Revisi yang mereferensikan konektor mengirimkan lalu lintas keluar melalui VPC Anda. Fungsi Web berjalan pada infrastruktur yang dimiliki dan dikelola Lambda, bukan di dalam VPC Anda. Konektor jaringan jalan keluar hanya menambahkan akses VPC keluar. Itu tidak mengubah cara klien mencapai titik akhir atau siapa yang diizinkan untuk memanggilnya.
catatan
Nama domain endpoint Web Function dapat dijangkau dari internet publik. AWS PrivateLink titik akhir antarmuka tidak tersedia untuk nama domain titik akhir Fungsi Web. Gunakan konfigurasi otorisasi titik akhir untuk mengontrol akses.
Konektivitas Masuk
Klien memanggil Fungsi Web melalui titik akhir HTTPS Lambda-managed publik. Lambda menghentikan TLS dan meneruskan permintaan ke server HTTP aplikasi Anda. Endpoint terkelola mendukung HTTP/1.1. Itu tidak mengekspos alamat VPC pribadi atau menerima koneksi langsung ke lingkungan eksekusi.
IamAuthmengontrol siapa yang dapat memanggil titik akhir, tetapi itu tidak membuat titik akhir pribadi di lapisan jaringan. Untuk opsi otorisasi, lihatKontrol akses titik akhir Fungsi Web Lambda.
Endpoint mengontrol permintaan routing, otorisasi, throttling, dan scaling. Jenis titik akhir dan set Wilayah diperbaiki saat Anda membuatnya. Untuk mengubah salah satu properti, buat endpoint baru dan pindahkan klien ke nama domain barunya.
Konfigurasi titik akhir tidak tergantung pada jalan keluar VPC. Menambahkan konektor jaringan keluar ke revisi tidak membuat titik akhir menjadi pribadi dan tidak membatasi permintaan masuk.
penting
Anda dapat menggunakan konektor jaringan jalan keluar hanya dengan HomeRegion titik akhir. Lambda menolak upaya untuk merutekan PerRegion titik akhir MultiRegion atau revisi yang mereferensikan konektor jaringan keluar.
Ketika bobot revisi membagi lalu lintas antara revisi dengan konfigurasi konektor yang berbeda, permintaan menggunakan jalur jaringan yang berbeda. Saat Anda mendiagnosis konektivitas intermiten, periksa mode penerapan otomatis titik akhir dan bobot revisi terlebih dahulu. Untuk cara mereka merutekan permintaan ke revisi, lihatPola deployment.
Tambahkan pintu depan HTTP di depan titik akhir
Pintu depan adalah layanan yang menerima permintaan klien dan meneruskannya ke titik akhir Anda. Ini menambahkan kemampuan seperti domain kustom, caching, atau perlindungan firewall aplikasi web. Titik akhir Fungsi Web tidak mendukung nama domain khusus atau AWS WAF asosiasi langsung. Gunakan Amazon CloudFront di depan titik akhir saat Anda memerlukan domain khusus, cache tepi, HTTP/2 atau HTTP/3 antara penampil dan tepi, kompresi respons, atau AWS WAF kontrol.
Diagram berikut menunjukkan pintu depan produksi. Klien terhubung ke domain CloudFront khusus yang dilindungi oleh AWS WAF. CloudFront mengirimkan permintaan ke endpoint Web Function yang dilindungi, yang merutekan ke lingkungan eksekusi. Tanpa konektor jaringan jalan keluar, aplikasi dapat memanggil AWS layanan publik atau titik akhir internet. Itu tidak dapat menjangkau sumber daya yang hanya memiliki alamat VPC pribadi. Untuk mencapai sumber daya tersebut, lihatMenghubungkan Fungsi Web ke VPC Anda. DenganIamAuth, CloudFront tandatangani setiap permintaan asal, dan Lambda mengotorisasi permintaan sebelum menjalankan fungsi Anda. Lambda mempertahankan Authorization header asli pemirsa dan meneruskannya ke fungsi Anda. Lambda-provided Domain hanya menerima permintaan yang ditandatangani dari kepala sekolah dengan izin untuk memanggilnya, dan menolak permintaan langsung yang tidak ditandatangani, seperti browser yang memanggil domain secara langsung. Untuk memastikan titik akhir hanya menerima panggilan dari distribusi Anda, tambahkan kebijakan berbasis sumber daya yang memberikan izin pemanggilan ke prinsipal CloudFront layanan dan cakupannya ke Nama Sumber Daya Amazon (ARN) distribusi Anda dengan kondisi ARN sumber. DenganApplicationManaged, titik akhir bersifat publik, dan permintaan langsung melewati CloudFront dan. AWS WAF
Konfigurasikan domain Fungsi Web sebagai asal kustom HTTPS.
Lampirkan sertifikat dan nama domain alternatif ke distribusi, dan arahkan catatan Sistem Nama Domain (DNS) Anda ke distribusi.
Teruskan hanya header, cookie, dan string kueri yang dibutuhkan aplikasi. Jangan meneruskan
Hostheader pemirsa, karena Lambda merutekanHostdan mengembalikan HTTP 404 saat itu bukan domain titik akhir. Jika Anda menggunakan kebijakan permintaan asal terkelola yang meneruskan semua header penampil, pilih.AllViewerExceptHostHeaderBatas header endpoint termasuk header yang diteruskan.(Opsional) Lampirkan ACL AWS WAF web saat Anda membutuhkan inspeksi IP, bot, berbasis tarif, atau aturan terkelola.
Lindungi asal sehingga klien tidak dapat melewati distribusi. Untuk IAM-authorized titik akhir, berikan akses hanya ke identitas pintu depan yang dimaksud. Untuk otorisasi yang dikelola aplikasi, mewajibkan dan memvalidasi rahasia asal atau bukti tingkat aplikasi lainnya bahwa permintaan tersebut datang melalui distribusi.
Untuk prosedur CloudFront otorisasi, lihatCloudFront integrasi.
Akses browser dan CORS
Lambda tidak menambahkan header Cross-Origin Resource Sharing (CORS) untuk Fungsi Web. Aplikasi atau pintu depan Anda harus menangani permintaan preflight dan aktual.
Kembalikan asal yang diizinkan alih-alih mencerminkan setiap
Originnilai.Izinkan hanya metode dan header permintaan yang digunakan aplikasi.
Saat browser mengirim kredensyal, gunakan asal dan pengembalian eksplisit.
Access-Control-Allow-Credentials: trueJangan menggabungkan kredensi dengan wildcard asal.Uji permintaan
OPTIONSpreflight secara terpisah dari metode aplikasi.Otentikasi dan otorisasi setiap permintaan yang dilindungi. CORS bukan kontrol otentikasi.
Batasan streaming dan protokol
Fungsi Web mengalirkan badan permintaan ke aplikasi Anda saat mereka tiba dan mengalirkan respons kembali ke klien HTTP/1.1. Jalur permintaan setengah dupleks: Lambda meneruskan badan permintaan lengkap sebelum mengirimkan respons aplikasi Anda. Baca badan permintaan sepenuhnya sebelum Anda menulis tanggapan. Setel timeoutSeconds untuk mencakup streaming di kedua arah: menerima badan permintaan dan mengirim respons. Saat batas waktu berlalu, Lambda mengakhiri respons. Klien menerima kode status yang sudah dikirim, dengan tubuh terpotong. Hentikan pekerjaan upstream saat klien terputus.
Lambda tidak mendukung WebSocket peningkatan. Lambda menghapus header pemutakhiran khusus koneksi sebelum meneruskan permintaan. Gunakan acara yang dikirim server saat streaming server-ke-klien satu arah sudah cukup.
Untuk kontrak header dan metode lengkap, lihatPermintaan dan tanggapan HTTP.
Konektivitas keluar
Anda memilih jalur jaringan keluar untuk setiap revisi.
-
Tanpa konektor jaringan jalan keluar — Revisi mencapai
IPv4tujuan publik secara langsung tanpa melintasi VPC Anda. Alamat sumbernya Lambda-managed, tidak stabil, dan tidak cocok untuk daftar izin. Revisi tidak memiliki rute ke sumber daya pribadi di VPC Anda. -
Dengan konektor jaringan keluar - Revisi mengirimkan lalu lintas keluar melalui antarmuka jaringan elastis di subnet konektor. Tabel rute VPC Anda, grup keamanan, dan daftar kontrol akses jaringan (ACL) berlaku. Gunakan opsi ini untuk menjangkau sumber daya VPC pribadi, jaringan lokal yang terhubung melalui Direct Connect atau VPN, atau tujuan yang memerlukan lalu lintas dari ruang alamat Anda.
Mereferensikan konektor menggantikan jalur keluar default. Konektor menempatkan lalu lintas di VPC Anda, tetapi tidak menyediakan akses internet. Untuk mencapai IPv4 tujuan umum, subnet konektor memerlukan rute ke gateway NAT. Untuk mencapai IPv6 tujuan umum, mereka membutuhkan rute ke gateway internet khusus egres.
Tidak ada alamat IP sumber yang stabil untuk lalu lintas konektor. Konfigurasikan grup keamanan tujuan untuk mengizinkan grup keamanan konektor. Jika tujuan tidak mendukung referensi grup keamanan, izinkan blok CIDR subnet konektor alih-alih alamat individual.
Lambda menjalankan operasi konektor secara asinkron. Sebuah konektor melaporkan PENDING sementara Lambda membuat antarmuka jaringannya, dan ACTIVE ketika revisi dapat mereferensikannya. Negara-negara lain termasuk INACTIVEFAILED,DELETING,, danDELETE_FAILED.
Setelah pembaruan, periksa LastUpdateStatusInProgress,Successful, atauFailed. Jika operasi gagal, gunakan alasan status dan kode alasannya untuk mengidentifikasi subnet, grup keamanan, izin, atau kapasitas alamat IP yang terpengaruh.
Resolusi DNS
Untuk nama DNS pribadi, aktifkan dukungan DNS dan nama host DNS di VPC konektor. Kaitkan zona host pribadi Route 53 yang diperlukan dengan VPC tersebut.
Setiap lingkungan eksekusi menyimpan jawaban DNS. Setelah mengubah catatan DNS, lingkungan yang ada terus menggunakan jawaban lama hingga nilai cache kedaluwarsa atau Lambda menggantikan lingkungan. Untuk memaksa peluncuran yang bersih, buat revisi baru dan geser lalu lintas titik akhir ke sana.
Saat memecahkan masalah, uji resolusi nama dan jangkauan jaringan secara terpisah. Connect ke tujuan dengan alamat IP untuk memverifikasi jalur jaringan, lalu uji nama DNS-nya.
Menghubungkan Fungsi Web ke VPC Anda
Konektor jaringan jalan keluar adalah sumber daya Lambda yang dapat digunakan kembali. Anda membuat konektor sekali dan mereferensikan versi konektor yang diterbitkan dari setiap revisi Fungsi Web yang memerlukan akses VPC.
Untuk Fungsi Web, referensi konektor memiliki properti berikut:
-
Revisi referensi nol atau satu konektor.
-
Konektor ARN harus menyertakan kualifikasi versi.
-
Konektor harus berada di AWS akun dan Wilayah yang sama dengan Fungsi Web.
-
Konektor harus memiliki
WebFunctionjenis sumber daya komputasi yang terkait. -
Hanya
HomeRegiontitik akhir yang mendukung revisi yang mereferensikan konektor jaringan keluar. -
Anda tidak dapat mengubah referensi setelah Anda mengaturnya. Untuk menambah, mengubah, atau menghapusnya, buat revisi baru.
Prasyarat
Sebelum Anda membuat konektor:
-
Pilih setidaknya dua subnet di Availability Zone yang berbeda dengan alamat IP yang tersedia.
-
Pilih grup keamanan yang memungkinkan lalu lintas keluar yang diperlukan.
-
Izinkan lalu lintas masuk dari grup keamanan konektor di setiap tujuan.
-
Konfigurasikan rute dari subnet konektor ke tujuan pribadi, lokal, atau publik yang diperlukan.
-
Buat peran operator yang memberikan izin Lambda untuk mengelola antarmuka jaringan.
-
Pastikan identitas yang membuat konektor dan revisi memiliki izinIzin untuk mengkonfigurasi jaringan, termasuk
lambda:PassNetworkConnectorpada konektor dan peraniam:PassRoleoperator.
Peran operator konektor dan peran eksekusi revisi melayani tujuan yang berbeda. Peran operator mengelola antarmuka jaringan di VPC Anda. Peran eksekusi memberikan izin aplikasi Anda untuk memanggil AWS API. Anda tidak menambahkan izin antarmuka jaringan konektor ke peran eksekusi.
Izin peran operator
Lambda mengasumsikan peran operator konektor untuk mengelola antarmuka jaringan konektor. Kebijakan kepercayaan peran harus memungkinkan kepala layanan Lambda,lambda.amazonaws.com, untuk menganggapnya:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Lampirkan kebijakan izin seperti berikut ini ke peran operator konektor. Kebijakan ini memungkinkan Lambda untuk membuat dan menandai antarmuka jaringan konektor:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateENI", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "TagENI", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" } } } ] }
Membuat konektor
AWS CLI Perintah berikut membuat IPv4 konektor untuk Web Functions. Ganti nama konektor, ID subnet, ID grup keamanan, dan peran operator ARN dengan nilai Anda sendiri.
aws lambda-core create-network-connector \ --name my-connector \ --configuration '{ "VpcEgressConfiguration": { "SubnetIds": [ "subnet-0ab1c2d3e4f5a6b78", "subnet-1bc2d3e4f5a6b7c89" ], "SecurityGroupIds": ["sg-0123456789abcdef0"], "NetworkProtocol": "IPv4", "AssociatedComputeResourceTypes": ["WebFunction"] } }' \ --operator-role arn:aws:iam::123456789012:role/NetworkConnectorOperatorRole
Konektor mendukung satu jenis sumber daya komputasi. Konektor untuk Fungsi Web tidak mendukung jenis komputasi Lambda lain, dan jenis sumber daya komputasinya tidak dapat diubah.
Lambda membuat konektor secara asinkron. Gunakan get-network-connector untuk menunggu sampai State adaACTIVE, dan catat nomor versi saat ini.
Referensi konektor dari revisi
Setel serviceConfig.egressNetworkConnectorArn saat Anda membuat revisi pertama Fungsi Web atau revisi selanjutnya. Gunakan ARN yang memenuhi syarat versi:
arn:aws:lambda:us-east-1:123456789012:network-connector:nc-0a1b2c3d4e5f6a7b8:4
AWS CLI Perintah berikut membuat revisi yang referensi konektor versi 4. Ganti nama fungsi, peran eksekusi ARN, konektor ARN, dan Wilayah dengan nilai Anda sendiri.
aws lambda-web create-web-function-revision \ --function-name my-web-function \ --build-config file://build-config.json \ --service-config '{ "executionRoleArn": "arn:aws:iam::123456789012:role/WebFunctionExecutionRole", "timeoutSeconds": 30, "egressNetworkConnectorArn": "arn:aws:lambda:us-east-1:123456789012:network-connector:nc-0a1b2c3d4e5f6a7b8:4" }' \ --region us-east-1
ARN, nama konektor, atau ID konektor yang tidak memenuhi syarat tidak diterima pada revisi. Setelah membuat revisi:
-
Tunggu sampai keadaan revisi.
Active -
Baca revisi dan konfirmasikan yang
egressNetworkConnectorArnberisi versi konektor yang diharapkan. -
Konfirmasikan bahwa titik akhir mengarahkan lalu lintas ke revisi.
HomeRegionTitik akhir dalamLatestRevisionmode mengambil revisi aktif terbaru secara otomatis. Untuk titik akhir dalamDisabledmode, perbarui bobot revisinya. -
Uji tujuan VPC dan konfirmasikan lalu lintas dengan VPC Flow Logs.
Mode penerapan otomatis titik akhir menentukan apakah membuat revisi aktif memperbarui perutean secara otomatis. Di semua mode, konfirmasikan revisi mana yang disajikan sebelum menguji konektornya.
Memperbarui atau menghapus konektivitas VPC
Memperbarui konektor menerbitkan versi baru. Revisi yang ada tetap disematkan ke versi di konektor ARN mereka.
Untuk meluncurkan perubahan konektor:
-
Perbarui konektor dengan
update-network-connector. Konektor harusACTIVE. Berikan lengkapVpcEgressConfiguration, termasuk setiap ID subnet dan ID grup keamanan yang ingin Anda simpan, karena pembaruan menggantikan konfigurasi yang ada. -
Tunggu konektornya
LastUpdateStatusmenjadiSuccessful. -
Dapatkan versi konektor baru.
-
Buat revisi yang mereferensikan ARN yang memenuhi syarat versi baru.
-
Untuk
HomeRegiontitik akhir dalamLatestRevisionmode, konfirmasikan bahwa itu mengambil revisi aktif baru. Untuk titik akhir dalamDisabledmode, geser lalu lintas dengan memperbarui bobot revisinya.
Memperbarui konektor tanpa membuat revisi yang mereferensikan versi barunya tidak mengubah konfigurasi jaringan menjalankan Fungsi Web.
Untuk menghapus konektivitas VPC, buat revisi tanpa. egressNetworkConnectorArn HomeRegionTitik akhir dalam LatestRevision mode mengambilnya saat menjadi aktif. Untuk titik akhir dalam Disabled mode, geser lalu lintas dengan memperbarui bobot revisinya. Revisi baru menggunakan jalan IPv4 keluar Lambda-managed publik dan tidak lagi memiliki akses VPC pribadi.
catatan
Sebelum menghapus konektor jaringan keluar, alihkan lalu lintas titik akhir dari setiap revisi Fungsi Web yang mereferensikan versi konektor apa pun, lalu hapus revisi tersebut. Menghapus konektor saat revisi aktif masih mereferensikannya mengganggu konektivitas jaringan untuk lingkungan eksekusi yang ada dan baru yang melayani revisi itu.
Dukungan IPv6
Jalur keluar default dan IPv4 konektor IPv4 hanya mendukung. Untuk menggunakanIPv6, konfigurasikan konektor dengan NetworkProtocol set keDualStack.
Untuk konektivitas dual-stack:
-
Subnet VPC dan konektor harus memiliki
IPv6blok CIDR. -
Tabel rute harus berisi rute untuk
IPv6tujuan yang diperlukan. -
Grup keamanan dan ACL jaringan harus mengizinkan
IPv6lalu lintas. -
IPv6Akses publik memerlukan rute: :/0 ke gateway internet khusus egress. -
Referensikan versi konektor yang dibuat saat Anda memperbarui konektor ke
DualStack.
Jangan menentukan IPv6 ketersediaan dengan memeriksa antarmuka di dalam lingkungan eksekusi. Verifikasi dengan membuat IPv6 koneksi dari kode aplikasi dan memeriksa VPC Flow Logs.