Membuat dan mengelola fungsi Lambda URLs - AWS Lambda

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

Membuat dan mengelola fungsi Lambda URLs

Fungsi URL adalah titik akhir khusus HTTP (S) untuk fungsi Lambda Anda. Anda dapat membuat dan mengonfigurasi fungsi URL melalui konsol Lambda atau Lambda. API Saat Anda membuat fungsiURL, Lambda secara otomatis menghasilkan URL titik akhir yang unik untuk Anda. Setelah Anda membuat fungsiURL, URL titik akhirnya tidak pernah berubah. URLTitik akhir fungsi memiliki format berikut:

https://<url-id>.lambda-url.<region>.on.aws
catatan

Fungsi tidak URLs didukung sebagai berikut Wilayah AWS: Asia Pasifik (Hyderabad) (), Asia Pasifik (Melbourneap-south-2) (), Asia Pasifik (Malaysiaap-southeast-4) (), Kanada Barat (Calgaryap-southeast-5) (), Eropa (Spanyolca-west-1) (), Eropa (Zuricheu-south-2) (), Israel (Tel Aviveu-central-2) (), dan Timur Tengah (il-central-1) (). UAE me-central-1

Fungsi URLs adalah dual stack-enabled, mendukung dan. IPv4 IPv6 Setelah Anda mengkonfigurasi fungsi URL untuk fungsi Anda, Anda dapat memanggil fungsi Anda melalui titik akhir HTTP (S) melalui browser web, curl, Postman, atau klien apa pun. HTTP

catatan

Anda dapat mengakses fungsi Anda hanya URL melalui Internet publik. Sementara fungsi Lambda mendukung AWS PrivateLink, fungsi URLs tidak.

Fungsi Lambda URLs menggunakan kebijakan berbasis sumber daya untuk keamanan dan kontrol akses. Fungsi URLs juga mendukung opsi konfigurasi berbagi sumber daya lintas asal (CORS).

Anda dapat menerapkan fungsi URLs ke alias fungsi apa pun, atau ke versi fungsi yang $LATEST tidak dipublikasikan. Anda tidak dapat menambahkan fungsi URL ke versi fungsi lainnya.

Bagian berikut menunjukkan cara membuat dan mengelola fungsi URL menggunakan konsol Lambda, AWS CLI, dan template AWS CloudFormation

Membuat fungsi URL (konsol)

Ikuti langkah-langkah ini untuk membuat fungsi URL menggunakan konsol.

  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih nama fungsi yang ingin Anda URL buat fungsinya.

  3. Pilih tab Configuration, lalu pilih Function URL.

  4. Pilih Buat fungsiURL.

  5. Untuk jenis Auth, pilih AWS_ IAM atau NONE. Untuk informasi selengkapnya tentang URL otentikasi fungsi, lihatKontrol akses.

  6. (Opsional) Pilih Konfigurasi berbagi sumber daya lintas asal (CORS), lalu konfigurasikan CORS pengaturan untuk fungsi URL Anda. Untuk informasi lebih lanjut tentangCORS, lihatBerbagi sumber daya lintas asal () CORS.

  7. Pilih Simpan.

Ini menciptakan fungsi URL untuk versi fungsi Anda $LATEST yang tidak dipublikasikan. Fungsi ini URL muncul di bagian Ikhtisar fungsi konsol.

  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih nama fungsi dengan alias yang ingin Anda URL buat fungsinya.

  3. Pilih tab Alias, lalu pilih nama alias yang ingin Anda buat fungsinyaURL.

  4. Pilih tab Configuration, lalu pilih Function URL.

  5. Pilih Buat fungsiURL.

  6. Untuk jenis Auth, pilih AWS_ IAM atau NONE. Untuk informasi selengkapnya tentang URL otentikasi fungsi, lihatKontrol akses.

  7. (Opsional) Pilih Konfigurasi berbagi sumber daya lintas asal (CORS), lalu konfigurasikan CORS pengaturan untuk fungsi URL Anda. Untuk informasi lebih lanjut tentangCORS, lihatBerbagi sumber daya lintas asal () CORS.

  8. Pilih Simpan.

Ini menciptakan fungsi URL untuk alias fungsi Anda. Fungsi URL muncul di bagian ikhtisar Fungsi konsol untuk alias Anda.

