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-namedurable-function-role\ --assume-role-policy-document file://trust-policy.json -
Lampirkan kebijakan eksekusi tahan lama untuk operasi pos pemeriksaan dan eksekusi dasar:
aws iam attach-role-policy \ --role-namedurable-function-role\ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy
Kebijakan AWSLambdaBasicDurableExecutionRolePolicy terkelola mencakup izin yang diperlukan untuk operasi pos pemeriksaan (lambda:CheckpointDurableExecutiondanlambda:GetDurableExecutionState) dan eksekusi Lambda dasar.
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/catatan
Untuk fungsi tahan lama berbasis Java, Anda perlu mengkompilasi kode fungsi dan dependensi Anda ke dalam satu file.zip atau file Java Archive (JAR). Untuk informasi selengkapnya, lihat Menerapkan fungsi Java Lambda dengan arsip file.zip atau JAR.
-
Buat fungsi dengan eksekusi tahan lama diaktifkan:
aws lambda create-function \ --function-namemyDurableFunction\ --runtime nodejs22.x \ --rolearn:aws:iam::123456789012:role/durable-function-role\ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 7}'
catatan
Anda hanya dapat mengaktifkan eksekusi yang tahan lama saat membuat fungsi. Anda tidak dapat mengaktifkannya pada fungsi yang ada.
Publikasikan versi
Meskipun fungsi tahan lama dapat dipanggil menggunakan kualifikasi $LATEST versi, Anda harus selalu menggunakan ARN yang memenuhi syarat yang menunjuk ke versi stabil untuk memastikan eksekusi kode Anda secara deterministik.
aws lambda publish-version \ --function-namemyDurableFunction\ --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-namemyDurableFunction\ --name prod \ --function-version 1
Memanggil fungsi tahan lama
Panggil fungsi tahan lama Anda menggunakan ARN (versi atau alias) yang memenuhi syarat.
catatan
Pemanggilan idempoten: Untuk mencegah eksekusi duplikat saat mencoba kembali pemanggilan yang gagal, Anda dapat memberikan nama eksekusi yang memastikan semantik eksekusi. at-most-once Lihat Idempotency untuk detailnya.
Invokasi sinkron
Untuk eksekusi yang selesai dalam 15 menit, gunakan pemanggilan sinkron:
aws lambda invoke \ --function-namemyDurableFunction:1\ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
Atau menggunakan alias:
aws lambda invoke \ --function-namemyDurableFunction: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-namemyDurableFunction:prod\ --invocation-type Event \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
Dengan pemanggilan asinkron, Lambda segera kembali. Fungsi terus dijalankan di latar belakang.
catatan
Anda dapat menggunakan $LATEST untuk membuat prototipe dan pengujian di konsol. Untuk beban kerja produksi, gunakan versi atau alias yang diterbitkan.
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-by-function \ --function-namemyDurableFunction
Dapatkan detail eksekusi
Dapatkan detail tentang eksekusi tertentu:
aws lambda get-durable-execution \ --durable-execution-arnarn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:my-function-version/durable-execution/my-execution-name/my-execution-id
Dapatkan riwayat eksekusi
Lihat riwayat pos pemeriksaan untuk eksekusi:
aws lambda get-durable-execution-history \ --durable-execution-arnarn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:my-function-version/durable-execution/my-execution-name/my-execution-id
Hentikan eksekusi
Hentikan eksekusi tahan lama yang berjalan:
aws lambda stop-durable-execution \ --durable-execution-arnarn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:my-function-version/durable-execution/my-execution-name/my-execution-id
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-namemyDurableFunction\ --zip-file fileb://function.zip -
Tunggu pembaruan selesai:
aws lambda wait function-updated \ --function-namemyDurableFunction -
Publikasikan versi baru:
aws lambda publish-version \ --function-namemyDurableFunction\ --description "Updated order processing logic" -
Perbarui alias untuk menunjuk ke versi baru:
aws lambda update-alias \ --function-namemyDurableFunction\ --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-namemyDurableFunction# Delete the IAM role policies aws iam detach-role-policy \ --role-namedurable-function-role\ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole aws iam detach-role-policy \ --role-namedurable-function-role\ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy # Delete the role aws iam delete-role --role-namedurable-function-role
Langkah selanjutnya
Setelah menerapkan fungsi tahan lama Anda dengan: AWS CLI
Memantau eksekusi menggunakan perintah
list-durable-executions-by-functiondanget-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.