Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jaringan
Anda mengonfigurasi akses jaringan untuk AWS Lambda microVM Anda dengan mengaitkan sumber daya Konektor Jaringan dengan microVM Anda pada waktu berjalan. Konektor jaringan ditentukan saat Anda memang run-microvm gil dan tidak dapat diubah saat microVM sedang berjalan.
Gambaran umum
Setiap microVM dapat memiliki konfigurasi jaringan masuk (inbound) dan keluar (keluar) independen:
-
Konektor jaringan Ingress memungkinkan konektivitas masuk. Klien terhubung ke titik akhir HTTPS yang dikelola layanan, dan Lambda meneruskan lalu lintas ke port yang Anda konfigurasikan dalam microVM. Konektor Ingress AWS dikelola — Anda mereferensikannya oleh ARN saat menjalankan microVM.
-
Konektor jaringan keluar memungkinkan lalu lintas keluar. Secara default, microVM memiliki akses internet publik. Anda dapat membuat konektor keluar VPC yang dikelola pelanggan untuk merutekan lalu lintas keluar melalui VPC Anda sebagai gantinya.
Satu konektor dapat digunakan kembali di banyak microVM — ini adalah pola penggunaan yang dimaksudkan.
Konektivitas Masuk
Setiap Lambda MicroVM dapat dijangkau di URL titik akhir HTTPS unik, yang ditetapkan saat Anda menelepon. run-microvm Klien mengirim permintaan ke titik akhir ini melalui HTTPS. Lambda merutekan setiap permintaan ke port di dalam microVM Anda, tempat aplikasi Anda menerimanya.
Secara default, permintaan yang diterima di titik akhir dialihkan ke port 8080 di dalam microVM. Untuk rute ke pelabuhan yang berbeda, lihatPerutean port.
Protokol berikut didukung pada titik akhir masuk:
-
HTTP/1.1
-
HTTP/2
-
WebSockets
-
gRPC
-
Server-Sent Acara (SSE)
catatan
Lalu lintas antara klien Anda dan titik akhir microVM selalu dienkripsi dengan TLS. Aplikasi Anda dapat melayani permintaan melalui HTTP atau HTTPS secara internal.
Perutean port
Lambda memilih port target di dalam microVM Anda menggunakan urutan prioritas berikut:
-
X-aws-proxy-portheader — Untuk permintaan HTTP standar, sertakan header ini dengan nomor port target. -
WebSocket subprotocol — Jika WebSocket klien Anda tidak dapat mengatur header khusus, tentukan port target sebagai subprotokol bernama
lambda-microvms.port., di mana nomor portNNnya. Anda menyediakan subprotokol saat Anda membuka WebSocket koneksi. Sebagai contoh, lihat Protokol. -
Default (8080) - Jika tidak ada yang ditentukan, meminta rute ke port 8080.
penting
Port target harus berada dalam yang allowedPorts ditentukan dalam token otentikasi. Permintaan ke port yang tidak sah menerima respons 403 Terlarang.
Autentikasi
Semua permintaan ke titik akhir microVM memerlukan token otentikasi yang valid di X-aws-proxy-auth header. Anda menghasilkan token menggunakancreate-microvm-auth-token. Setiap token adalah string JWE (JSON Web Encryption) terenkripsi yang dicakup untuk:
-
MicroVM tertentu (diidentifikasi oleh ID).
-
Satu set port yang diizinkan (port tunggal, jangkauan, atau semua port).
-
Waktu kedaluwarsa (dikonfigurasi saat pembuatan token).
Contoh berikut membuat token dan menggunakannya untuk mengirim permintaan yang diautentikasi:
aws lambda-microvms create-microvm-auth-token \ --microvm-identifiermicrovm-id\ --expiration-in-minutes 30 \ --allowed-ports '[{"port":8080}]'
curl 'https://microvm-endpoint' \ -H 'X-aws-proxy-auth:TOKEN' \ -H 'X-aws-proxy-port: 8080'
Untuk panduan lengkap membuat token dan menghubungkan ke microVM, termasuk WebSocket koneksi, lihatMenghubungkan ke MicroVM.
Tanggapan kesalahan
Kode status HTTP berikut dikembalikan oleh titik akhir microVM ketika tidak dapat memproses atau mengirimkan permintaan ke aplikasi Anda. Tanggapan ini berasal dari titik akhir, bukan dari aplikasi Anda.
| Kode | Status | Penyebab dan resolusi |
|---|---|---|
| 400 | Permintaan Buruk | Permintaan yang salah format, atau header port atau WebSocket subprotokol yang tidak valid. Verifikasi formatnya. |
| 403 | Dilarang | Token hilang, kedaluwarsa, atau tidak valid; atau port yang diminta tidak ada di tokenallowedPorts. Buat token baru, atau gunakan port yang diizinkan. |
| 429 | Terlalu Banyak Permintaan | Batas tarif terlampaui (tingkat akun atau per-microVM). Coba lagi dengan mundur eksponensial. |
| 500 | Kesalahan Server Internal | Terjadi kesalahan internal. Coba lagi permintaannya. |
| 502 | Gateway Buruk | Aplikasi tidak merespons, atau melanjutkan otomatis tidak berhasil dalam jumlah maksimum upaya coba lagi. Lihat Auto-resume. |
Minta header
Namespace X-aws-proxy-* header dicadangkan oleh Lambda untuk metadata permintaan, seperti token otentikasi (X-aws-proxy-auth) dan port target (X-aws-proxy-port). Lambda menghapus X-aws-proxy-* header sebelum meneruskan permintaan ke aplikasi Anda.
Request/response bandwidth
Setiap Lambda MicroVM memiliki request/response bandwidth yang berskala linier dengan ukurannya. Bandwidth ini berlaku untuk semua lalu lintas melalui titik akhir microVM, baik permintaan masuk maupun respons keluar.
| Ukuran microVM (baseline) | Bandwidth maks |
|---|---|
| 0,5 GB, 0,25 vCPU | 1 MB/s (8 Mbps) |
| 1GB, 0,5 vCPU | 2 MB/s (16 Mbps) |
| 2GB, 1 vCPU | 4 MB/s (32 Mbps) |
| 4GB, 2 vCPU | 8 MB/s (64 Mbps) |
| 8GB, 4 vCPU | 16 MB/s (128 Mbps) |
Jika Anda mengalami peningkatan latensi permintaan karena saturasi jaringan, kurangi konkurensi permintaan atau ukuran payload Anda, atau pilih ukuran microVM yang lebih besar untuk meningkatkan bandwidth yang tersedia.
HTTP/2 dukungan
Lambda MicroVMS mendukung HTTP/2 pada titik akhir masuk. Lambda menegosiasikan protokol melalui ALPN (Application-Layer Protocol Negotiation) selama jabat tangan TLS, lebih memilih HTTP/2 dan kembali ke. HTTP/1.1 HTTP/2-capable Klien menggunakannya secara otomatis.
Untuk menggunakan HTTP/2 antara titik akhir dan aplikasi Anda di dalam microVM:
-
Aplikasi Anda melayani TLS — Lambda bernegosiasi HTTP/2 dengan aplikasi Anda melalui ALPN, kembali ke HTTP/1.1 jika HTTP/2 tidak didukung.
-
Aplikasi Anda menyajikan HTTP plaintext — Sertakan
X-aws-proxy-force-h2: trueheader dalam permintaan Anda untuk digunakan HTTP/2 pada koneksi ke aplikasi Anda.
Konektivitas keluar
Secara default, Lambda MicroVM memiliki akses internet publik di jalur keluar. Untuk menghubungkan MicroVM dengan sumber daya di VPC pribadi Anda — seperti RDS, API internal ElastiCache, dan sistem lokal melalui Direct Connect atau VPN — buat Konektor Jaringan Lambda dengan konfigurasi VPC Anda.
Saat menggunakan keluar VPC, lalu lintas keluar tunduk pada aturan grup keamanan dan ACL jaringan yang mengatur lalu lintas di VPC Anda.
Bekerja dengan konektor jaringan keluar
Konektor jaringan keluar merutekan lalu lintas keluar dari microVM Anda melalui VPC Anda. Anda membuat konektor sekali, lalu mereferensikannya dengan ARN saat memulai MicroVMS melalui perintahrun-microvm.
Prasyarat
Sebelum membuat konektor jaringan, Anda memerlukan peran IAM yang memungkinkan Lambda membuat antarmuka jaringan elastis (ENI) di VPC Anda. Peran memerlukan izin berikut:
{ "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 jaringan
Buat konektor dengan menentukan subnet VPC Anda, grup keamanan, dan protokol jaringan (IPv4atauDualStack):
aws lambda-core create-network-connector \ --name my-connector \ --configuration '{ "VpcEgressConfiguration": { "SubnetIds": ["subnet-xxx"], "SecurityGroupIds": ["sg-xxx"], "NetworkProtocol": "IPv4", "AssociatedComputeResourceTypes": ["MicroVm"] } }' \ --operator-role arn:aws:iam::123456789012:role/NetworkConnectorOperatorRole
Status konektor jaringan
Konektor harus dalam ACTIVE keadaan sebelum Anda dapat mereferensikannyarun-microvm.
| Status | Deskripsi |
|---|---|
PENDING |
Konektor sedang dibuat (ENI yang mendasarinya sedang disediakan). |
ACTIVE |
Konektor siap digunakan. |
INACTIVE |
Konektor sementara tidak aktif. |
FAILED |
Penyediaan atau pembaruan gagal. Periksa StateReason. |
DELETING |
Konektor sedang dihapus; ENI sedang dibersihkan. |
DELETE_FAILED |
Penghapusan gagal. |
Menjalankan MicroVM dengan konektor jaringan
Referensikan konektor ARN saat menjalankan microVM:
aws lambda-microvms run-microvm \ --image-identifier arn:aws:lambda:us-east-1:123456789012:microvm-image:my-microvm-image \ --egress-network-connectorsconnector-arn\ --idle-policy '{"maxIdleDurationSeconds":900,"suspendedDurationSeconds":1800,"autoResumeEnabled":false}'
catatan
Sebelum Anda memperbarui atau menghapus konektor, pastikan semua microVM yang menggunakannya telah dihentikan. Memodifikasi konektor yang aktif digunakan dapat menyebabkan masalah konektivitas jaringan untuk menjalankan microVM.
Menggunakan Lambda MicroVMS dengan antarmuka titik akhir VPC (AWS PrivateLink)
Anda dapat menggunakan AWS PrivateLink untuk konektivitas pribadi melalui AWS jaringan antara sumber daya VPC Anda dan Lambda MicroVM, tanpa melintasi internet publik. MicroVMS mendukung dua titik akhir VPC, tergantung pada tujuan lalu lintas yang diinginkan:
-
API manajemen MicroVM (membuat gambar, jalankan, menangguhkan, menghentikan) - menggunakan titik akhir Lambda VPC yang ada ().
com.amazonaws.region.lambda -
Konektivitas ke MicroVMS (lalu lintas HTTPS ke aplikasi Anda yang sedang berjalan) — menggunakan titik akhir terpisah (
com.amazonaws.).region.lambda-microvm
Titik akhir VPC untuk API manajemen microVM
Lambda MicroVMS berbagi layanan titik akhir VPC yang sama dengan Lambda (). com.amazonaws. Untuk petunjuk lengkap, lihat Membuat titik akhir antarmuka untuk Lambda.region.lambda
Kebijakan titik akhir untuk API manajemen microVM
Untuk mengontrol siapa yang dapat menggunakan titik akhir antarmuka Anda dan tindakan API MicroVMS Lambda yang dapat mereka lakukan, lampirkan kebijakan titik akhir. Kebijakan ini menentukan prinsipal yang dapat melakukan tindakan, tindakan yang dapat mereka lakukan, dan sumber daya yang dapat mereka lakukan. Tindakan MicroVMS Lambda menggunakan awalan tindakan lambda: IAM.
Untuk informasi selengkapnya, lihat Mengontrol Akses ke Layanan dengan titik akhir VPC dalam Panduan Pengguna Amazon VPC.
Kebijakan contoh berikut memungkinkan pengguna MyUser untuk membuat daftar dan mendapatkan gambar microVM melalui titik akhir:
{ "Statement": [ { "Principal": { "AWS": "arn:aws:iam::111122223333:user/MyUser" }, "Effect": "Allow", "Action": [ "lambda:ListMicrovmImages", "lambda:GetMicrovmImage" ], "Resource": "*" } ] }
Titik akhir VPC untuk konektivitas microVM
Untuk menjaga lalu lintas HTTPS ke microVM Anda yang sedang berjalan tetap pribadi, buat titik akhir antarmuka untuk layanan tersebutcom.amazonaws.. Titik akhir ini menangani koneksi ke URL titik akhir microVM (misalnya,region.lambda-microvmabc123def456.lambda-microvm.us-east-1.on.aws).
Untuk mempelajari selengkapnya tentang properti titik akhir antarmuka, tinj au panduan titik akhir antarmuka di dokumentasi Amazon VPC.
Membuat titik akhir
Untuk membuat titik akhir antarmuka untuk konektivitas microVM (konsol)
-
Buka Halaman titik akhir
konsol Amazon VPC. -
Pilih Buat titik akhir.
-
Untuk Kategori layanan, verifikasi bahwa AWS layanan dipilih.
-
Untuk Nama Layanan, pilih
com.amazonaws.. Verifikasi bahwa Jenisnya adalah Antar muka.region.lambda-microvm -
Pilih VPC dan subnet.
-
Untuk mengaktifkan DNS pribadi untuk titik akhir antarmuka, pilih kotak cent ang Aktifkan nama DNS (disarankan). Ini memastikan bahwa permintaan yang menggunakan nama host titik akhir microVM publik secara otomatis diselesaikan ke titik akhir antarmuka Anda, tanpa perubahan sisi klien yang diperlukan.
-
Untuk Grup keamanan, pilih satu grup keamanan atau lebih. Grup keamanan harus mengizinkan lalu lintas TCP keluar pada port 443 ke antarmuka jaringan titik akhir.
-
Pilih Buat titik akhir.
Untuk menggunakan opsi DNS pribadi, Anda harus mengatur enableDnsSupport atribut enableDnsHostnames dan VPC Anda. Untuk informasi selengkapnya, lihat Melihat dan memperbarui dukungan DNS untuk VPC Anda di Panduan Pengguna Amazon VPC.
Untuk membuat titik akhir antarmuka untuk konektivitas MicroVM (AWS CLI)
aws ec2 create-vpc-endpoint \ --vpc-idvpc-ec43eb89\ --vpc-endpoint-type Interface \ --service-name com.amazonaws.us-east-1.lambda-microvm \ --subnet-idsubnet-abababab\ --security-group-idsg-1a2b3c4d\ --private-dns-enabled
Untuk memverifikasi bahwa titik akhir tersedia dan DNS pribadi berlaku:
aws ec2 describe-vpc-endpoints \ --vpc-endpoint-idsvpce-1a2b3c4d5e6f7g8h9\ --query 'VpcEndpoints[0].{State:State,PrivateDns:PrivateDnsEnabled,Dns:DnsEntries[*].DnsName}'
Perilaku DNS pribadi
Saat DNS pribadi diaktifkan - Titik akhir mengelola resolusi DNS untuk *.lambda-microvm. di dalam VPC Anda. Nama host titik akhir microVM Anda yang ada (misalnya,region.on.awsabc123def456.lambda-microvm.us-east-1.on.aws) diselesaikan ke alamat IP pribadi dari antarmuka jaringan titik akhir. Tidak diperlukan perubahan klien.
Saat DNS pribadi dinonaktifkan — Amazon VPC menghasilkan nama DNS khusus titik akhir untuk titik akhir Anda dalam formulir. Untuk merutekan lalu lintas melalui titik akhir ini sambil tetap mencapai microVM yang benar, Anda harus mempertahankan nama host MicroVM asli di dua tempat:vpce-id-hash.lambda-microvm.region.vpce.amazonaws.com
-
Indikasi Nama Server TLS (SNI) — Jabat tangan TLS menggunakan nilai ini untuk mengidentifikasi microVM mana yang digunakan koneksi.
-
HTTP Host header — Proxy menggunakan nilai ini untuk merutekan permintaan ke microVM yang benar.
Jika salah satu nilai disetel ke nama host titik akhir VPC alih-alih nama host microVM, koneksi tidak dapat dialihkan ke microVM yang benar.
Contoh: Hubungkan melalui nama DNS khusus titik akhir
Contoh berikut menggunakan curl --connect-to flag untuk mengarahkan koneksi TCP ke titik akhir VPC Anda sambil mempertahankan nama host microVM di URL, SNI, dan header Host:
ENDPOINT_HOST=abc123def456.lambda-microvm.us-east-1.on.aws VPCE_HOST=vpce-0a1b2c3d4e5f67890-a1b2c3d4.lambda-microvm.us-east-1.vpce.amazonaws.com curl --connect-to "$ENDPOINT_HOST:443:$VPCE_HOST:443" \ -H "x-aws-proxy-auth: $MICROVM_AUTH_TOKEN" \ -H "x-aws-proxy-port: 8080" \ "https://$ENDPOINT_HOST/"
--connect-toBendera memberitahu curl untuk membuka koneksi TCP ke alamat titik akhir VPC, sementara URL, TLS SNI, dan header Host tetap disetel ke nama host microVM Anda.
Untuk informasi selengkapnya, lihat Mengakses layanan melalui titik akhir antarmuka dalam Panduan Pengguna Amazon VPC.
Kebijakan titik akhir untuk konektivitas microVM
Anda dapat melampirkan kebijakan titik akhir untuk mengontrol microVM mana yang dapat dijangkau melalui titik akhir VPC. lambda-microvm Kebijakan titik akhir pada lambda-microvm layanan memungkinkan Anda menjangkau koneksi ke akun atau organisasi tertentu. Secara default, titik akhir memungkinkan koneksi ke microVM di akun apa pun AWS . (Catatan: Klien yang membuat koneksi harus tetap memegang token autentikasi microVM yang valid untuk diberikan akses).
Secara default, titik akhir VPC memiliki kebijakan akses penuh yang memungkinkan semua lalu lintas. Saat Anda mengganti kebijakan default dengan kebijakan khusus, Lambda MicroVMS mengevaluasi kebijakan tersebut terhadap lambda:ConnectMicrovm tindakan pada setiap koneksi yang dibuat melalui titik akhir. Jika kebijakan tidak mengizinkan koneksi ke microVMS, koneksi ditolak dengan respons HTTP 403 Terlarang. Kebijakan yang tidak memberikan menolak lambda:ConnectMicrovm semua koneksi melalui titik akhir.
catatan
T lambda:ConnectMicrovm indakan mengotorisasi koneksi ke titik akhir microVM melalui titik akhir antarmuka. Ini bukan operasi API Lambda dan tidak dapat digunakan dalam kebijakan berbasis identitas atau berbasis sumber daya IAM — ini hanya valid dalam kebijakan titik akhir VPC.
Prinsip dan sumber daya
Koneksi ke titik akhir microVM diautentikasi dengan token auth microVM, bukan AWS Signature Version 4. Untuk alasan ini, tidak ada prinsipal IAM yang terkait dengan koneksi. Sebagai gantinya, Lambda MicroVMS mengevaluasi kebijakan titik akhir dengan prinsip anonim. Ini berarti:
-
Principalharus"*". Kebijakan yang menyebutkan prinsip tertentu tidak cocok dengan apa pun dan menyangkal setiap koneksi. -
Kunci kondisi yang bergantung pada identitas pemohon (seperti
aws:PrincipalArn,aws:PrincipalOrgID, danaws:userid) tidak diisi dan tidak akan cocok. -
Resourceharus juga"*". Lambda MicroVMS tidak mencakup evaluasi kebijakan titik akhir ke ARN sumber daya MicroVM individual. Untuk membatasi microVM mana yang dapat dicapai titik akhir, gunakan kunciaws:ResourceAccountkondisi daripada elemen.Resource
Kunci kondisi yang didukung
| Kunci syarat | Deskripsi |
|---|---|
aws:ResourceAccount |
AWS Akun yang memiliki microVM yang terhubung. |
aws:ResourceOrgID |
ID AWS organisasi Organisasi dari akun yang memiliki MicroVM. |
aws:SourceVpce |
ID titik akhir antarmuka yang dilewati koneksi. |
aws:SourceVpc |
ID VPC tempat koneksi berasal. |
aws:VpcSourceIp |
Alamat IP pribadi klien yang membuat koneksi. |
Contoh: Izinkan koneksi hanya ke microVM di akun Anda sendiri
Kebijakan titik akhir berikut mengizinkan koneksi melalui titik akhir hanya ke microVM yang dimiliki oleh akun 111122223333. Koneksi ke MicroVM yang dimiliki oleh akun lain ditolak.
{ "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": "lambda:ConnectMicrovm", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }