Menyebarkan dan menjalankan fungsi Lambda yang tahan lama dengan AWS CLI - AWS Lambda

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

Menyebarkan dan menjalankan fungsi Lambda yang tahan lama dengan AWS CLI

Gunakan AWS CLI untuk membuat dan menerapkan fungsi tahan lama Lambda dengan perintah imperatif. Pendekatan ini memberi Anda kontrol langsung atas setiap langkah proses penyebaran.

Prasyarat

  • Instal dan konfigurasikan AWS CLI. Untuk petunjuk, lihat Menginstal AWS CLI.

  • Buat paket penerapan dengan kode fungsi Anda dan SDK eksekusi yang tahan lama.

  • Buat peran eksekusi IAM dengan izin pos pemeriksaan.

Buat peran eksekusi

Buat peran IAM dengan izin untuk eksekusi Lambda dasar dan operasi pos pemeriksaan.

Untuk membuat peran eksekusi
  1. Buat dokumen kebijakan kepercayaan yang memungkinkan Lambda untuk mengambil peran. Simpan ini sebagaitrust-policy.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Buat peran:

    aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json
  3. Lampirkan kebijakan eksekusi dasar:

    aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
  4. Buat kebijakan untuk operasi pos pemeriksaan. Simpan ini sebagaicheckpoint-policy.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecutions", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:myDurableFunction" } ] }
  5. Buat dan lampirkan kebijakan pos pemeriksaan:

    aws iam create-policy \ --policy-name durable-checkpoint-policy \ --policy-document file://checkpoint-policy.json aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy

Buat fungsi yang tahan lama

Buat fungsi tahan lama Anda dengan --durable-config parameter.

Untuk membuat fungsi yang tahan lama
  1. Package kode fungsi Anda dengan dependensi ke dalam file.zip:

    zip -r function.zip index.mjs node_modules/
  2. Buat fungsi dengan eksekusi tahan lama diaktifkan:

    aws lambda create-function \ --function-name myDurableFunction \ --runtime nodejs22.x \ --role arn:aws:iam::ACCOUNT_ID:role/durable-function-role \ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'
catatan

Anda hanya dapat mengaktifkan eksekusi yang tahan lama saat membuat fungsi. Anda tidak dapat mengaktifkannya pada fungsi yang ada.

Publikasikan versi

Fungsi tahan lama memerlukan ARN yang memenuhi syarat (dengan versi atau alias) untuk pemanggilan. Publikasikan versi fungsi Anda:

aws lambda publish-version \ --function-name myDurableFunction \ --description "Initial version"

Perintah mengembalikan versi ARN. Perhatikan nomor versi (misalnya,:1) di akhir ARN.

Secara opsional, buat alias yang menunjuk ke versi:

aws lambda create-alias \ --function-name myDurableFunction \ --name prod \ --function-version 1

Memanggil fungsi tahan lama

Panggil fungsi tahan lama Anda menggunakan ARN (versi atau alias) yang memenuhi syarat.

Invokasi sinkron

Untuk eksekusi yang selesai dalam 15 menit, gunakan pemanggilan sinkron:

aws lambda invoke \ --function-name myDurableFunction:1 \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json

Atau menggunakan alias:

aws lambda invoke \ --function-name myDurableFunction:prod \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
Invokasi asinkron

Untuk eksekusi yang berjalan lama, gunakan pemanggilan asinkron:

aws lambda invoke \ --function-name myDurableFunction:prod \ --invocation-type Event \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json

Dengan pemanggilan asinkron, Lambda segera kembali. Fungsi ini terus dijalankan di latar belakang.

Kelola eksekusi yang tahan lama

Gunakan perintah berikut untuk mengelola dan memantau eksekusi fungsi yang tahan lama.

Daftar eksekusi

Daftar semua eksekusi untuk fungsi yang tahan lama:

aws lambda list-durable-executions \ --function-name myDurableFunction:prod
Dapatkan detail eksekusi

Dapatkan detail tentang eksekusi tertentu:

aws lambda get-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Dapatkan riwayat eksekusi

Lihat riwayat pos pemeriksaan untuk eksekusi:

aws lambda get-durable-execution-history \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Hentikan eksekusi

Hentikan eksekusi tahan lama yang berjalan:

aws lambda stop-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123

Perbarui kode fungsi

Perbarui kode fungsi tahan lama Anda dan publikasikan versi baru:

Untuk memperbarui dan mempublikasikan versi baru
  1. Perbarui kode fungsi:

    aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip
  2. Tunggu hingga pembaruan selesai:

    aws lambda wait function-updated \ --function-name myDurableFunction
  3. Publikasikan versi baru:

    aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic"
  4. Perbarui alias untuk menunjuk ke versi baru:

    aws lambda update-alias \ --function-name myDurableFunction \ --name prod \ --function-version 2
penting

Menjalankan eksekusi terus menggunakan versi yang mereka mulai. Pemanggilan baru menggunakan versi alias yang diperbarui.

Lihat log fungsi

Lihat log fungsi tahan lama Anda di CloudWatch Log:

aws logs tail /aws/lambda/myDurableFunction --follow

Filter log untuk eksekusi tertentu:

aws logs filter-log-events \ --log-group-name /aws/lambda/myDurableFunction \ --filter-pattern "exec-abc123"

Pembersihan sumber daya

Hapus fungsi tahan lama dan sumber daya terkait:

# Delete the function aws lambda delete-function --function-name myDurableFunction # Delete the IAM role policies aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy aws iam delete-policy \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy # Delete the role aws iam delete-role --role-name durable-function-role

Langkah selanjutnya

Setelah menerapkan fungsi tahan lama Anda dengan: AWS CLI

  • Memantau eksekusi menggunakan perintah list-durable-executions dan get-durable-execution

  • Lihat operasi pos pemeriksaan dalam peristiwa AWS CloudTrail data

  • Siapkan CloudWatch alarm untuk kegagalan eksekusi atau eksekusi yang berjalan lama

  • Mengotomatiskan penerapan menggunakan skrip shell atau pipeline CI/CD

Untuk informasi selengkapnya tentang AWS CLI perintah untuk Lambda, lihat Referensi AWS CLI Perintah.