

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 Lambda yang terhubung dengan VPC
<a name="configuration-vpc-internet"></a>

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

## Saya belum memiliki VPC
<a name="new-vpc"></a>

### Buat VPC
<a name="create-vpc-internet"></a>

**Alur kerja Buat VPC** menciptakan 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 VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Di dasbor, pilih **Buat VPC**.

1. **Agar Sumber Daya dapat dibuat**, pilih **VPC dan lainnya**.

1. **Konfigurasikan VPC**

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

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

   1. Jika aplikasi Anda berkomunikasi dengan menggunakan IPv6 alamat, pilih blok CIDR, **blok IPv6 CIDR** yang disediakan **Amazon IPv6 **.

1. **Konfigurasikan subnet**

   1. Untuk **Jumlah Availability Zone**, pilih **2**. Kami merekomendasikan setidaknya dua AZs untuk ketersediaan tinggi.

   1. Untuk **Jumlah subnet publik**, pilih **2**.

   1. Untuk **Jumlah subnet pribadi**, pilih **2**.

   1. Anda dapat menyimpan blok CIDR default untuk subnet publik, atau sebagai alternatif Anda dapat memperluas **Kustomisasi blok CIDR subnet dan memasukkan blok CIDR**. Untuk informasi selengkapnya, lihat [Blok CIDR Subnet](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html).

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

1. Untuk **gateway internet Egress saja**, pilih **Ya** jika Anda memilih untuk menyertakan blok CIDR. IPv6 

1. 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3).

1. Untuk **opsi DNS**, pertahankan pengaturan default.

1. Pilih **Buat VPC**.

### Konfigurasikan fungsi Lambda
<a name="vpc-function-internet-create"></a>

**Untuk mengonfigurasi VPC saat Anda membuat fungsi**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih **Buat fungsi**.

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

1. Perluas **Pengaturan lanjutan**.

1. Pilih **Aktifkan VPC**, lalu pilih VPC.

1. (Opsional) Untuk mengizinkan [ IPv6 lalu lintas keluar](configuration-vpc.md#configuration-vpc-ipv6), pilih **Izinkan lalu IPv6 lintas untuk subnet dual-stack**.

1. Untuk **Subnet**, pilih semua subnet pribadi. Subnet pribadi dapat mengakses internet melalui gateway NAT. Menghubungkan fungsi ke subnet publik tidak memberikan akses internet.
**catatan**  
Jika Anda memilih **Izinkan IPv6 lalu lintas untuk subnet dual-stack, semua subnet** yang dipilih harus memiliki blok CIDR dan blok IPv4 CIDR. IPv6 

1. Untuk **grup Keamanan**, pilih grup keamanan yang memungkinkan lalu lintas keluar.

1. Pilih **Buat fungsi**.

Lambda secara otomatis membuat peran eksekusi dengan kebijakan [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) AWS terkelola. Izin dalam kebijakan ini hanya diperlukan untuk membuat antarmuka jaringan elastis untuk konfigurasi VPC, bukan untuk menjalankan fungsi Anda. Untuk menerapkan izin hak istimewa paling sedikit, Anda dapat menghapus **AWSLambdaVPCAccessExecutionRole**kebijakan dari peran eksekusi setelah membuat fungsi dan konfigurasi VPC. Untuk informasi selengkapnya, lihat [Izin IAM yang diperlukan](configuration-vpc.md#configuration-vpc-permissions).

**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](configuration-vpc.md#configuration-vpc-permissions). Kebijakan [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) AWS terkelola mencakup izin yang diperlukan. Untuk menerapkan izin hak istimewa paling sedikit, Anda dapat menghapus **AWSLambdaVPCAccessExecutionRole**kebijakan dari peran eksekusi setelah membuat konfigurasi VPC.

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi.

1. Pilih tab **Konfigurasi**, lalu pilih **VPC**.

1. Di bagian **VPC**, pilih **Edit**.

1. Pilih VPC.

1. (Opsional) Untuk mengizinkan [ IPv6 lalu lintas keluar](configuration-vpc.md#configuration-vpc-ipv6), pilih **Izinkan lalu IPv6 lintas untuk subnet dual-stack**.

1. Untuk **Subnet**, pilih semua subnet pribadi. Subnet pribadi dapat mengakses internet melalui gateway NAT. Menghubungkan fungsi ke subnet publik tidak memberikan akses internet.
**catatan**  
Jika Anda memilih **Izinkan IPv6 lalu lintas untuk subnet dual-stack, semua subnet** yang dipilih harus memiliki blok CIDR dan blok IPv4 CIDR. IPv6 

1. Untuk **grup Keamanan**, pilih grup keamanan yang memungkinkan lalu lintas keluar.

1. Pilih **Simpan**.

### Uji fungsi
<a name="vpc-function-internet-test"></a>

Gunakan kode contoh berikut untuk mengonfirmasi bahwa fungsi Anda yang terhubung dengan VPC dapat menjangkau internet publik. Jika berhasil, kode mengembalikan kode `200` status. Jika tidak berhasil, fungsi akan habis.

------
#### [ Node.js ]

1. **Di panel **Sumber kode** di konsol Lambda, tempel kode berikut ke dalam file index.mjs.** Fungsi ini membuat permintaan HTTP GET ke titik akhir publik dan mengembalikan kode respons HTTP untuk menguji apakah fungsi tersebut memiliki akses ke internet publik.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/code-source-nodejs.png)  
**Example — 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;
       }
   };
   ```

1. Di bagian **DEPLOY**, pilih **Deploy** untuk memperbarui kode fungsi Anda:  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Pilih tab **Uji**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/test-tab.png)

1. Pilih **Uji**.

1. Fungsi mengembalikan kode `200` status. Ini berarti bahwa fungsi tersebut memiliki akses internet keluar.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/test-successful-200.png)

   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** di konsol Lambda, tempel kode berikut ke dalam file lambda\$1function.py.** Fungsi ini membuat permintaan HTTP GET ke titik akhir publik dan mengembalikan kode respons HTTP untuk menguji apakah fungsi tersebut memiliki akses ke internet publik.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/code-source-python.png)

   ```
   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
   ```

1. Di bagian **DEPLOY**, pilih **Deploy** untuk memperbarui kode fungsi Anda:  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Pilih tab **Uji**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/test-tab.png)

1. Pilih **Uji**.

1. Fungsi mengembalikan kode `200` status. Ini berarti bahwa fungsi tersebut memiliki akses internet keluar.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/test-successful-200.png)

   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"
   }
   ```

