View a markdown version of this page

Aktifkan akses internet untuk fungsi VPC-connected Lambda - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Aktifkan akses internet untuk fungsi VPC-connected Lambda

Secara default, fungsi Lambda berjalan di Lambda-managed VPC yang memiliki akses internet. Untuk mengakses sumber daya di VPC di akun Anda, Anda dapat menambahkan konfigurasi VPC ke fungsi. Ini membatasi fungsi ke sumber daya dalam VPC itu, kecuali VPC memiliki akses internet. Halaman ini menjelaskan cara menyediakan akses internet ke fungsi VPC-connected Lambda.

Buat VPC

Alu r kerja Buat VPC membuat semua sumber daya VPC yang diperlukan untuk fungsi Lambda untuk mengakses internet publik dari subnet pribadi, termasuk subnet, gateway NAT, gateway internet, dan entri tabel rute.

Untuk membuat VPC
  1. Buka konsol Amazon VPC di https://console.aws.amazon.com/vpc/.

  2. Pada dasbor, pilih Buat VPC.

  3. Untuk Sumber Daya yang akan dibuat, pilih VPC dan lainnya.

  4. Konfigurasikan VPC

    1. Untuk Pembuatan otomatis tanda nama, masukkan nama untuk VPC.

    2. Untuk blok IPv4 CIDR, Anda dapat menyimpan saran default, atau sebagai alternatif Anda dapat memasukkan blok CIDR yang diperlukan oleh aplikasi atau jaringan Anda.

    3. Jika aplikasi Anda berkomunikasi dengan menggunakan alamat IPv6, pilih blok IPv6 CIDR, blok Amazon-provided IPv6 CIDR.

  5. Konfigurasikan subnet

    1. Untuk Jumlah Zona Ketersediaan, pilih 2. Kami merekomendasikan setidaknya dua AZ untuk ketersediaan tinggi.

    2. Untuk Jumlah subnet publik, pilih 2.

    3. Untuk Jumlah subnet pribadi, pilih 2.

    4. Anda dapat menyimpan blok CIDR default untuk subnet publik, atau sebagai alternatif Anda dapat memperluas Ku stomisasi blok CIDR subnet dan memasukkan blok CIDR. Untuk informasi selengkapnya, lihat Blo k CIDR Subnet.

  6. Untuk gateway NAT, pilih 1 per AZ untuk meningkatkan ketahanan.

  7. Untuk gateway internet khusus Egress, pilih Ya jika Anda memilih untuk menyertakan blok IPv6 CIDR.

  8. Untuk titik akhir VPC, pertahankan default (S3 Gateway). Tidak ada biaya untuk opsi ini. Untuk informasi selengkapnya, lihat Jenis titik akhir VPC untuk Amazon S3.

  9. Untuk opsi DNS, pertahankan pengaturan default.

  10. Pilih Buat VPC.

Konfigurasikan fungsi Lambda

Untuk mengonfigurasi VPC saat Anda membuat fungsi
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih Buat fungsi.

  3. Di bawah Informasi Dasar, untuk Nama fungsi, masukkan nama untuk fungsi Anda.

  4. Perluas Pengaturan lanjutan.

  5. Pilih Aktifkan VPC, lalu pilih VPC.

  6. (Opsional) Untuk mengizinkan lalu lintas IPv6 keluar, pilih Izinkan lalu lintas IPv6 untuk subnet tumpukan ganda.

  7. Untuk Subnet, pilih semua subnet pribadi. Subnet pribadi dapat mengakses internet melalui gateway NAT. Menghubungkan fungsi ke subnet publik tidak memberinya akses internet.

    catatan

    Jika Anda memilih Iz inkan lalu lintas IPv6 untuk subnet dual-stack, semua subnet yang dipilih harus memiliki blok IPv4 CIDR dan blok IPv6 CIDR.

  8. Untuk grup keamanan, pilih grup keamanan yang mengizinkan lalu lintas keluar.

  9. Pilih Buat fungsi.

Lambda secara otomatis membuat peran eksekusi dengan kebijakan ter AWSLambdaVPCAccessExecutionRole AWS kelola. Izin dalam kebijakan ini hanya diperlukan untuk membuat antarmuka jaringan elastis untuk konfigurasi VPC, bukan untuk memanggil fungsi Anda. Untuk menerapkan izin hak istimewa terkecil, Anda dapat menghapus AWSLambdaVPCAccessExecutionRole kebijakan dari peran eksekusi setelah Anda membuat konfigurasi fungsi dan VPC. Untuk informasi selengkapnya, lihat Izin IAM yang diperlukan.

Untuk mengonfigurasi VPC untuk fungsi yang ada

Untuk menambahkan konfigurasi VPC ke fungsi yang ada, peran eksekusi fungsi harus memiliki izin untuk membuat dan mengelola antarmuka jaringan elastis. Kebijakan AWSLambdaVPCAccessExecutionRole AWS terkelola mencakup izin yang diperlukan. Untuk menerapkan izin hak istimewa terkecil, Anda dapat menghapus AWSLambdaVPCAccessExecutionRole kebijakan dari peran eksekusi setelah membuat konfigurasi VPC.

  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi.

  3. Pilih tab Konfigurasi, lalu pilih VPC.

  4. Di bagian VPC, pilih Edit.

  5. Pilih VPC.

  6. (Opsional) Untuk mengizinkan lalu lintas IPv6 keluar, pilih Izinkan lalu lintas IPv6 untuk subnet tumpukan ganda.

  7. Untuk Subnet, pilih semua subnet pribadi. Subnet pribadi dapat mengakses internet melalui gateway NAT. Menghubungkan fungsi ke subnet publik tidak memberinya akses internet.

    catatan

    Jika Anda memilih Iz inkan lalu lintas IPv6 untuk subnet dual-stack, semua subnet yang dipilih harus memiliki blok IPv4 CIDR dan blok IPv6 CIDR.

  8. Untuk grup keamanan, pilih grup keamanan yang mengizinkan lalu lintas keluar.

  9. Pilih Simpan.

Uji fungsi

Gunakan kode contoh berikut untuk mengonfirmasi bahwa VPC-connected fungsi Anda dapat menjangkau internet publik. Jika berhasil, kode mengembalikan kode 200 status. Jika tidak berhasil, fungsi habis waktu.

Node.js
  1. Di panel sumber kode pada konsol Lambda, tempel kode berikut ke dalam file index. mjs. Fungsi membuat permintaan HTTP GET ke titik akhir publik dan mengembalikan kode respons HTTP untuk menguji apakah fungsi tersebut memiliki akses ke internet publik.

    Editor kode konsol Lambda.
    contoh— Permintaan HTTP dengan async/await
    const url = "https://aws.amazon.com/"; export const handler = async(event) => { try { const res = await fetch(url); console.info("status", res.status); return res.status; } catch (e) { console.error(e); return 500; } };
  2. Di bagian DEPLOY, pilih De ploy untuk memperbarui kode fungsi Anda:

    Menyebarkan tombol di editor kode konsol Lambda
  3. Pilih tab Tes.

    Tab Uji konsol Lambda.
  4. Pilih Uji.

  5. Fungsi mengembalikan kode 200 status. Ini berarti bahwa fungsi tersebut memiliki akses internet keluar.

    Tab Uji konsol Lambda.

    Jika fungsi tidak dapat menjangkau internet publik, Anda mendapatkan pesan kesalahan seperti ini:

    { "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds" }
Python
  1. Di panel sumber kode pada konsol Lambda, tempel kode berikut ke file lambda_function.py. Fungsi membuat permintaan HTTP GET ke titik akhir publik dan mengembalikan kode respons HTTP untuk menguji apakah fungsi tersebut memiliki akses ke internet publik.

    Editor kode konsol Lambda.
    import urllib.request def lambda_handler(event, context): try: response = urllib.request.urlopen('https://aws.amazon.com') status_code = response.getcode() print('Response Code:', status_code) return status_code except Exception as e: print('Error:', e) raise e
  2. Di bagian DEPLOY, pilih De ploy untuk memperbarui kode fungsi Anda:

    Menyebarkan tombol di editor kode konsol Lambda
  3. Pilih tab Tes.

    Tab Uji konsol Lambda.
  4. Pilih Uji.

  5. Fungsi mengembalikan kode 200 status. Ini berarti bahwa fungsi tersebut memiliki akses internet keluar.

    Tab Uji konsol Lambda.

    Jika fungsi tidak dapat menjangkau internet publik, Anda mendapatkan pesan kesalahan seperti ini:

    { "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds" }

Jika Anda sudah memiliki VPC tetapi Anda perlu mengkonfigurasi akses internet publik untuk fungsi Lambda, ikuti langkah-langkah ini. Prosedur ini mengasumsikan bahwa VPC Anda memiliki setidaknya dua subnet. Jika Anda tidak memiliki dua subnet, lihat Membuat subnet di Panduan Pengguna Amazon VPC.

Verifikasi konfigurasi tabel rute

  1. Buka konsol Amazon VPC di https://console.aws.amazon.com/vpc/.

  2. Pilih ID VPC.

    Daftar konsol VPC dari VPC.
  3. Gulir ke bawah ke bagian peta sumber daya. Perhatikan pemetaan tabel rute. Buka setiap tabel rute yang dipetakan ke subnet.

    Bagian peta sumber daya konsol VPC.
  4. Gulir ke bawah ke tab Rute. Tinjau rute untuk menentukan apakah VPC Anda memiliki kedua tabel rute berikut. Masing-masing persyaratan ini harus dipenuhi oleh tabel rute terpisah.

    • Internet-bound lalu lintas (0.0.0.0/0untuk IPv4, ::/0 untuk IPv6) dialihkan ke gateway internet (). igw-xxxxxxxxxx Ini berarti bahwa subnet yang terkait dengan tabel rute adalah subnet publik.

      catatan

      Jika subnet Anda tidak memiliki blok IPv6 CIDR, Anda hanya akan melihat rute IPv4 (). 0.0.0.0/0

      contoh tabel rute subnet publik
      Tabel rute subnet publik dengan rute ke gateway internet.
    • Internet-bound lalu lintas untuk IPv4 (0.0.0.0/0) dialihkan ke NAT gateway (nat-xxxxxxxxxx) yang terkait dengan subnet publik. Ini berarti bahwa subnet adalah subnet pribadi yang dapat mengakses internet melalui gateway NAT.

      catatan

      Jika subnet Anda memiliki blok IPv6 CIDR, tabel rute juga harus merutekan lalu lintas IPv6 terikat internet (::/0) ke gateway internet khusus keluar (). eigw-xxxxxxxxxx Jika subnet Anda tidak memiliki blok IPv6 CIDR, Anda hanya akan melihat rute IPv4 (). 0.0.0.0/0

      contoh tabel rute subnet pribadi
      Tabel rute subnet pribadi dengan rute ke gateway NAT.
  5. Ulangi langkah sebelumnya sampai Anda telah meninjau setiap tabel rute yang terkait dengan subnet di VPC Anda dan mengonfirmasi bahwa Anda memiliki tabel rute dengan gateway internet dan tabel rute dengan gateway NAT.

    Jika Anda tidak memiliki dua tabel rute, satu dengan rute ke gateway internet dan satu dengan rute ke gateway NAT, ikuti langkah-langkah ini untuk membuat sumber daya yang hilang dan entri tabel rute.

Ikuti langkah-langkah ini untuk membuat tabel rute dan mengaitkannya dengan subnet.

