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 microVMS Anda dengan mengaitkan sumber daya Konektor Jaringan dengan microVM Anda pada waktu berjalan. Konektor jaringan ditentukan saat Anda menelepon run-microvm dan tidak dapat diubah saat microVM sedang berjalan.
Gambaran umum
Setiap microVM dapat memiliki konfigurasi jaringan ingress (inbound) dan egress (outbound) independen:
-
Konektor jaringan masuk 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 dengan ARN saat menjalankan microVM.
-
Konektor jaringan keluar memungkinkan lalu lintas keluar. Secara default, microVMS memiliki akses internet publik. Anda dapat membuat konektor keluar VPC yang dikelola pelanggan untuk merutekan lalu lintas keluar melalui VPC Anda sebagai gantinya.
Konektor tunggal dapat digunakan kembali di banyak microVM - ini adalah pola penggunaan yang dimaksudkan.
Konektivitas masuk
Setiap MicroVM Lambda 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 dirutekan ke port 8080 di dalam microVM. Untuk rute ke port 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 endpoint 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 subprotokol - Jika WebSocket klien Anda tidak dapat mengatur header khusus, tentukan port target sebagai subprotokol bernama
lambda-microvms.port., di mana nomorNNport. Anda menyediakan subprotokol saat Anda membuka koneksi. WebSocket Sebagai contoh, lihat Protokol. -
Default (8080) - Jika tidak ada yang ditentukan, permintaan 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 endpoint microVM memerlukan token otentikasi yang valid di header. X-aws-proxy-auth Anda menghasilkan token menggunakancreate-microvm-auth-token. Setiap token adalah string JWE (JSON Web Encryption) terenkripsi yang dicakup ke:
-
MicroVM tertentu (diidentifikasi oleh ID).
-
Satu set port yang diizinkan (port tunggal, jangkauan, atau semua port).
-
Waktu kedaluwarsa (dikonfigurasi pada 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 dalam membuat token dan menghubungkan ke microVM, termasuk WebSocket koneksi, lihat. Menghubungkan ke microVM
Tanggapan kesalahan
Kode status HTTP berikut dikembalikan oleh endpoint 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 cacat, atau header port atau subprotokol yang tidak valid. WebSocket Verifikasi formatnya. |
| 403 | Dilarang | Token yang hilang, kedaluwarsa, atau tidak valid; atau port yang diminta tidak ada dalam token. allowedPorts Buat token baru, atau gunakan port yang diizinkan. |
| 429 | Terlalu Banyak Permintaan | Batas nilai terlampaui (tingkat akun atau per-microVM). Coba lagi dengan backoff eksponensial. |
| 500 | Kesalahan Server Internal | Terjadi kesalahan internal. Coba lagi permintaannya. |
| 502 | Gateway Buruk | Aplikasi tidak merespons, atau resume 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 () dan port target ()X-aws-proxy-auth. X-aws-proxy-port Lambda menghapus X-aws-proxy-* header sebelum meneruskan permintaan ke aplikasi Anda.
Request/response bandwidth
Setiap microVM Lambda memiliki request/response bandwidth yang berskala linier dengan ukurannya. Bandwidth ini berlaku untuk semua lalu lintas melalui endpoint microVM, baik permintaan masuk maupun respons keluar.
| Ukuran microVM (baseline) | Bandwidth maks |
|---|---|
| 0,5 GB, 0,25 vCPU | 1 MB/s (8 Mbps) |
| 1 GB, 0,5 vCPU | 2 MB/s (16 Mbps) |
| 2 GB, 1 vCPU | 4 MB/s (32 Mbps) |
| 4 GB, 2 vCPU | 8 MB/s (64 Mbps) |
| 8 GB, 4 vCPU | 16 MB/s (128 Mbps) |
Jika Anda mengalami peningkatan latensi permintaan karena saturasi jaringan, kurangi konkurensi permintaan atau ukuran muatan, 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 dan kembali. HTTP/2 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 HTTP/2 bernegosiasi dengan aplikasi Anda melalui ALPN, kembali HTTP/1.1 ke HTTP/2 jika tidak didukung.
-
Aplikasi Anda menyajikan HTTP teks biasa — Sertakan
X-aws-proxy-force-h2: trueheader dalam permintaan Anda untuk digunakan HTTP/2 pada koneksi ke aplikasi Anda.
Konektivitas keluar
Secara default, Lambda MicroVMS 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 jalan keluar VPC, lalu lintas keluar tunduk pada aturan grup keamanan dan ACL jaringan yang mengatur lalu lintas di VPC Anda.
Bekerja dengan konektor jaringan jalan 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 perintah. run-microvm
Prasyarat
Sebelum membuat konektor jaringan, Anda memerlukan peran IAM yang memungkinkan Lambda membuat antarmuka jaringan elastis (ENI) di VPC Anda. Peran tersebut 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 IPv4 jaringan (atau): DualStack
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 mendasari 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
Referensi 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 microVMS yang menggunakannya telah dihentikan. Memodifikasi konektor yang aktif digunakan dapat menyebabkan masalah konektivitas jaringan untuk menjalankan microVMS.