------

## Saya sudah memiliki VPC
<a name="existing-vpc"></a>

Jika Anda sudah memiliki VPC tetapi Anda perlu mengonfigurasi 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](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html) Pengguna Amazon *VPC*.

### Verifikasi konfigurasi tabel rute
<a name="vpc-internet-routes"></a>

1. Buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Pilih ID **VPC**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/vpc-id.png)

1. Gulir ke bawah ke bagian **Peta sumber daya**. Perhatikan pemetaan tabel rute. Buka setiap tabel rute yang dipetakan ke subnet.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/route-table-associations.png)

1. 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.
   + Lalu lintas internet (`0.0.0.0/0`untuk IPv4, `::/0` untuk IPv6) dirutekan 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 IPv4 route ()`0.0.0.0/0`.  
**Example tabel rute subnet publik**    
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/routes-public.png)
   + Lalu lintas internet untuk IPv4 (`0.0.0.0/0`) dirutekan ke gateway NAT (`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 IPv6 lalu lintas terikat internet (`::/0`) ke gateway internet khusus egres (). `eigw-xxxxxxxxxx` Jika subnet Anda tidak memiliki blok IPv6 CIDR, Anda hanya akan melihat IPv4 route ()`0.0.0.0/0`.  
**Example tabel rute subnet pribadi**    
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/routes-private.png)

1. Ulangi langkah sebelumnya hingga Anda 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 dan entri tabel rute yang hilang.

### Membuat tabel rute
<a name="create-route-table"></a>

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

**Untuk membuat tabel rute khusus menggunakan konsol Amazon VPC**

1. Buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Di panel navigasi, pilih **Tabel rute**.

1. Pilih **Buat tabel rute**.

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

1. Untuk **VPC**, pilih VPC Anda. 

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

1. Pilih **Buat tabel rute**.

1. Pada tab **Pengaitan subnet**, pilih **Sunting pengaitan subnet**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/route-table-subnet.png)

1. Pilih kotak centang untuk subnet untuk dikaitkan dengan tabel rute.

1. Pilih **Simpan pengaitan**.

### Membuat gateway internet baru
<a name="create-igw"></a>

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 VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Di panel navigasi, pilih **gateway Internet**.

1. Pilih **Buat gateway internet**.

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

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

1. Pilih **Buat gateway internet**.

1. **Pilih **Lampirkan ke VPC** dari spanduk di bagian atas layar, pilih VPC yang tersedia, lalu pilih Lampirkan gateway internet.**  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/igw-attach-vpc.png)

1. Pilih ID **VPC**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/igw-subnet-1.png)

1. Pilih **ID VPC** lagi untuk membuka halaman detail VPC.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/igw-your-vpcs.png)

1. Gulir ke bawah ke bagian **Peta sumber daya** dan kemudian pilih subnet. Detail subnet ditampilkan di tab baru.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/vpc-subnets.png)

1. Pilih tautan di bawah **Tabel rute**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/subnet-route-table.png)

1. Pilih **ID tabel Route** untuk membuka halaman detail tabel rute.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/route-table-id.png)

1. Di bawah **Rute**, pilih **Edit rute**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/edit-routes.png)

1. Pilih **Tambah rute**, lalu masukkan `0.0.0.0/0` di kotak **Tujuan**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/create-route-1.png)

1. 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.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/create-route-2.png)

1. Pilih **Simpan perubahan**.

### Buat gateway NAT
<a name="create-nat-gateway"></a>

Ikuti langkah-langkah ini untuk membuat gateway NAT, mengaitkannya dengan subnet publik, dan kemudian menambahkannya ke tabel rute subnet pribadi Anda.

**Untuk membuat gateway NAT dan mengaitkannya dengan subnet publik**

1. Di panel navigasi, pilih gateway **NAT**.

1. Pilih **Buat gateway NAT**.

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

1. Untuk **Subnet**, pilih subnet publik di VPC Anda. (Subnet publik adalah subnet yang memiliki rute langsung ke gateway internet dalam tabel rutenya.)
**catatan**  
Gateway NAT dikaitkan dengan subnet publik, tetapi entri tabel rute ada di subnet pribadi.

1. Untuk **ID alokasi IP elastis**, pilih alamat IP elastis atau pilih **Alokasikan IP Elastis**.

1. Pilih **Buat gateway NAT**.

**Untuk menambahkan rute ke gateway NAT di tabel rute subnet pribadi**

1. Di panel navigasi, pilih **Pengguna**.

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

1. Pilih tautan di bawah **Tabel rute**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/subnet-route-table.png)

1. Pilih **ID tabel Route** untuk membuka halaman detail tabel rute.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/route-table-id.png)

1. Gulir ke bawah dan pilih tab **Rute**, lalu pilih **Edit rute**  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/route-table-edit-routes.png)

1. Pilih **Tambah rute**, lalu masukkan `0.0.0.0/0` di kotak **Tujuan**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/create-route-1.png)

1. Untuk **Target**, pilih **gateway NAT**, lalu pilih gateway NAT yang Anda buat sebelumnya.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/create-route-nat.png)

1. Pilih **Simpan perubahan**.

### Buat gateway internet khusus egress (hanya) IPv6
<a name="create-egress-gateway"></a>

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

**Untuk membuat gateway internet egress-only**

1. Di panel navigasi, pilih gateway internet khusus **Egress.**

1. Pilih **Buat gateway internet hanya jalan keluar**.

1. (Opsional) Masukkan nama.

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

1. Pilih **Buat gateway internet hanya jalan keluar**.

1. Pilih tautan di bawah ID **VPC Terlampir**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/eigw-details.png)

1. Pilih tautan di bawah **ID VPC** untuk membuka halaman detail VPC.

1. 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.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/vpc-subnet-private.png)

1. Pilih tautan di bawah **Tabel rute**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/private-subnet-route-table.png)

1. Pilih **ID tabel Route** untuk membuka halaman detail tabel rute.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/route-table-id.png)

1. Di bawah **Rute**, pilih **Edit rute**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/edit-routes.png)

1. Pilih **Tambah rute**, lalu masukkan `::/0` di kotak **Tujuan**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/create-route-1.png)

1. Untuk **Target**, pilih **Egress Only Internet Gateway**, lalu pilih gateway yang Anda buat sebelumnya.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/eigw-route.png)

1. Pilih **Simpan perubahan**.

### Konfigurasikan fungsi Lambda
<a name="vpc-function-internet-create-existing"></a>

**Untuk mengonfigurasi VPC saat Anda membuat fungsi**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih **Buat fungsi**.

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

1. Perluas **Pengaturan lanjutan**.

1. Pilih **Aktifkan VPC**, lalu pilih VPC.

1. (Opsional) Untuk mengizinkan [ IPv6 lalu lintas keluar](configuration-vpc.md#configuration-vpc-ipv6), pilih **Izinkan lalu IPv6 lintas untuk subnet dual-stack**.

1. Untuk **Subnet**, pilih semua subnet pribadi. Subnet pribadi dapat mengakses internet melalui gateway NAT. Menghubungkan fungsi ke subnet publik tidak memberikan akses internet.
**catatan**  
Jika Anda memilih **Izinkan IPv6 lalu lintas untuk subnet dual-stack, semua subnet** yang dipilih harus memiliki blok CIDR dan blok IPv4 CIDR. IPv6 

1. Untuk **grup Keamanan**, pilih grup keamanan yang memungkinkan lalu lintas keluar.

1. Pilih **Buat fungsi**.

Lambda secara otomatis membuat peran eksekusi dengan kebijakan [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) AWS terkelola. Izin dalam kebijakan ini hanya diperlukan untuk membuat antarmuka jaringan elastis untuk konfigurasi VPC, bukan untuk menjalankan fungsi Anda. Untuk menerapkan izin hak istimewa paling sedikit, Anda dapat menghapus **AWSLambdaVPCAccessExecutionRole**kebijakan dari peran eksekusi setelah membuat fungsi dan konfigurasi VPC. Untuk informasi selengkapnya, lihat [Izin IAM yang diperlukan](configuration-vpc.md#configuration-vpc-permissions).

**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](configuration-vpc.md#configuration-vpc-permissions). Kebijakan [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) AWS terkelola mencakup izin yang diperlukan. Untuk menerapkan izin hak istimewa paling sedikit, Anda dapat menghapus **AWSLambdaVPCAccessExecutionRole**kebijakan dari peran eksekusi setelah membuat konfigurasi VPC.

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi.

1. Pilih tab **Konfigurasi**, lalu pilih **VPC**.

1. Di bagian **VPC**, pilih **Edit**.

1. Pilih VPC.

1. (Opsional) Untuk mengizinkan [ IPv6 lalu lintas keluar](configuration-vpc.md#configuration-vpc-ipv6), pilih **Izinkan lalu IPv6 lintas untuk subnet dual-stack**.

1. Untuk **Subnet**, pilih semua subnet pribadi. Subnet pribadi dapat mengakses internet melalui gateway NAT. Menghubungkan fungsi ke subnet publik tidak memberikan akses internet.
**catatan**  
Jika Anda memilih **Izinkan IPv6 lalu lintas untuk subnet dual-stack, semua subnet** yang dipilih harus memiliki blok CIDR dan blok IPv4 CIDR. IPv6 

1. Untuk **grup Keamanan**, pilih grup keamanan yang memungkinkan lalu lintas keluar.

1. Pilih **Simpan**.

### Uji fungsi
<a name="vpc-function-internet-test-existing"></a>

Gunakan kode contoh berikut untuk mengonfirmasi bahwa fungsi Anda yang terhubung dengan VPC dapat menjangkau internet publik. Jika berhasil, kode mengembalikan kode `200` status. Jika tidak berhasil, fungsi akan habis.

------
#### [ Node.js ]

1. **Di panel **Sumber kode** di konsol Lambda, tempel kode berikut ke dalam file index.mjs.** Fungsi ini membuat permintaan HTTP GET ke titik akhir publik dan mengembalikan kode respons HTTP untuk menguji apakah fungsi tersebut memiliki akses ke internet publik.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/code-source-nodejs.png)  
**Example — 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;
       }
   };
   ```

1. Di bagian **DEPLOY**, pilih **Deploy** untuk memperbarui kode fungsi Anda:  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Pilih tab **Uji**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/test-tab.png)

1. Pilih **Uji**.

1. Fungsi mengembalikan kode `200` status. Ini berarti bahwa fungsi tersebut memiliki akses internet keluar.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/test-successful-200.png)

   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** di konsol Lambda, tempel kode berikut ke dalam file lambda\$1function.py.** Fungsi ini membuat permintaan HTTP GET ke titik akhir publik dan mengembalikan kode respons HTTP untuk menguji apakah fungsi tersebut memiliki akses ke internet publik.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/code-source-python.png)

   ```
   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
   ```

1. Di bagian **DEPLOY**, pilih **Deploy** untuk memperbarui kode fungsi Anda:  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Pilih tab **Uji**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/test-tab.png)

1. Pilih **Uji**.

1. Fungsi mengembalikan kode `200` status. Ini berarti bahwa fungsi tersebut memiliki akses internet keluar.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/test-successful-200.png)

   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"
   }
   ```

------