Untuk membuat tabel rute khusus menggunakan konsol Amazon VPC
  1. Buka konsol Amazon VPC di https://console.aws.amazon.com/vpc/.

  2. Di panel navigasi, pilih Tabel rute.

  3. Pilih Buat tabel rute.

  4. (Opsional) Untuk Nama, masukkan nama untuk tabel rute Anda.

  5. Untuk VPC, pilih VPC Anda.

  6. (Opsional) Untuk menambahkan tag, pilih Tambahkan tag baru dan masukkan kunci tag dan nilai tag.

  7. Pilih Buat tabel rute.

  8. Pada tab Pengaitan subnet, pilih Sunting pengaitan subnet.

    Pasang gateway internet ke VPC.
  9. Pilih kotak centang untuk subnet yang akan dikaitkan dengan tabel rute.

  10. Pilih Simpan pengaitan.

Ikuti langkah-langkah ini untuk membuat gateway internet, melampirkannya ke VPC Anda, dan menambahkannya ke tabel rute subnet publik Anda.

Untuk membuat gateway internet
  1. Buka konsol Amazon VPC di https://console.aws.amazon.com/vpc/.

  2. Di panel navigasi, pilih Internet gateway.

  3. Pilih Buat gateway internet.

  4. (Opsional) Masukkan nama untuk gateway internet Anda.

  5. (Opsional) Untuk menambahkan tag, pilih Tambahkan tag baru dan masukkan kunci tag dan nilai.

  6. Pilih Buat gateway internet.

  7. Pilih Lampirkan ke VPC dari spanduk di bagian atas layar, pilih VPC yang tersedia, lalu pilih Lamp irkan gateway internet.

    Pasang gateway internet ke VPC.
  8. Pilih ID VPC.

    Halaman detail gateway internet.
  9. Pilih ID VPC lagi untuk membuka halaman detail VPC.

    Daftar VPC yang difilter di Amazon VPC Console.
  10. Gulir ke bawah ke bagian peta sumber daya dan kemudian pilih subnet. Detail subnet ditampilkan di tab baru.

    Peta sumber daya konsol VPC dengan daftar subnet.
  11. Pilih tautan di bawah tabel rute.

    Tautan ke tabel rute di halaman detail subnet.
  12. Pilih ID tabel rute untuk membuka halaman detail tabel rute.

    Daftar tabel rute yang difilter.
  13. Di bawah R ute, pilih Edit rute.

    Daftar rute dengan tombol Edit rute.
  14. Pilih Tambah rute, lalu masukkan 0.0.0.0/0 di kotak Tujuan.

    Tambahkan tujuan untuk rute baru.
  15. Untuk Target, pilih Internet gateway, lalu pilih gateway internet yang Anda buat sebelumnya. Jika subnet Anda memiliki blok IPv6 CIDR, Anda juga harus menambahkan rute ::/0 ke gateway internet yang sama.

    Tambahkan target untuk rute baru.
  16. Pilih Simpan perubahan.

Ikuti langkah-langkah ini untuk membuat gateway NAT, kaitkan dengan subnet publik, lalu tambahkan ke tabel rute subnet pribadi Anda.

Untuk membuat gateway NAT dan mengaitkannya dengan subnet publik
  1. Di panel navigasi, pilih NAT gateway.

  2. Pilih Buat gateway NAT.

  3. (Opsional) Masukkan nama untuk gateway NAT Anda.

  4. Untuk Subnet, pilih subnet publik di VPC Anda. (Subnet publik adalah subnet yang memiliki rute langsung ke gateway internet di tabel rutenya.)

    catatan

    Gerbang NAT dikaitkan dengan subnet publik, tetapi entri tabel rute ada di subnet pribadi.

  5. Untuk ID alokasi IP elastis, pilih alamat IP elastis atau pilih Alo kasikan IP Elastic.

  6. Pilih Buat gateway NAT.

Untuk menambahkan rute ke gateway NAT di tabel rute subnet pribadi
  1. Di panel navigasi, pilih Pengguna.

  2. Pilih subnet pribadi di VPC Anda. (Subnet pribadi adalah subnet yang tidak memiliki rute ke gateway internet di tabel rutenya.)

  3. Pilih tautan di bawah tabel rute.

    Tautan ke tabel rute di halaman detail subnet.
  4. Pilih ID tabel rute untuk membuka halaman detail tabel rute.

    Daftar tabel rute yang difilter.
  5. Gulir ke bawah dan pilih tab Rute, lalu pilih Edit rute

    Tab Rute pada halaman detail tabel rute.
  6. Pilih Tambah rute, lalu masukkan 0.0.0.0/0 di kotak Tujuan.

    Tambahkan tujuan untuk rute baru.
  7. Untuk Target, pilih NAT gateway, lalu pilih gateway NAT yang Anda buat sebelumnya.

    Tambahkan target untuk rute baru.
  8. Pilih Simpan perubahan.

