

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

# Membuat Fungsi Web Lambda
<a name="web-functions-create"></a>

Untuk menerapkan aplikasi dengan Lambda Web Functions, Anda membuat Fungsi Web dengan revisi dan titik akhir untuk menerima lalu lintas. Konsol dan `aws lambda-web deploy` perintah dapat membuat Fungsi Web, revisi pertamanya, dan titik akhir pertamanya. Revisi adalah snapshot yang tidak dapat diubah dari kode dan konfigurasi Anda. Titik akhir merutekan permintaan ke revisi aktif. Untuk informasi lebih lanjut tentang sumber daya ini, lihat [Konsep inti](web-functions-how-it-works.md). Topik ini menunjukkan cara membuatnya menggunakan konsol Lambda dan. AWS CLI

## Prasyarat
<a name="web-functions-create-prereqs"></a>

Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
+  AWS Akun. Untuk membuatnya, lihat [Membandingkan opsi pendaftaran](https://docs.aws.amazon.com/accounts/latest/reference/sign-up-for-aws.html) di *Panduan Referensi Manajemen AWS Akun*.
+ Izin untuk mengelola Fungsi Web, meneruskan peran eksekusi ke Lambda `iam:PassRole` (), dan untuk membuat atau menggunakan sumber daya Amazon S3 dan IAM yang mendukung.

Konsol membuat atau menggunakan kembali sumber daya yang dibutuhkan Fungsi Web Anda, termasuk peran eksekusi dan bucket Amazon S3 untuk kode Anda.

Untuk mengikuti AWS CLI prosedur, Anda juga perlu:
+ AWS CLI versi 2, dalam rilis yang mencakup `aws lambda-web` perintah. Untuk memeriksa, jalankan`aws lambda-web help`. Jika Anda menginstal AWS CLI menggunakan penginstal resmi atau menginstal skrip, jalankan `aws update` untuk memperbarui ke versi terbaru. Jika tidak, lihat [Menginstal atau memperbarui ke versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ AWS kredensil dan Wilayah AWS dikonfigurasi untuk file. AWS CLI
+ Untuk`aws lambda-web deploy`, izin untuk menelepon`sts:GetCallerIdentity`, `s3:ListBucket` pada bucket penyebaran, dan, `s3:PutObject``s3:GetObject`, dan `s3:GetObjectVersion` pada objeknya.
+ Jika `aws lambda-web deploy` membuat sumber daya default, izin untuk memanggil`iam:GetRole`,`iam:CreateRole`,`iam:PutRolePolicy`,`s3:CreateBucket`,`s3:PutBucketPolicy`, dan`s3:PutBucketVersioning`.
+ (Opsional) Node.js 24 atau lebih baru untuk pembangunan lokal. Untuk menginstalNode.js, lihat [Unduh Node.js](https://nodejs.org/en/download/) di situs Node.js web.

## Membuat Fungsi Web (konsol)
<a name="web-functions-create-console"></a>

Gunakan konsol Lambda untuk membuat Fungsi Web, revisi pertamanya, dan titik akhir pertamanya untuk menerima lalu lintas.

**Untuk membuat Fungsi Web dan titik akhir (konsol)**

1. Buka konsol Lambda di. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Di panel navigasi, pilih **Fungsi Web**.

1. Pilih **Buat Fungsi Web**.

1. Di bagian **Informasi dasar**, lakukan hal berikut:

   1. Untuk **nama Fungsi**, masukkan nama untuk Fungsi Web Anda.

   1. Untuk **Runtime**, pertahankan runtime default.

   1. Untuk **sumber Kode**, simpan **template Hello World** untuk memulai dari aplikasi contoh yang telah dikonfigurasi sebelumnya. Untuk menerapkan kode Anda sendiri, pilih **Unggah file ZIP** atau **Amazon** S3.

1. Di bawah **konfigurasi Endpoint**, lakukan hal berikut:

   1. Untuk **nama Endpoint**, masukkan nama untuk titik akhir.

   1. Untuk **Tipe**, simpan **Home-Region**. Home-Region Titik akhir berjalan di satu Wilayah, yang menjadikannya konfigurasi paling sederhana untuk Fungsi Web pertama Anda. Untuk opsi Multi-wilayah, lihat[Titik akhir Fungsi Web Lambda](web-functions-endpoints.md).
**catatan**  
Anda tidak dapat mengubah jenis titik akhir setelah pembuatan.

   1. Untuk **jenis otentikasi**, pilih **Application-managed otentikasi**. Dengan opsi ini, Lambda meneruskan semua permintaan ke aplikasi Anda, sehingga aplikasi Anda menangani autentikasi. Untuk membatasi akses, pilih **autentikasi IAM**, yang mengharuskan penelepon untuk menandatangani permintaan. Permintaan ke `HomeRegion` dan `PerRegion` titik akhir menggunakan AWS Signature Version 4 (SigV4). Permintaan ke `MultiRegion` titik akhir menggunakan Signature Version 4a (Sigv4a). Untuk informasi selengkapnya, lihat [Kontrol akses titik akhir Fungsi Web Lambda](web-functions-endpoint-access-control.md).

   1. Untuk **penyebaran Otomatis**, simpan **revisi terbaru**. **Dengan mode ini, Lambda secara otomatis merutekan semua lalu lintas ke setiap revisi baru setelah menjadi Aktif.** **Untuk kontrol lalu lintas manual dengan bobot revisi, pilih Dinonaktifkan.** Untuk informasi selengkapnya, lihat [Pola deployment](web-functions-deployment.md).

1. (Opsional) Perluas **Konfigurasi tambahan** untuk mengganti pengaturan default. Secara default, Lambda membuat peran eksekusi dengan izin untuk mengunggah log ke Amazon CloudWatch, dan bucket Amazon S3 di akun Anda untuk menyimpan kode Anda. Di bagian ini, Anda dapat memilih peran IAM yang ada atau bucket Amazon S3 Anda sendiri, dan Anda juga dapat mengonfigurasi enkripsi dengan kunci yang dikelola pelanggan, konkurensi maksimum per lingkungan, variabel lingkungan, dan tag.

1. Pilih **Buat Fungsi Web**.

Ketika Anda memilih **Create Web Function**, Lambda membuat sumber daya Web Function bersama dengan revisi pertamanya, dan menciptakan endpoint pada saat yang sama. **Revisi dimulai dalam status **Pending** sementara Lambda mengunduh kode Anda dan menyiapkan artefak kode darinya, dan kemudian beralih ke Aktif.** Titik akhir juga dimulai dalam status **Pending**. Fungsi Web, revisinya, dan titik akhirnya masing-masing maju melalui negara-negara ini secara independen. Untuk informasi selengkapnya tentang revisi dan status siklus hidup, lihat. [Konsep inti](web-functions-how-it-works.md)

Titik akhir mulai melayani lalu lintas ketika mencapai **Aktif** dan ada revisi **Aktif** untuk rute ke. Untuk menemukan nama domain endpoint, pada halaman detail fungsi, pilih tab **Endpoints, lalu pilih endpoint**. Untuk menyajikan aplikasi di domain Anda sendiri, letakkan CloudFront distribusi Amazon di depan titik akhir. Untuk informasi selengkapnya tentang jenis titik akhir dan nama domain, lihat[Titik akhir Fungsi Web Lambda](web-functions-endpoints.md).

Untuk mengonfirmasi bahwa aplikasi Anda menyajikan lalu lintas, kirim permintaan ke nama domain. Karena Anda memilih **Application-managed otentikasi**, Anda dapat mengirim permintaan biasa tanpa menandatanganinya.

```
curl https://{{your-endpoint-domain-name}}/
```

Respons yang berhasil berarti Fungsi Web Anda menerima lalu lintas dan aplikasi Anda menyajikan permintaan.

## Membuat Fungsi Web (AWS CLI)
<a name="web-functions-create-cli"></a>

Buat dan terapkan Fungsi Web dari terminal Anda. Perintah starter menghasilkan server Node.js HTTP kecil, menyebarkannya, dan mengembalikan URL titik akhir HTTPS.

### Menyebarkan dan menguji Fungsi Web Anda
<a name="web-functions-create-cli-deploy"></a>

**Untuk menyebarkan dan menguji fungsi Web starter**

1. Jalankan perintah berikut:

   ```
   aws lambda-web deploy --name my-web-app --hello-world
   ```

   `--hello-world`menulis file starter ke`./my-web-app`, membuat direktori jika tidak ada. Starter berisi`server.ts`, server TypeScript HTTP, dan`package.json`,`README.md`, dan`AGENTS.md`.

1. Saat penerapan selesai, salin URL titik akhir dari output. URL terlihat mirip dengan berikut ini:

   ```
   https://bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws
   ```

1. Kirim permintaan ke URL titik akhir yang Anda salin di langkah sebelumnya. Ganti {{endpoint-url}} dengan URL tersebut:

   ```
   curl {{endpoint-url}}
   ```

   Starter mengembalikan respons yang mirip dengan berikut ini:

   ```
   {"message":"Hello from Lambda Web!","path":"/"}
   ```

Secara default, titik akhir starter menerima permintaan tanpa otentikasi. Untuk meminta otorisasi IAM, tambahkan. `--auth-type IamAuth` Untuk informasi tentang mengontrol akses ke titik akhir Anda, lihat[Kontrol akses titik akhir Fungsi Web Lambda](web-functions-endpoint-access-control.md).

### Apa yang dibuat perintah
<a name="web-functions-create-cli-resources"></a>

Pada penyebaran pertama, perintah:
+ Membuat atau menggunakan kembali bucket Amazon S3 dengan versi diaktifkan untuk paket penerapan.
+ Membuat atau menggunakan kembali peran eksekusi IAM dengan izin Amazon CloudWatch Logs.
+ Membuat Fungsi Web dan revisi pertamanya.
+ Membuat `HomeRegion` titik akhir bernama `dev` dan menunggu sampai menjadi. `Active` Untuk menggunakan nama yang berbeda, tambahkan`--endpoint-name`.

Fungsi Web berisi revisi kode dan konfigurasi yang tidak dapat diubah. Pada penerapan selanjutnya, perintah membuat revisi lain. `dev`Titik akhir menggunakan `LatestRevision` mode dan melayani revisi setelah menjadi aktif.

### Menyebarkan perubahan
<a name="web-functions-create-cli-change"></a>

Setelah Anda mengedit aplikasi starter, jalankan:

```
aws lambda-web deploy \
  --name my-web-app \
  --code ./my-web-app
```

Menjalankan perintah ini mengunggah paket Anda yang diperbarui, membuat revisi, dan menunggu revisi menjadi. `Active` `dev`Titik akhir telah `autoDeploymentMode` diatur ke `LatestRevision` dan melayani revisi secara otomatis. URL-nya tetap sama.

Untuk menerapkan aplikasi Anda sendiri alih-alih starter, teruskan direktorinya ke`--code`. Server Anda harus mendengarkan pada host dan port dalam variabel `AWS_LAMBDA_HTTP_ENDPOINT` lingkungan. Secara default, runtime dimuat `index.js` di root paket penerapan. Untuk menggunakan file entri yang berbeda, atur variabel `AWS_LAMBDA_NODEJS_ENTRYPOINT` lingkungan. Lambda tidak memverifikasi bahwa server Anda mulai mendengarkan saat membuat revisi. Akibatnya, revisi dan titik akhir dapat ditampilkan `Active` meskipun permintaan gagal. Untuk informasi selengkapnya, lihat [Runtime Fungsi Web Lambda](web-functions-runtimes.md).

### Gunakan yang sudah ada AWS sumber daya
<a name="web-functions-create-cli-existing-resources"></a>

Jika Anda sudah mengelola bucket Amazon S3 atau peran eksekusi IAM, gunakan perintah berikut untuk menggunakan kembali resource tersebut alih-alih membuat default. Bucket harus mengaktifkan versi dan kebijakan bucket yang memberikan prinsip layanan Lambda () dan. `lambda.amazonaws.com` `s3:GetObject` `s3:GetObjectVersion` Perintah tidak mengubah konfigurasi bucket yang Anda tentukan. Untuk persyaratan bucket, lihat[Kebijakan bucket untuk Lambda](web-functions-code-s3.md#web-functions-code-s3-bucket-policy). Ganti contoh nilai sumber daya dengan milik Anda sendiri.

```
aws lambda-web deploy \
  --name my-web-app \
  --code ./my-web-app \
  --bucket-name amzn-s3-demo-bucket \
  --execution-role-arn arn:aws:iam::111122223333:role/my-web-app-execution-role
```

Peran eksekusi harus memungkinkan Lambda untuk mengambilnya dan harus memberikan izin yang dibutuhkan aplikasi Anda. Untuk informasi selengkapnya, lihat [Peran eksekusi](web-functions-permissions.md#web-functions-permissions-execution-role).

Anda dapat menghilangkan salah satu opsi sumber daya untuk membiarkan `deploy` membuat default. Saat `deploy` membuat Fungsi Web tanpa`--hello-world`, atau menambahkan titik akhir, ia meminta Anda untuk menekan Enter untuk mengonfirmasi. Dalam skrip atau CI/CD pipeline, tambahkan `--create` untuk mengonfirmasi tanpa prompt.

### Gunakan perintah API secara langsung
<a name="web-functions-create-cli-api"></a>

`deploy`Perintah mengunggah kode Anda ke Amazon S3 dan membuat Fungsi Web, revisi, dan titik akhir untuk Anda. Untuk mengontrol sendiri setiap langkah, gunakan AWS CLI perintah yang memetakan ke operasi API, seperti`create-web-function`,`create-web-function-revision`, dan`update-web-function-endpoint`. Dalam perintah berikut, ganti setiap placeholder input pengguna dengan informasi Anda sendiri.

**Untuk membuat Fungsi Web dengan perintah API (AWS CLI)**

1. Buat paket deployment .zip dari direktori aplikasi Anda, dengan file entri Anda di root paket. Unggah paket ke bucket Amazon S3 yang memenuhi persyaratan di. [Prasyarat](web-functions-code-s3.md#web-functions-code-s3-requirements) Perintah berikut membuat paket dan menggunakan AWS CLI untuk mengunggahnya.

   ```
   cd {{my-app}}
   zip -r ../my-app.zip .
   aws s3 cp ../my-app.zip s3://{{amzn-s3-demo-bucket}}/my-app.zip
   ```

1. Gunakan AWS CLI perintah berikut untuk membuat Web Function dengan revisi pertama dan endpoint. Dalam`revisionConfig`, `buildConfig` menentukan lokasi kode dan runtime, dan `serviceConfig` menentukan peran eksekusi. `endpointConfig`Properti mendefinisikan titik akhir.

   ```
   aws lambda-web create-web-function \
       --function-name {{my-web-app}} \
       --revision-config '{
         "buildConfig": {
           "codeConfig": {
             "s3Object": { "bucket": "{{amzn-s3-demo-bucket}}", "key": "my-app.zip" }
           },
           "runtimeConfig": { "runtime": "nodejs24.x" }
         },
         "serviceConfig": {
           "executionRoleArn": "arn:aws:iam::{{111122223333}}:role/{{my-web-app-execution-role}}"
         }
       }' \
       --endpoint-config '{
         "endpointName": "{{my-endpoint}}",
         "endpointType": "HomeRegion",
         "authType": "ApplicationManaged",
         "autoDeploymentMode": "LatestRevision"
       }'
   ```

   `autoDeploymentMode`Properti ini opsional. Jika Anda menghilangkannya, defaultnya adalah`Disabled`, dan titik akhir tidak merutekan lalu lintas ke revisi baru secara otomatis. Perhatikan revisi dalam tanggapan. `revisionId`

1. Tunggu sampai revisi selesai`Active`. Ganti {{rev-abc12}} dengan ID revisi dari langkah sebelumnya.

   ```
   aws lambda-web wait web-function-revision-active \
       --function-name {{my-web-app}} \
       --revision-id {{rev-abc12}}
   ```

1. Dapatkan detail titik akhir.

   ```
   aws lambda-web get-web-function-endpoint \
       --function-name {{my-web-app}} \
       --endpoint-name {{my-endpoint}}
   ```

   Ketika titik akhir `state` adalah`Active`, kirim permintaan ke nya`domainName`. Responsnya terlihat seperti kutipan berikut.

   ```
   {
       "endpointName": "my-endpoint",
       "endpointType": "HomeRegion",
       "domainName": "bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws",
       "authType": "ApplicationManaged",
       "autoDeploymentMode": "LatestRevision",
       "state": "Active",
       "updateStatus": "Successful"
   }
   ```

**Untuk menerapkan perubahan dengan perintah API (AWS CLI)**
+ Unggah paket baru dan buat revisi. Revisi adalah snapshot lengkap, jadi lewati penuh `buildConfig` dan `serviceConfig` setiap kali.

  ```
  aws s3 cp ../my-app.zip s3://{{amzn-s3-demo-bucket}}/my-app.zip
  aws lambda-web create-web-function-revision \
      --function-name {{my-web-app}} \
      --build-config '{
        "codeConfig": {
          "s3Object": { "bucket": "{{amzn-s3-demo-bucket}}", "key": "my-app.zip" }
        },
        "runtimeConfig": { "runtime": "nodejs24.x" }
      }' \
      --service-config '{
        "executionRoleArn": "arn:aws:iam::{{111122223333}}:role/{{my-web-app-execution-role}}"
      }'
  ```

  Karena titik akhir telah `autoDeploymentMode` ditetapkan`LatestRevision`, ia merutekan semua lalu lintas ke revisi baru setelah revisi menjadi. `Active` Jika Anda mengatur `autoDeploymentMode` ke`Disabled`, Anda merutekan lalu lintas dengan `update-web-function-endpoint` dan merevisi bobot sebagai gantinya. Untuk informasi selengkapnya, lihat [Pola deployment](web-functions-deployment.md).

## Bersihkan
<a name="web-functions-create-cleanup"></a>

Saat Anda tidak lagi membutuhkan Fungsi Web, hapus:

```
aws lambda-web delete-web-function --function-name my-web-app
```

Perintah ini juga menghapus endpoint dan revisi Web Function. Ini tidak menghapus sumber daya yang `deploy` dibuat atau digunakan: peran eksekusi IAM (secara `awscli-lambdaweb-my-web-app` default), paket penerapan `lambda-web/my-web-app/` di bucket Amazon S3 `awscli-lambdaweb-{{account-id}}-{{region}}-an` (secara default), termasuk versi objek yang tidak terkini, atau grup log CloudWatch Amazon Logs untuk Fungsi Web. Hapus sumber daya tersebut secara terpisah hanya jika Anda tidak lagi membutuhkannya. Bucket Amazon S3 yang dikelola dapat dibagikan oleh penerapan lain di wilayah dan wilayah yang sama. Akun AWS 