Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan fungsi Lambda yang tahan lama
Untuk mengaktifkan eksekusi tahan lama untuk fungsi Lambda Anda, Anda perlu mengonfigurasi pengaturan spesifik yang mengontrol berapa lama fungsi Anda dapat berjalan, berapa lama data status dipertahankan, dan izin apa yang diperlukan.
Aktifkan eksekusi yang tahan lama
Untuk mengaktifkan eksekusi tahan lama untuk fungsi Lambda Anda, konfigurasikan DurableConfig konfigurasi fungsi Anda. Setelan ini mengontrol batas waktu eksekusi, retensi status, dan perilaku pembuatan versi.
Parameter konfigurasi:
ExecutionTimeout- Waktu eksekusi maksimum dalam hitungan detik (hingga 31.536.000 untuk satu tahun)RetentionPeriodInDays- Berapa lama untuk mempertahankan status eksekusi dan riwayat (1-365 hari)AllowInvokeLatest- Apakah akan mengizinkan pemanggilan versi $LATEST untuk eksekusi yang tahan lama
Izin IAM untuk fungsi tahan lama
Fungsi tahan lama memerlukan izin IAM tambahan di luar peran eksekusi Lambda standar. Peran eksekusi fungsi Anda harus menyertakan izin untuk manajemen status dan eksekusi APIs tahan lama.
Izin minimum yang diperlukan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunction", "lambda:ManageDurableState", "lambda:GetDurableExecution", "lambda:ListDurableExecutions" ], "Resource": "arn:aws:lambda:*:*:function:*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" } ] }
CloudFormation contoh peran eksekusi:
DurableFunctionRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: lambda.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole Policies: - PolicyName: DurableFunctionPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - lambda:ManageDurableState - lambda:GetDurableExecution - lambda:ListDurableExecutions Resource: '*'
Praktik terbaik konfigurasi
Ikuti praktik terbaik ini saat mengonfigurasi fungsi tahan lama untuk penggunaan produksi:
-
Tetapkan batas waktu eksekusi yang sesuai - Konfigurasikan
ExecutionTimeoutberdasarkan durasi maksimum yang diharapkan alur kerja Anda. Jangan menetapkan batas waktu lama yang tidak perlu karena memengaruhi alokasi biaya dan sumber daya. -
Retensi saldo dengan biaya penyimpanan - Tetapkan
RetentionPeriodInDaysberdasarkan persyaratan debugging dan audit Anda. Periode retensi yang lebih lama meningkatkan biaya penyimpanan. -
Gunakan pembuatan versi dalam produksi - Setel
AllowInvokeLatestkefalselingkungan produksi dan gunakan versi fungsi atau alias tertentu untuk eksekusi yang tahan lama. -
Ukuran status monitor - Objek status besar meningkatkan biaya penyimpanan dan dapat memengaruhi kinerja. Jaga status minimal dan gunakan penyimpanan eksternal untuk data besar.
-
Konfigurasikan logging yang sesuai - Aktifkan pencatatan terperinci untuk memecahkan masalah alur kerja yang berjalan lama, tetapi perhatikan volume dan biaya log.
Contoh konfigurasi produksi:
{ "ExecutionTimeout": 86400, "RetentionPeriodInDays": 7, "AllowInvokeLatest": false }