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
-
Buat dokumen kebijakan kepercayaan yang memungkinkan Lambda untuk mengambil peran. Simpan ini sebagai
trust-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
Buat peran:
aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json -
Lampirkan kebijakan eksekusi dasar:
aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole -
Buat kebijakan untuk operasi pos pemeriksaan. Simpan ini sebagai
checkpoint-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecutions", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:myDurableFunction" } ] } -
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
-
Package kode fungsi Anda dengan dependensi ke dalam file.zip:
zip -r function.zip index.mjs node_modules/ -
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
-
Perbarui kode fungsi:
aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip -
Tunggu hingga pembaruan selesai:
aws lambda wait function-updated \ --function-name myDurableFunction -
Publikasikan versi baru:
aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic" -
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-executionsdanget-durable-executionLihat 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.