Tutorial: Membuat fungsi Lambda dengan URL fungsi - AWS Lambda

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

Tutorial: Membuat fungsi Lambda dengan URL fungsi

Dalam tutorial ini, Anda membuat fungsi Lambda didefinisikan sebagai arsip file.zip dengan titik akhir URL fungsi publik yang mengembalikan produk dari dua angka. Untuk informasi selengkapnya tentang mengonfigurasi URL fungsi, lihat. Fungsi URLs

Prasyarat

Tutorial ini mengasumsikan bahwa Anda memiliki pengetahuan tentang operasi Lambda dan konsol Lambda dasar. Jika belum, ikuti petunjuk di Membuat fungsi Lambda dengan konsol untuk membuat fungsi Lambda pertama Anda.

Untuk menyelesaikan langkah-langkah berikut, Anda memerlukan AWS Command Line Interface (AWS CLI) versi 2. Perintah dan output yang diharapkan dicantumkan dalam blok terpisah:

aws --version

Anda akan melihat output berikut:

aws-cli/2.13.27 Python/3.11.6 Linux/4.14.328-248.540.amzn2.x86_64 exe/x86_64.amzn.2

Untuk perintah panjang, karakter escape (\) digunakan untuk memisahkan perintah menjadi beberapa baris.

Di Linux dan macOS, gunakan shell dan manajer paket pilihan Anda.

catatan

Di Windows, beberapa perintah Bash CLI yang biasa Anda gunakan dengan Lambda (zipseperti) tidak didukung oleh terminal bawaan sistem operasi. Untuk mendapatkan versi terintegrasi Windows dari Ubuntu dan Bash, instal Windows Subsystem untuk Linux. Contoh perintah CLI dalam panduan ini menggunakan pemformatan Linux. Perintah yang menyertakan dokumen JSON sebaris harus diformat ulang jika Anda menggunakan CLI Windows.

Membuat peran eksekusi

Buat peran eksekusi yang memberikan izin kepada fungsi Lambda Anda untuk mengakses sumber daya AWS .

Untuk membuat peran eksekusi
  1. Buka halaman Peran konsol AWS Identity and Access Management (IAM).

  2. Pilih Buat peran.

  3. Untuk jenis entitas Tepercaya pilih AWS layanan, lalu untuk kasus Penggunaan, pilih Lambda.

  4. Pilih Berikutnya.

  5. Di panel Kebijakan izin, masukkan AWSLambdaBasicExecutionRole di kotak pencarian.

  6. Pilih kotak centang di sebelah kebijakan AWSLambdaBasicExecutionRole AWS terkelola, lalu pilih Berikutnya.

  7. Masukkan nama lambda-url-role Peran, lalu pilih Buat peran.

AWSLambdaBasicExecutionRoleKebijakan ini memiliki izin yang diperlukan fungsi untuk menulis log ke Amazon CloudWatch Logs. Kemudian dalam tutorial, Anda akan memerlukan Amazon Resource Name (ARN) peran untuk membuat fungsi Lambda Anda.

Untuk menemukan ARN peran eksekusi Anda
  1. Buka halaman Peran konsol AWS Identity and Access Management (IAM).

  2. Pilih peran yang baru saja Anda buat (lambda-url-role).

  3. Di panel Ringkasan, salin ARN.

Buat fungsi Lambda dengan URL fungsi (arsip file.zip)

Buat fungsi Lambda dengan titik akhir URL fungsi menggunakan arsip file.zip.

Untuk membuat fungsi
  1. Salin contoh kode berikut ke file bernama index.js.

    contoh index.js
    exports.handler = async (event) => { let body = JSON.parse(event.body); const product = body.num1 * body.num2; const response = { statusCode: 200, body: "The product of " + body.num1 + " and " + body.num2 + " is " + product, }; return response; };
  2. Buat paket deployment.

    zip function.zip index.js
  3. Buat fungsi Lambda dengan perintah create-function. Pastikan untuk mengganti peran ARN dengan ARN dari peran eksekusi Anda sendiri yang Anda salin sebelumnya dalam tutorial.

    aws lambda create-function \ --function-name my-url-function \ --runtime nodejs18.x \ --zip-file fileb://function.zip \ --handler index.handler \ --role arn:aws:iam::123456789012:role/lambda-url-role
  4. Tambahkan kebijakan berbasis sumber daya ke fungsi Anda yang memberikan izin untuk mengizinkan akses publik ke URL fungsi Anda.

    aws lambda add-permission \ --function-name my-url-function \ --action lambda:InvokeFunctionUrl \ --principal "*" \ --function-url-auth-type "NONE" \ --statement-id url
  5. Buat titik akhir URL untuk fungsi dengan create-function-url-config perintah.

    aws lambda create-function-url-config \ --function-name my-url-function \ --auth-type NONE

Uji titik akhir URL fungsi

Panggil fungsi Lambda Anda dengan memanggil titik akhir URL fungsi Anda menggunakan klien HTTP seperti curl atau Postman.

curl 'https://abcdefg.lambda-url.us-east-1.on.aws/' \ -H 'Content-Type: application/json' \ -d '{"num1": "10", "num2": "10"}'

Anda akan melihat output berikut:

The product of 10 and 10 is 100

Buat fungsi Lambda dengan URL fungsi () CloudFormation

Anda juga dapat membuat fungsi Lambda dengan titik akhir URL fungsi menggunakan tipe. AWS CloudFormation AWS::Lambda::Url

Resources: MyUrlFunction: Type: AWS::Lambda::Function Properties: Handler: index.handler Runtime: nodejs18.x Role: arn:aws:iam::123456789012:role/lambda-url-role Code: ZipFile: | exports.handler = async (event) => { let body = JSON.parse(event.body); const product = body.num1 * body.num2; const response = { statusCode: 200, body: "The product of " + body.num1 + " and " + body.num2 + " is " + product, }; return response; }; Description: Create a function with a URL. MyUrlFunctionPermissions: Type: AWS::Lambda::Permission Properties: FunctionName: !Ref MyUrlFunction Action: lambda:InvokeFunctionUrl Principal: "*" FunctionUrlAuthType: NONE MyFunctionUrl: Type: AWS::Lambda::Url Properties: TargetFunctionArn: !Ref MyUrlFunction AuthType: NONE

Buat fungsi Lambda dengan URL fungsi ()AWS SAM

Anda juga dapat membuat fungsi Lambda yang dikonfigurasi dengan URL fungsi menggunakan AWS Serverless Application Model ()AWS SAM.

ProductFunction: Type: AWS::Serverless::Function Properties: CodeUri: function/. Handler: index.handler Runtime: nodejs18.x AutoPublishAlias: live FunctionUrlConfig: AuthType: NONE

Bersihkan sumber daya Anda

Sekarang Anda dapat menghapus sumber daya yang Anda buat untuk tutorial ini, kecuali Anda ingin mempertahankannya. Dengan menghapus AWS sumber daya yang tidak lagi Anda gunakan, Anda mencegah tagihan yang tidak perlu ke Anda Akun AWS.

Untuk menghapus peran eksekusi
  1. Buka halaman Peran dari konsol IAM.

  2. Pilih peran eksekusi yang Anda buat.

  3. Pilih Hapus.

  4. Masukkan nama peran di bidang input teks dan pilih Hapus.

Untuk menghapus fungsi Lambda
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi yang Anda buat.

  3. Pilih Tindakan, Hapus.

  4. Ketik delete kolom input teks dan pilih Hapus.