Ikuti langkah-langkah ini untuk membuat gateway internet khusus keluar dan menambahkannya ke tabel rute subnet pribadi Anda.

Untuk membuat gateway internet egress-only
  1. Di panel navigasi, pilih gateway Egress-only internet.

  2. Pilih Buat gateway internet hanya keluar.

  3. (Opsional) Masukkan nama.

  4. Pilih VPC tempat untuk membuat gateway internet egress-only.

  5. Pilih Buat gateway internet hanya keluar.

  6. Pilih tautan di bawah ID VPC Ter lampir.

    Egress-only halaman detail gateway internet.
  7. Pilih tautan di bawah ID VPC untuk membuka halaman detail VPC.

  8. Gulir ke bawah ke bagian peta sumber daya dan kemudian pilih subnet pribadi. (Subnet pribadi adalah subnet yang tidak memiliki rute ke gateway internet di tabel rutenya.) Detail subnet ditampilkan di tab baru.

    Peta sumber daya konsol VPC dengan daftar subnet.
  9. Pilih tautan di bawah tabel rute.

    Tautan ke tabel rute di halaman detail subnet.
  10. Pilih ID tabel rute untuk membuka halaman detail tabel rute.

    Daftar tabel rute yang difilter.
  11. Di bawah R ute, pilih Edit rute.

    Daftar rute dengan tombol Edit rute.
  12. Pilih Tambah rute, lalu masukkan ::/0 di kotak Tujuan.

    Tambahkan tujuan untuk rute baru.
  13. Untuk Target, pilih Egress Only Internet Gateway, lalu pilih gateway yang Anda buat sebelumnya.

    Tambahkan target untuk rute baru.
  14. Pilih Simpan perubahan.

Konfigurasikan fungsi Lambda

Untuk mengonfigurasi VPC saat Anda membuat fungsi
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih Buat fungsi.

  3. Di bawah Informasi Dasar, untuk Nama fungsi, masukkan nama untuk fungsi Anda.

  4. Perluas Pengaturan lanjutan.

  5. Pilih Aktifkan VPC, lalu pilih VPC.

  6. (Opsional) Untuk mengizinkan lalu lintas IPv6 keluar, pilih Izinkan lalu lintas IPv6 untuk subnet tumpukan ganda.

  7. Untuk Subnet, pilih semua subnet pribadi. Subnet pribadi dapat mengakses internet melalui gateway NAT. Menghubungkan fungsi ke subnet publik tidak memberinya akses internet.

    catatan

    Jika Anda memilih Iz inkan lalu lintas IPv6 untuk subnet dual-stack, semua subnet yang dipilih harus memiliki blok IPv4 CIDR dan blok IPv6 CIDR.

  8. Untuk grup keamanan, pilih grup keamanan yang mengizinkan lalu lintas keluar.

  9. Pilih Buat fungsi.

Lambda secara otomatis membuat peran eksekusi dengan kebijakan ter AWSLambdaVPCAccessExecutionRole AWS kelola. Izin dalam kebijakan ini hanya diperlukan untuk membuat antarmuka jaringan elastis untuk konfigurasi VPC, bukan untuk memanggil fungsi Anda. Untuk menerapkan izin hak istimewa terkecil, Anda dapat menghapus AWSLambdaVPCAccessExecutionRole kebijakan dari peran eksekusi setelah Anda membuat konfigurasi fungsi dan VPC. Untuk informasi selengkapnya, lihat Izin IAM yang diperlukan.

Untuk mengonfigurasi VPC untuk fungsi yang ada