Untuk membuat fungsi baru dengan fungsi URL (konsol)
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih Buat fungsi.

  3. Di bagian Informasi dasar, lakukan hal berikut:

    1. Untuk nama Fungsi, masukkan nama untuk fungsi Anda, sepertimy-function.

    2. Untuk Runtime, pilih runtime bahasa yang Anda inginkan, seperti Node.js 18.x.

    3. Untuk Arsitektur, pilih x86_64 atau arm64.

    4. Perluas Izin, lalu pilih apakah akan membuat peran eksekusi baru atau menggunakan yang sudah ada.

  4. Perluas Pengaturan lanjutan, lalu pilih Fungsi URL.

  5. Untuk jenis Auth, pilih AWS_ IAM atau NONE. Untuk informasi selengkapnya tentang URL otentikasi fungsi, lihatKontrol akses.

  6. (Opsional) Pilih Konfigurasi berbagi sumber daya lintas asal (CORS). Dengan memilih opsi ini selama pembuatan fungsi, fungsi Anda URL mengizinkan permintaan dari semua asal secara default. Anda dapat mengedit CORS pengaturan untuk fungsi Anda URL setelah membuat fungsi. Untuk informasi lebih lanjut tentangCORS, lihatBerbagi sumber daya lintas asal () CORS.

  7. Pilih Buat fungsi.

Ini menciptakan fungsi baru dengan fungsi URL untuk versi fungsi yang $LATEST tidak dipublikasikan. Fungsi ini URL muncul di bagian Ikhtisar fungsi konsol.

Membuat fungsi URL (AWS CLI)

Untuk membuat fungsi URL untuk fungsi Lambda yang ada menggunakan AWS Command Line Interface (AWS CLI), jalankan perintah berikut:

aws lambda create-function-url-config \ --function-name my-function \ --qualifier prod \ // optional --auth-type AWS_IAM --cors-config {AllowOrigins="https://example.com"} // optional

Ini menambahkan fungsi URL ke prod qualifier untuk fungsi my-function tersebut. Untuk informasi selengkapnya tentang parameter konfigurasi ini, lihat CreateFunctionUrlConfigdi API referensi.

catatan

Untuk membuat fungsi URL melalui AWS CLI, fungsi tersebut harus sudah ada.

Menambahkan fungsi URL ke CloudFormation template

Untuk menambahkan AWS::Lambda::Url sumber daya ke AWS CloudFormation template Anda, gunakan sintaks berikut:

JSON

{ "Type" : "AWS::Lambda::Url", "Properties" : { "AuthType" : String, "Cors" : Cors, "Qualifier" : String, "TargetFunctionArn" : String } }

YAML

Type: AWS::Lambda::Url Properties: AuthType: String Cors: Cors Qualifier: String TargetFunctionArn: String

Parameter

  • (Wajib) AuthType — Mendefinisikan jenis otentikasi untuk fungsi Anda. URL Nilai yang mungkin adalah salah satu AWS_IAM atauNONE. Untuk membatasi akses ke pengguna yang diautentikasi saja, setel ke. AWS_IAM Untuk mem-bypass IAM otentikasi dan memungkinkan setiap pengguna untuk membuat permintaan ke fungsi Anda, atur ke. NONE

  • (Opsional) Cors - Mendefinisikan CORSpengaturan untuk fungsi URL Anda. CorsUntuk menambah AWS::Lambda::Url sumber daya Anda CloudFormation, gunakan sintaks berikut.

    contoh AWS: :Lambda: :Url.Cros () JSON
    { "AllowCredentials" : Boolean, "AllowHeaders" : [ String, ... ], "AllowMethods" : [ String, ... ], "AllowOrigins" : [ String, ... ], "ExposeHeaders" : [ String, ... ], "MaxAge" : Integer }
    contoh AWS: :Lambda: :Url.Cros () YAML
    AllowCredentials: Boolean AllowHeaders: - String AllowMethods: - String AllowOrigins: - String ExposeHeaders: - String MaxAge: Integer
  • (Opsional) Qualifier — Nama alias.

  • (Wajib) TargetFunctionArn - Nama atau Nama Sumber Daya Amazon (ARN) dari fungsi Lambda. Format nama yang valid meliputi yang berikut:

    • Nama fungsi - my-function

    • Fungsi ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function

    • Sebagian ARN123456789012:function:my-function

Berbagi sumber daya lintas asal () CORS

Untuk menentukan cara asal yang berbeda dapat mengakses fungsi AndaURL, gunakan berbagi sumber daya lintas asal (CORS). Sebaiknya konfigurasi CORS jika Anda bermaksud memanggil fungsi Anda URL dari domain yang berbeda. Lambda mendukung CORS header berikut untuk fungsi. URLs

CORSsundulan CORSproperti konfigurasi Contoh nilai

Access-Control-Allow-Origin

AllowOrigins

*(izinkan semua asal)

https://www.example.com

http://localhost:60905

Access-Control-Allow-Methods

AllowMethods

GET, POST, DELETE, *

Access-Control-Allow-Header

AllowHeaders

Date, Keep-Alive, X-Custom-Header

Access-Control-Expose-Header

ExposeHeaders

Date, Keep-Alive, X-Custom-Header

Access-Control-Allow-Credentials

AllowCredentials

TRUE

Akses-Kontrol-Max-Age

MaxAge

5 (default), 300

Saat Anda mengonfigurasi CORS fungsi URL menggunakan konsol Lambda atau, AWS CLI Lambda secara otomatis menambahkan CORS header ke semua respons melalui fungsi tersebut. URL Atau, Anda dapat menambahkan CORS header secara manual ke respons fungsi Anda. Jika ada header yang bertentangan, perilaku yang diharapkan tergantung pada jenis permintaan:

  • Untuk permintaan preflight seperti OPTIONS permintaan, CORS header yang dikonfigurasi pada fungsi URL diutamakan. Lambda hanya mengembalikan CORS header ini dalam respons.

  • Untuk permintaan non-preflight seperti GET atau POST permintaan, Lambda mengembalikan CORS header yang dikonfigurasi pada fungsiURL, serta header yang dikembalikan oleh CORS fungsi. Hal ini dapat mengakibatkan duplikat CORS header dalam respon. Anda mungkin melihat kesalahan yang mirip dengan berikut ini:The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.

Secara umum, kami sarankan untuk mengonfigurasi semua CORS pengaturan pada fungsiURL, daripada mengirim CORS header secara manual dalam respons fungsi.

Fungsi pelambatan URLs

Throttling membatasi tingkat permintaan proses fungsi Anda. Ini berguna dalam banyak situasi, seperti mencegah fungsi Anda membebani sumber daya hilir secara berlebihan, atau menangani lonjakan permintaan yang tiba-tiba.

Anda dapat membatasi laju permintaan yang diproses fungsi Lambda Anda melalui fungsi URL dengan mengonfigurasi konkurensi cadangan. Konkurensi cadangan membatasi jumlah pemanggilan bersamaan maksimum untuk fungsi Anda. Tingkat permintaan maksimum fungsi Anda per detik (RPS) setara dengan 10 kali konkurensi cadangan yang dikonfigurasi. Misalnya, jika Anda mengonfigurasi fungsi Anda dengan konkurensi cadangan 100, maka maksimumnya RPS adalah 1.000.

Setiap kali konkurensi fungsi Anda melebihi konkurensi cadangan, fungsi Anda URL mengembalikan kode HTTP 429 status. Jika fungsi Anda menerima permintaan yang melebihi RPS maksimum 10x berdasarkan konkurensi cadangan yang dikonfigurasi, Anda juga menerima kesalahan HTTP429. Untuk informasi selengkapnya tentang konkurensi cadangan, lihatMengkonfigurasi konkurensi cadangan untuk suatu fungsi.

Menonaktifkan fungsi URLs

Dalam keadaan darurat, Anda mungkin ingin menolak semua lalu lintas ke fungsi URL Anda. Untuk menonaktifkan fungsi AndaURL, atur konkurensi cadangan ke nol. Ini membatasi semua permintaan ke fungsi AndaURL, menghasilkan respons HTTP 429 status. Untuk mengaktifkan kembali fungsi AndaURL, hapus konfigurasi konkurensi cadangan, atau atur konfigurasi ke jumlah yang lebih besar dari nol.

Menghapus fungsi URLs

Saat Anda menghapus suatu fungsiURL, Anda tidak dapat memulihkannya. Membuat fungsi baru URL akan menghasilkan URL alamat yang berbeda.

catatan

Jika Anda menghapus fungsi URL dengan jenis autentikasiNONE, Lambda tidak secara otomatis menghapus kebijakan berbasis sumber daya terkait. Jika Anda ingin menghapus kebijakan ini, Anda harus melakukannya secara manual.

  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih nama fungsi.

  3. Pilih tab Configuration, lalu pilih Function URL.

  4. Pilih Hapus.

  5. Masukkan kata hapus ke dalam bidang untuk mengonfirmasi penghapusan.

  6. Pilih Hapus.

catatan

Saat Anda menghapus fungsi yang memiliki fungsiURL, Lambda secara asinkron menghapus fungsi tersebut. URL Jika Anda segera membuat fungsi baru dengan nama yang sama di akun yang sama, ada kemungkinan fungsi asli URL akan dipetakan ke fungsi baru alih-alih dihapus.