Untuk menambahkan konfigurasi VPC ke fungsi yang ada, peran eksekusi fungsi harus memiliki izin untuk membuat dan mengelola antarmuka jaringan elastis. Kebijakan AWSLambdaVPCAccessExecutionRole AWS terkelola mencakup izin yang diperlukan. Untuk menerapkan izin hak istimewa terkecil, Anda dapat menghapus AWSLambdaVPCAccessExecutionRole kebijakan dari peran eksekusi setelah membuat konfigurasi VPC.

  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi.

  3. Pilih tab Konfigurasi, lalu pilih VPC.

  4. Di bagian VPC, pilih Edit.

  5. Pilih VPC.

  6. (Opsional) Untuk mengizinkan lalu lintas IPv6 keluar, pilih Izinkan lalu lintas IPv6 untuk subnet tumpukan ganda.

  7. Untuk Subnet, pilih semua subnet pribadi. Subnet pribadi dapat mengakses internet melalui gateway NAT. Menghubungkan fungsi ke subnet publik tidak memberinya akses internet.

    catatan

    Jika Anda memilih Iz inkan lalu lintas IPv6 untuk subnet dual-stack, semua subnet yang dipilih harus memiliki blok IPv4 CIDR dan blok IPv6 CIDR.

  8. Untuk grup keamanan, pilih grup keamanan yang mengizinkan lalu lintas keluar.

  9. Pilih Simpan.

Uji fungsi

Gunakan kode contoh berikut untuk mengonfirmasi bahwa VPC-connected fungsi Anda dapat menjangkau internet publik. Jika berhasil, kode mengembalikan kode 200 status. Jika tidak berhasil, fungsi habis waktu.

Node.js
  1. Di panel sumber kode pada konsol Lambda, tempel kode berikut ke dalam file index. mjs. Fungsi membuat permintaan HTTP GET ke titik akhir publik dan mengembalikan kode respons HTTP untuk menguji apakah fungsi tersebut memiliki akses ke internet publik.

    Editor kode konsol Lambda.
    contoh— Permintaan HTTP dengan async/await
    const url = "https://aws.amazon.com/"; export const handler = async(event) => { try { const res = await fetch(url); console.info("status", res.status); return res.status; } catch (e) { console.error(e); return 500; } };
  2. Di bagian DEPLOY, pilih De ploy untuk memperbarui kode fungsi Anda:

    Menyebarkan tombol di editor kode konsol Lambda
  3. Pilih tab Uji.

    Tab Uji konsol Lambda.
  4. Pilih Uji.

  5. Fungsi mengembalikan kode 200 status. Ini berarti bahwa fungsi tersebut memiliki akses internet keluar.

    Tab Uji konsol Lambda.

    Jika fungsi tidak dapat menjangkau internet publik, Anda mendapatkan pesan kesalahan seperti ini:

    { "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds" }
Python
  1. Di panel sumber kode pada konsol Lambda, tempel kode berikut ke file lambda_function.py. Fungsi membuat permintaan HTTP GET ke titik akhir publik dan mengembalikan kode respons HTTP untuk menguji apakah fungsi tersebut memiliki akses ke internet publik.

    Editor kode konsol Lambda.
    import urllib.request def lambda_handler(event, context): try: response = urllib.request.urlopen('https://aws.amazon.com') status_code = response.getcode() print('Response Code:', status_code) return status_code except Exception as e: print('Error:', e) raise e
  2. Di bagian DEPLOY, pilih De ploy untuk memperbarui kode fungsi Anda:

    Menyebarkan tombol di editor kode konsol Lambda
  3. Pilih tab Uji.

    Tab Uji konsol Lambda.
  4. Pilih Uji.

  5. Fungsi mengembalikan kode 200 status. Ini berarti bahwa fungsi tersebut memiliki akses internet keluar.

    Tab Uji konsol Lambda.

    Jika fungsi tidak dapat menjangkau internet publik, Anda mendapatkan pesan kesalahan seperti ini:

    { "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds" }